xf_controller.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. /**
  2. * @Author: 李建
  3. * @Date: 2025/3/25 15:23
  4. * Description: 空调控制器
  5. * Copyright: Copyright (©) 2025 永续绿建. All rights reserved.
  6. */
  7. #ifndef WIRE_CONTROLLER_XF_CONTROLLER_H
  8. #define WIRE_CONTROLLER_XF_CONTROLLER_H
  9. #include "stdint.h"
  10. #include "setting.h"
  11. #include "esp_err.h"
  12. #define NVS_POWER_CONTROLLER "power" // 电源
  13. #define NVS_MODEL_CONTROLLER "model" // 工作模式
  14. #define NVS_FAN_SPEED_SET "fan_speed" // 风速挡位
  15. #define NVS_FILTER_USED_TIME "filter" //滤芯已使用时间
  16. #define NVS_MAX_HUM_SET "set_max_hum" // 自动模式下最大湿度
  17. #define NVS_MIN_HUM_SET "set_min_hum" // 自动模式下最小湿度
  18. #define NVS_NEW_FAN "new_fan" // 新风开关
  19. typedef struct {
  20. uint16_t power; // 电源状态
  21. uint16_t mode;
  22. uint16_t fan_speed;
  23. uint16_t filter_used_time;
  24. uint16_t set_max_hum;
  25. uint16_t set_min_hum;
  26. uint8_t filter_life_remaining;
  27. uint8_t error_code;
  28. }js_module_status_t;
  29. typedef struct {
  30. uint16_t power; // 电源状态
  31. uint16_t mode;
  32. uint16_t fan_speed;
  33. uint16_t filter_used_time;
  34. uint16_t set_hum;
  35. uint8_t filter_life_remaining;
  36. uint8_t error_code;
  37. }xfcs_status_t;
  38. /**
  39. * 定义保存空调设置参数的结构体
  40. */
  41. typedef struct {
  42. uint16_t power; // 电源状态
  43. uint16_t mode;
  44. uint16_t fan_speed;
  45. uint16_t filter_used_time;
  46. uint16_t set_max_hum;
  47. uint8_t filter_life_remaining;
  48. uint8_t js_error_code;
  49. uint8_t cs_error_code;
  50. uint8_t new_fan;//新风开关
  51. uint8_t filter_change_flag;//
  52. xfcs_status_t xfcs_status;//新风除湿机状态
  53. js_module_status_t js_module_status;//加湿模块状态
  54. uint8_t proof_mode;
  55. uint8_t filter_reset_flag;
  56. }xf_status_t;
  57. typedef struct {
  58. uint8_t code[3];
  59. uint8_t description[32];
  60. }xf_fault_t;
  61. enum {
  62. CS = 1,
  63. JS=3,
  64. SF=2,
  65. AUTO=4,
  66. };
  67. enum {
  68. XFCS_XF = 1,
  69. XFCS_XFCS=2,
  70. XFCS_NXHCS=3,
  71. XFCS_NXH=4,
  72. };
  73. enum {
  74. JS_JS = 3,
  75. };
  76. extern xf_fault_t xf_fault[9];
  77. extern xf_fault_t xf_CSFault[];
  78. void stop_xf_controller();
  79. // 保存当前空调状态
  80. extern xf_status_t xf_status;
  81. /**
  82. * 控制器初始化
  83. * @param setting 系统设置参数
  84. */
  85. void xf_controller_init(system_setting_t * setting);
  86. /**
  87. * 设置滤网剩余寿命
  88. * @param saved 是否保存到 nvs 中
  89. */
  90. void xf_set_filter_life_remain(bool saved);
  91. /**
  92. * 设置风档
  93. * @param saved 是否保存到 nvs 中
  94. */
  95. esp_err_t xf_set_fan_speed(bool saved);
  96. /**
  97. * 设置电源
  98. * @param saved 是否保存到 nvs 中
  99. */
  100. esp_err_t xf_set_power(bool saved);
  101. /**
  102. * 设置温度
  103. * @param saved 是否保存到 nvs 中
  104. */
  105. esp_err_t ac_set_temp(bool saved);
  106. /**
  107. * 设置模式
  108. * @param saved 是否保存到 nvs 中
  109. */
  110. esp_err_t xf_set_mode(bool saved);
  111. /**
  112. * 设置对应风阀开度
  113. * @param no 风阀序号
  114. * @param degree 风阀开度
  115. */
  116. esp_err_t ac_set_fan_valve(uint8_t no, uint16_t degree);
  117. /**
  118. * 注册云端指令
  119. */
  120. void register_sparrow_commands(void);
  121. /**
  122. * 手动新风
  123. *
  124. */
  125. esp_err_t set_new_fan(bool saved);
  126. esp_err_t xf_set_max_hum(bool saved);
  127. void read_xf_status(system_setting_t *setting);
  128. #endif //WIRE_CONTROLLER_XF_CONTROLLER_H