/** * @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