123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- /**
- * @Author: 李建
- * @Date: 2025/3/25 15:23
- * Description: 空调控制器
- * Copyright: Copyright (©) 2025 永续绿建. All rights reserved.
- */
- #ifndef WIRE_CONTROLLER_AC_CONTROLLER_H
- #define WIRE_CONTROLLER_AC_CONTROLLER_H
- #include "stdint.h"
- //#include "setting.h"
- //#include "esp_err.h"
- #define NVS_AC_POWER_KEY "AC_POWER"
- #define NVS_AC_SET_TEMP_KEY "AC_SET_TEMP"
- #define NVS_AC_MODE_KEY "AC_MODE"
- #define NVS_AC_WIND_SPEED_KEY "AC_WIND_SPEED"
- #define NVS_AC_NEW_FAN_MODE "AC_NF_M"
- // 风口序号
- enum {
- FAN_VALVE_1 = 1,
- FAN_VALVE_2,
- FAN_VALVE_3,
- FAN_VALVE_4,
- FAN_VALVE_5,
- };
- /**
- * 定义分控参数状态结构体
- */
- typedef struct {
- uint16_t power;
- uint16_t humidity;
- uint16_t temperature;
- uint16_t fan_value;
- uint16_t set_temp;
- uint16_t id;
- } sub_controller_status_t;
- /**
- * 定义保存空调设置参数的结构体
- */
- typedef struct {
- uint16_t power; // 电源状态
- uint16_t set_temp;
- uint16_t mode;
- uint16_t wind_speed;
- uint16_t new_fan_mode; // 新风模式控制(1:通风模式 2:新风模式)
- uint16_t pm25;
- uint16_t co2;
- // 数组[1,0,0,1,0]表示1 号风阀和4号风阀受控
- uint8_t main_fan_valve[5];
- uint8_t sub_1_fan_valve[5];
- uint8_t sub_2_fan_valve[5];
- uint8_t sub_3_fan_valve[5];
- uint8_t sub_4_fan_valve[5];
- sub_controller_status_t sub_controllers[4];
- uint16_t gmv_fault_code; // 多联机机内机故障
- uint16_t fg_fault_code; // 风管机故障码
- } ac_status_t;
- enum {
- COOL = 0,
- HEAT,
- DEHUM,
- WIND,
- HUM,
- };
- // 保存当前空调状态
- extern ac_status_t ac_status;
- /**
- * 控制器初始化
- * @param setting 系统设置参数
- */
- void ac_controller_init(system_setting_t *setting);
- /**
- * 设置风档
- * @param saved 是否保存到 nvs 中
- */
- esp_err_t ac_set_wind_speed(bool saved);
- /**
- * 设置电源
- * @param saved 是否保存到 nvs 中
- */
- esp_err_t ac_set_power(bool saved);
- /**
- * 设置温度
- * @param saved 是否保存到 nvs 中
- */
- esp_err_t ac_set_temp(bool saved);
- /**
- * 设置模式
- * @param saved 是否保存到 nvs 中
- */
- esp_err_t ac_set_mode(bool saved);
- /**
- * 设置对应风阀开度
- * @param no 风阀序号
- * @param lv 风阀开度
- * @param is_sub_controller 是否为分控控制
- */
- esp_err_t ac_set_fan_valve(uint8_t no, uint16_t lv, bool is_sub_controller);
- /**
- * 注册云端指令
- */
- void register_sparrow_commands(void);
- /**
- * 停止所有任务,OTA时调用
- */
- void stop_ac_controller();
- #endif //WIRE_CONTROLLER_AC_CONTROLLER_H
|