setting.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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_HP_MODE_KEY "hp_mode"
  27. #define NVS_HP_POWER_KEY "HP_POWER"
  28. #define NVS_HP_COOL_SET_TEMP_KEY "hp_c_temp"
  29. #define NVS_HP_HEAT_SET_TEMP_KEY "hp_h_temp"
  30. #define NVS_RELEY_STATUS_KEY "relay"
  31. #define NVS_FJSQ_SLAVE_ADDR "fjsq_addr"
  32. /**
  33. * 定义五恒模块的类型
  34. */
  35. typedef enum {
  36. QRXFJSJ = 1, // (全热)新风加湿一体机
  37. XFCSJ = 2, // 新风除湿机
  38. XFJHJ = 3 // 新风净化一体机
  39. } five_const_module_type_e;
  40. enum {
  41. MODE_COOL = 1,
  42. MODE_HEAT
  43. };
  44. /**
  45. * 定义系统设定参数结构体
  46. */
  47. typedef struct {
  48. uint16_t inner_addr; // 内机地址
  49. int8_t fix_temp; // 温度修正值(-5,5)
  50. int8_t fix_hum; // 湿度修正值(-5,5)
  51. five_const_module_type_e five_const_module_type; // 五恒模块类型
  52. uint8_t sound_on_off; // 声音开关
  53. uint8_t screen_auto_off; // 是否自动关屏
  54. uint8_t sound_volume; // 声音音量大小
  55. uint8_t screen_off_minute; // 屏幕自动关屏时间
  56. uint8_t report_data_duration; // 数据上报时间间隔,默认30秒一次
  57. uint16_t hp_power; // 开关机状态
  58. uint16_t hp_mode; // 设置模式
  59. uint16_t hp_cool_set_temp; // 制冷水温设定
  60. uint16_t hp_heat_set_temp; // 制热水温设定
  61. uint16_t reley_status; // 分集水器1-8路状态
  62. uint16_t fjsq_slave_addr;// 集控盒通讯地址
  63. } system_setting_t;
  64. /**
  65. * 读取系统设定参数
  66. * @param setting
  67. */
  68. void read_system_setting(system_setting_t *setting);
  69. /**
  70. * 保存 ADDR
  71. * @param addr
  72. */
  73. void save_inner_addr(uint8_t addr);
  74. /**
  75. * 保存系统配置
  76. */
  77. void save_system_setting(system_setting_t *setting);
  78. /**
  79. * 保存风阀配置信息
  80. * @param setting
  81. * @param ctrl_no 控制编号 (1-5)
  82. * @param fan_valve_no 风阀编号(1-5)
  83. * @param value 0或1,代表关联与取消关联
  84. */
  85. void save_fan_valve_setting(system_setting_t *setting, uint8_t ctrl_no, uint8_t fan_valve_no, uint8_t value);
  86. /**
  87. * 熄屏计时器初始化
  88. */
  89. void screen_off_timer_init(system_setting_t *setting);
  90. /**
  91. * 重置屏幕熄灭
  92. * 返回是否是重新点亮的操作
  93. */
  94. bool reset_screen_off();
  95. #endif //WIRE_CONTROLLER_SETTING_H