/** * @Author: 李建 * @Date: 2025/3/25 15:23 * Description: 空调控制器 * Copyright: Copyright (©) 2025 永续绿建. All rights reserved. */ #ifndef WIRE_CONTROLLER_XF_CONTROLLER_H #define WIRE_CONTROLLER_XF_CONTROLLER_H #include "stdint.h" #include "setting.h" #include "esp_err.h" #define NVS_POWER_CONTROLLER "power" // 电源 #define NVS_MODEL_CONTROLLER "model" // 工作模式 #define NVS_FAN_SPEED_SET "fan_speed" // 风速挡位 #define NVS_FILTER_USED_TIME "filter" //滤芯已使用时间 #define NVS_MAX_HUM_SET "set_max_hum" // 自动模式下最大湿度 #define NVS_MIN_HUM_SET "set_min_hum" // 自动模式下最小湿度 #define NVS_NEW_FAN "new_fan" // 新风开关 typedef struct { uint16_t power; // 电源状态 uint16_t mode; uint16_t fan_speed; uint16_t filter_used_time; uint16_t set_max_hum; uint16_t set_min_hum; uint8_t filter_life_remaining; uint8_t error_code; }js_module_status_t; typedef struct { uint16_t power; // 电源状态 uint16_t mode; uint16_t fan_speed; uint16_t filter_used_time; uint16_t set_hum; uint8_t filter_life_remaining; uint8_t error_code; }xfcs_status_t; /** * 定义保存空调设置参数的结构体 */ typedef struct { uint16_t power; // 电源状态 uint16_t mode; uint16_t fan_speed; uint16_t filter_used_time; uint16_t set_max_hum; uint8_t filter_life_remaining; uint8_t js_error_code; uint8_t cs_error_code; uint8_t new_fan;//新风开关 uint8_t filter_change_flag;// xfcs_status_t xfcs_status;//新风除湿机状态 js_module_status_t js_module_status;//加湿模块状态 uint8_t proof_mode; uint8_t filter_reset_flag; }xf_status_t; typedef struct { uint8_t code[3]; uint8_t description[32]; }xf_fault_t; enum { CS = 1, JS=3, SF=2, AUTO=4, }; enum { XFCS_XF = 1, XFCS_XFCS=2, XFCS_NXHCS=3, XFCS_NXH=4, }; enum { JS_JS = 3, }; extern xf_fault_t xf_fault[9]; extern xf_fault_t xf_CSFault[]; void stop_xf_controller(); // 保存当前空调状态 extern xf_status_t xf_status; /** * 控制器初始化 * @param setting 系统设置参数 */ void xf_controller_init(system_setting_t * setting); /** * 设置滤网剩余寿命 * @param saved 是否保存到 nvs 中 */ void xf_set_filter_life_remain(bool saved); /** * 设置风档 * @param saved 是否保存到 nvs 中 */ esp_err_t xf_set_fan_speed(bool saved); /** * 设置电源 * @param saved 是否保存到 nvs 中 */ esp_err_t xf_set_power(bool saved); /** * 设置温度 * @param saved 是否保存到 nvs 中 */ esp_err_t ac_set_temp(bool saved); /** * 设置模式 * @param saved 是否保存到 nvs 中 */ esp_err_t xf_set_mode(bool saved); /** * 设置对应风阀开度 * @param no 风阀序号 * @param degree 风阀开度 */ esp_err_t ac_set_fan_valve(uint8_t no, uint16_t degree); /** * 注册云端指令 */ void register_sparrow_commands(void); /** * 手动新风 * */ esp_err_t set_new_fan(bool saved); esp_err_t xf_set_max_hum(bool saved); void read_xf_status(system_setting_t *setting); #endif //WIRE_CONTROLLER_XF_CONTROLLER_H