setting.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. /**
  2. * @Author: 李建
  3. * @Date: 2025/5/2 11:48
  4. * Description: 系统设置功能
  5. * Copyright: Copyright (©) 2025 永续绿建. All rights reserved.
  6. */
  7. #ifndef WIRE_CONTROLLER_SETTING_H
  8. #define WIRE_CONTROLLER_SETTING_H
  9. #include <stdint.h>
  10. #include <stdbool.h>
  11. #define NVS_REPORT_DATA_DURATION "report_dur" // 上报数据间隔
  12. #define NVS_ALLOW_VALVE_ONOFF "allow_valve" // 是否允许风阀完全关闭
  13. #define NVS_FF_NAME_1 "ff_n_1" // 风阀一名称
  14. #define NVS_FF_NAME_2 "ff_n_2" // 风阀二名称
  15. #define NVS_FF_NAME_3 "ff_n_3" // 风阀三名称
  16. #define NVS_FF_NAME_4 "ff_n_4" // 风阀四名称
  17. #define NVS_FF_NAME_5 "ff_n_5" // 风阀五名称
  18. #define NVS_SOUND_ON_OFF_KEY "S_ON_OFF"
  19. #define NVS_SCREEN_AUTO_OFF_KEY "SCREEN_A_O"
  20. #define NVS_SOUND_VOLUME_KEY "S_VOLUME"
  21. #define NVS_SCREEN_OFF_MINUTE_KEY "SCREEN_O_M"
  22. #define NVS_INNER_ADDR "inner_addr" // 内机地址
  23. #define NVS_FIX_TEMP_KEY "FIX_TEMP"
  24. #define NVS_FIX_HUM_KEY "FIX_HUM"
  25. #define NVS_SCREEN_ON_OFF "scr_on_off" // 屏幕当前状态
  26. #define NVS_ACTIVE_FJSQ_KEY "active_fjsq"
  27. #define NVS_HP_MODE_KEY "hp_mode"
  28. #define NVS_HP_POWER_KEY "HP_POWER"
  29. #define NVS_HP_COOL_SET_TEMP_KEY "hp_c_temp"
  30. #define NVS_HP_HEAT_SET_TEMP_KEY "hp_h_temp"
  31. #define NVS_RELEY_STATUS_KEY "relay"
  32. #define NVS_FJSQ_SLAVE_ADDR "fjsq_addr"
  33. #define NVS_ALLOW_LINKAGE_KEY "linkage"
  34. /**
  35. * 定义五恒模块的类型
  36. */
  37. typedef enum {
  38. QRXFJSJ = 1, // (全热)新风加湿一体机
  39. XFCSJ = 2, // 新风除湿机
  40. XFJHJ = 3 // 新风净化一体机
  41. } five_const_module_type_e;
  42. enum {
  43. MODE_COOL = 1,
  44. MODE_HEAT
  45. };
  46. /**
  47. * 定义系统设定参数结构体
  48. */
  49. typedef struct {
  50. uint16_t inner_addr; // 内机地址
  51. int8_t fix_temp; // 温度修正值(-5,5)
  52. int8_t fix_hum; // 湿度修正值(-5,5)
  53. five_const_module_type_e five_const_module_type; // 五恒模块类型
  54. uint8_t sound_on_off; // 声音开关
  55. uint8_t screen_auto_off; // 是否自动关屏
  56. uint8_t sound_volume; // 声音音量大小
  57. uint8_t screen_off_minute; // 屏幕自动关屏时间
  58. uint8_t report_data_duration; // 数据上报时间间隔,默认30秒一次
  59. uint16_t hp_power; // 开关机状态
  60. uint16_t hp_mode; // 设置模式
  61. uint16_t hp_cool_set_temp; // 制冷水温设定
  62. uint16_t hp_heat_set_temp; // 制热水温设定
  63. uint16_t reley_status; // 分集水器1-8路状态
  64. uint16_t fjsq_slave_addr;// 集控盒通讯地址
  65. uint8_t allow_linkage;// 内机外是否联动
  66. uint8_t active_fjsq;// 是否开启智能分集水器控制
  67. } system_setting_t;
  68. /**
  69. * 读取系统设定参数
  70. * @param setting
  71. */
  72. void read_system_setting(system_setting_t *setting);
  73. /**
  74. * 保存 ADDR
  75. * @param addr
  76. */
  77. void save_inner_addr(uint8_t addr);
  78. /**
  79. * 保存系统配置
  80. */
  81. void save_system_setting(const system_setting_t *setting);
  82. /**
  83. * 保存风阀配置信息
  84. * @param setting
  85. * @param ctrl_no 控制编号 (1-5)
  86. * @param fan_valve_no 风阀编号(1-5)
  87. * @param value 0或1,代表关联与取消关联
  88. */
  89. void save_fan_valve_setting(system_setting_t *setting, uint8_t ctrl_no, uint8_t fan_valve_no, uint8_t value);
  90. /**
  91. * 熄屏计时器初始化
  92. */
  93. void screen_off_timer_init(system_setting_t *setting);
  94. /**
  95. * 重置屏幕熄灭
  96. * 返回是否是重新点亮的操作
  97. */
  98. bool reset_screen_off();
  99. #endif //WIRE_CONTROLLER_SETTING_H