switch_ctrl.h 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. #ifndef __SWITCH_CTRL_H__
  2. #define __SWITCH_CTRL_H__
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <unistd.h>
  7. #include "common.h"
  8. /// @brief modbus模式 主机/从机
  9. enum MODBUS_MODE
  10. {
  11. MASTER_MODE = 0 ,
  12. SLAVE_MODE,
  13. };
  14. #define _SWITCH_TYPE_CHN_INFO 0x0FA0 //获取继电器板类型通道
  15. #define _SWITCH_AC_SINGLE_S_CUR_INFO 0x0FAB //单相小电流继电器信息,共8路继电器
  16. #define _SWITCH_AC_SINGLE_S_STS_INFO 0x1071 //单相小电流继电器开关状态,共8路继电器
  17. #define _SWITCH_AC_SINGLE_B_CUR_INFO 0x1015 //单相大电流继电器信息,共4路继电器
  18. #define _SWITCH_AC_SINGLE_B_STS_INFO 0x1083 //单相大电流继电器开关状态,共4路继电器
  19. #define _SWITCH_AC_BREAKER_INFO 0x10D6 //单相控制板开关检测信息
  20. #define _SWITCH_AC_TOTAL_ALATRM 0x10E0 //单相控制板总体报警信息 2024.11.12
  21. #define _SWITCH_AC_SINGLE_S_START_DELAY_TIME 0x1194 //单相小电流继电器板开启延时
  22. #define _SWITCH_AC_SINGLE_S_STOP_DELAY_TIME 0x11A6 //单相小电流继电器板关闭延时
  23. #define _SWITCH_AC_SINGLE_B_START_DELAY_TIME 0x11B8 //单相大电流继电器板开启延时
  24. #define _SWITCH_AC_SINGLE_B_STOP_DELAY_TIME 0x11C6 //单相大电流继电器板关闭延时
  25. #define _SWITCH_AC_SINGLE_S_CHN_STS 0x11EA //设置单相小电流通道开关状态
  26. #define _SWITCH_AC_SINGLE_B_CHN_STS 0x11FC //设置单相大电流通道开关状态
  27. #define _SWITCH_AC_SINGLE_S_Threshold 0x1215 //设置单相小电流通道超限报警阈值
  28. #define _SWITCH_AC_SINGLE_B_Threshold 0x129F //设置单相大电流通道超限报警阈值X
  29. #define _SWITCH_AC_SINGLE_S_KB_VAL 0x1203 //设置单相小电流通道K、B值
  30. #define _SWITCH_AC_SINGLE_B_KB_VAL 0x124D //设置单相大电流通道K、B值
  31. #define _SWITCH_AC_RESET_CONSUMPTION 0x1400 //重置单相耗电量
  32. #define _SWITCH_AC_ALARM_CTRL 0x13EC //超限动作
  33. #define _SWITCH_AC_TOTAL_Threshold 0x1450 //设置单相总超限报警阈值 2024.11.12
  34. #define _SWITCH_AC_ALARM_TOTAL_CTRL 0x1482 //总体超限动作 2024.11.12
  35. #define _SWITCH_DC_STS 0x120A //设置直流继电器开关状态
  36. #define _SWITCH_DC_Threshold 0x12E9 //设置直流继电器超限报警X
  37. #define _SWITCH_DC_KB_VAL 0x136D //设置直流通道K、B值
  38. #define _SWITCH_DC_START_DELAY_TIME 0x11D4 //直流继电器控制板开启延时
  39. #define _SWITCH_DC_STOP_DELAY_TIME 0x11DF //直流继电器控制板关闭延时
  40. #define _SWITCH_DC_OUT_INFO 0x104F //直流继电器电路控制板信息,采集一路输出
  41. #define _SWITCH_DC_STS_INFO 0x1097 //直流继电器电路控制板开关状态,采集一路输出
  42. #define _SWITCH_DC_IN_INFO 0x105F //直流总电流电压采集控制板,采集设备输入电压和输入电流
  43. #define _SWITCH_DCPDU_TYPE_CHN_INFO 0x1770 //获取直流PDU类型通道
  44. #define _SWITCH_DCPDU_TOTAL_ALARM 0x1776 //直流PDU总报警信息 2024.11.12
  45. #define _SWITCH_DCPDU_OUT_INFO 0x177A //直流PDU输出
  46. #define _SWITCH_DCPDU_STS_INFO 0x17E2 //直流PDU开关状
  47. #define _SWITCH_DCPDU_WARNING 0x179A //直流PDU报警信息
  48. #define _SWITCH_DCPDU_STS_ERROR 0x17E4 //直流PDU故障状态
  49. #define _SWITCH_DCPDU_IN_INFO 0x1772 //直流PDU采集输入电压与输入电
  50. #define _SWITCH_DCPDU_START_DELAY_TIME 0x17E6 //直流PDU延时
  51. #define _SWITCH_DCPDU_STOP_DELAY_TIME 0x17F6 //直流PDU延时
  52. #define _SWITCH_DCPDU_MAX_VOL_THRESHOLD 0x17A2 //max voltage threshold
  53. #define _SWITCH_DCPDU_MIN_VOL_THRESHOLD 0x17B2 //min voltage threshold
  54. #define _SWITCH_DCPDU_MAX_CUR_THRESHOLD 0x17C2 //max current threshold
  55. #define _SWITCH_DCPDU_MIN_CUR_THRESHOLD 0x17D2 //max current threshold
  56. #define _SWITCH_DCPDU_MAX_POWER_THRESHOLD 0x1810 //max power threshold
  57. #define _SWITCH_DCPDU_MAX_POWERCON_THRESHOLD 0x181A //max powercon threshold
  58. #define _SWITCH_DCPDU_ALL_OPEN_INFO 0x1806 //ALL OPEN直流PDU开关状
  59. #define _SWITCH_DCPDU_ALL_CLOSE_INFO 0x1807 //ALL OPEN直流PDU开关状
  60. #define _SWITCH_DCPDU_ALARM_CTRL 0x182E //超限动作
  61. #define _SWITCH_DCPDU_RESET_CONSUMPTION 0x1838 //重置直流耗电量
  62. #define _SWITCH_DCPDU_MAX_TOTAL_VOL_THRESHOLD 0x184C //max total voltage threshold 2024.11.12
  63. #define _SWITCH_DCPDU_MIN_TOTAL_VOL_THRESHOLD 0x184D //min total voltage threshold 2024.11.12
  64. #define _SWITCH_DCPDU_MAX_TOTAL_CUR_THRESHOLD 0x184E //max total current threshold 2024.11.12
  65. #define _SWITCH_DCPDU_MAX_TOTAL_POWER_THRESHOLD 0x184F //max total power threshold 2024.11.12
  66. #define _SWITCH_DCPDU_MAX_TOTAL_POWERCON_THRESHOLD 0x1850 //max total powercon threshold 2024.11.12
  67. #define _SWITCH_DCPDU_ALARM_TOTAL_CTRL 0x1856 //总体超限动作 2024.11.12
  68. #define _SWITCH_T_AC_TYPE_CHN_INFO 0x1770 //获取三项类型通道
  69. #define _SWITCH_T_AC_IN_INFO 0x1771 //三项交流输入
  70. #define _SWITCH_T_AC_OUT_INFO 0x177D //三项交流输出
  71. #define _SWITCH_T_AC_OUT_ENABLE 0x182E //三项交流输出按通道开关状态及控制使能
  72. #define _SWITCH_T_AC_NF_STATUS 0x1837 //三项交流零线断路器状态
  73. #define _SWITCH_T_AC_CH_OUT_ENABLE 0x183A //三项交流输出按插头开关状态及控制使
  74. #define _SWITCH_T_AC_IN_ENABLE 0x182D //三项交流输入超限使能
  75. #define _SWITCH_T_AC_OUT_ERROR 0x17DE //三项交流输出故障状态
  76. #define _SWITCH_T_AC_IN_TOTAL_ERROR 0x17CA //三项交流总输入故障状态 2024.11.12
  77. #define _SWITCH_T_AC_IN_ERROR 0x17DD //三项交流输入故障状态
  78. #define _SWITCH_T_AC_START_DELAY_TIME 0x1840 //三项交流延时
  79. #define _SWITCH_T_AC_STOP_DELAY_TIME 0x184C //三项交流延时
  80. #define _SWITCH_T_AC_SINGLE_IN_Threshold 0x17EA //设置三项交流输入超限报警
  81. #define _SWITCH_T_AC_SINGLE_OUT_Threshold 0x17EF //设置三项交流输出超限报警
  82. #define _SWITCH_T_AC_ALL_OPEN_INFO 0x182B //ALL OPEN直流PDU开关状
  83. #define _SWITCH_T_AC_ALL_CLOSE_INFO 0x182C //ALL OPEN直流PDU开关状
  84. #define _SWITCH_T_AC_MAX_VOL_THRESHOLD 0x17EF //max voltage threshold
  85. #define _SWITCH_T_AC_MIN_VOL_THRESHOLD 0x17FB //min voltage threshold
  86. #define _SWITCH_T_AC_MAX_CUR_THRESHOLD 0x1807 //max current threshold
  87. #define _SWITCH_T_AC_MAX_PWR_THRESHOLD 0x1813 //max POWER threshold
  88. #define _SWITCH_T_AC_MAX_PWRCON_THRESHOLD 0x181F //max PWRCON threshold
  89. #define _SWITCH_T_AC_ALARM_MISSING_PH 0x1856 //缺相报警
  90. #define _SWITCH_T_AC_ALARM_TOTAL_CTRL 0x185F //总体超限动作 2024.11.12
  91. #define _SWITCH_T_AC_ALARM_CTRL 0x1860 //超限动作
  92. #define _SWITCH_T_AC_RESET_CONSUMPTION_PH 0x189C //重置PH耗电量
  93. #define _SWITCH_T_AC_RESET_CONSUMPTION 0x18A5 //重置all耗电量
  94. #define _SWITCH_T_AC_BREAKER_INFO 0x17D4 //三相控制板开关检测信息
  95. int g_switch_init(int addr_max);
  96. int g_switch_get_type(void* manger,int saddr, int* type,int* chn,int nPowerType);
  97. int g_switch_get_ac_single_s_cur_info(void* manger,int saddr,unsigned char chn,PowerInfo* _power,PowerWarningInfo* _warning);
  98. int g_switch_get_ac_single_s_all_cur_info(void* manger,int saddr,int nNumb,PowerInfo* _power,PowerWarningInfo* _warning);
  99. int g_switch_set_ac_single_s_start_time_delay(void* manger,int saddr,unsigned char chn,unsigned int time);
  100. int g_switch_set_ac_single_s_stop_time_delay(void* manger,int saddr,unsigned char chn,unsigned int time);
  101. int g_switch_set_ac_single_s_ctrl(void* manger,int saddr,unsigned short* sts,int nsize);
  102. int g_switch_set_ac_single_s_chn_ctrl(void* manger,int saddr,unsigned char chn,unsigned short sts);
  103. int g_switch_set_ac_single_s_kb_val(void* manger,int saddr,unsigned char chn,SwitchKbVal* _kb_val);
  104. int g_switch_set_ac_single_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  105. int g_switch_set_ac_alarm_ctrl(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  106. int g_switch_set_ac_reset(void* manger,int saddr);
  107. int g_switch_set_ac_single_b_start_time_delay(void* manger,int saddr,unsigned char chn,unsigned int time);
  108. int g_switch_set_ac_single_b_stop_time_delay(void* manger,int saddr,unsigned char chn,unsigned int time);
  109. int g_switch_set_ac_single_b_chn_ctrl(void* manger,int saddr,unsigned char chn,unsigned short sts);
  110. int g_switch_set_ac_single_b_ctrl(void* manger,int saddr,unsigned short* sts,int nsize);
  111. int g_switch_set_ac_single_b_kb_val(void* manger,int saddr,unsigned char chn,SwitchKbVal* _kb_val);
  112. int g_switch_get_dc_out_info(void* manger,int saddr,unsigned char chn,PowerInfo* _power,PowerWarningInfo* _warning);
  113. int g_switch_set_dc_start_time_delay(void* manger,int saddr,unsigned int time);
  114. int g_switch_set_dc_stop_time_delay(void* manger,int saddr,unsigned int time);
  115. int g_switch_set_dc_ctrl(void* manger,int saddr,unsigned short sts);
  116. int g_switch_set_dc_kb_val(void* manger,int saddr,SwitchKbVal* _kb_val);
  117. int g_switch_get_dc_in_info(void* manger,int saddr,PowerInfo* _power,SenorTempVal* _sensorVal);
  118. int g_switch_get_dcpdu_in_info(void* manger,int saddr,PowerInfo* _power);
  119. int g_switch_get_dcpdu_out_info(void* manger,int saddr,unsigned char chn,PowerInfo* _power,PowerWarningInfo* _warning);
  120. int g_switch_get_dcpdu_all_out_info(void* manger,int saddr,int nNumb,PowerInfo* _power,PowerWarningInfo* _warning);
  121. int g_switch_get_dcpdu_start_time_delay(void* manger,int saddr,unsigned int* time);
  122. int g_switch_get_dcpdu_stop_time_delay(void* manger,int saddr,unsigned int* time);
  123. int g_switch_get_dcpdu_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  124. int g_switch_set_dcpdu_start_time_delay(void* manger,int saddr,int ch, unsigned int time);
  125. int g_switch_set_dcpdu_stop_time_delay(void* manger,int saddr,int ch, unsigned int time);
  126. int g_switch_set_dcpdu_chn_ctrl(void* manger,int saddr,unsigned char chn,unsigned short sts);
  127. int g_switch_set_dcpdu_chns_ctrl(void* manger,int saddr,unsigned short sts,int nSet);
  128. int g_switch_set_dcpdu_ctrl(void* manger,int saddr,unsigned short* sts);
  129. int g_switch_set_dcpdu_max_vol_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  130. int g_switch_set_dcpdu_min_vol_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  131. int g_switch_set_dcpdu_max_cur_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  132. int g_switch_set_dcpdu_min_cur_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  133. int g_switch_set_dcpdu_max_power_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  134. int g_switch_set_dcpdu_max_pwrcon_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  135. int g_switch_set_dcpdu_alarm_ctrl(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  136. int g_switch_set_dcpdu_reset(void* manger,int saddr);
  137. int g_switch_set_dcpdu_chn_reset(void* manger,int saddr,int nChn);
  138. //----------------------------------------------------------------
  139. int g_switch_get_t_ac_in_info(void* manger,int saddr,PowerInfo* _power,PowerWarningInfo* _warning);
  140. int g_switch_get_t_ac_out_info(void* manger,int saddr,unsigned char chn,PowerInfo* _power,PowerWarningInfo* _warning);
  141. int g_switch_get_t_ac_all_out_info(void* manger,int saddr,int nNumb,PowerInfo* _power,PowerWarningInfo* _warning);
  142. int g_switch_get_t_ac_start_time_delay(void* manger,int saddr,unsigned int* time);
  143. int g_switch_get_t_ac_stop_time_delay(void* manger,int saddr,unsigned int* time);
  144. int g_switch_get_t_ac_in_threshold(void* manger,int saddr,GlobalOverManager* _global_over_manager);
  145. int g_switch_set_t_ac_in_threshold(void* manger,int saddr,GlobalOverManager* _global_over_manager);
  146. int g_switch_get_t_ac_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  147. int g_switch_set_t_ac_max_vol_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  148. int g_switch_set_t_ac_min_vol_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  149. int g_switch_set_t_ac_max_cur_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  150. int g_switch_set_t_ac_max_power_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  151. int g_switch_set_t_ac_max_pwrcon_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  152. int g_switch_set_t_ac_alarm_ctrl(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
  153. int g_switch_set_t_ac_alarm_missing_ph(void* manger,int saddr,int* MissStatus);
  154. int g_switch_set_t_ac_start_time_delay(void* manger,int saddr,int ch, unsigned int time);
  155. int g_switch_set_t_ac_stop_time_delay(void* manger,int saddr,int ch, unsigned int time);
  156. int g_switch_set_t_ac_chn_ctrl(void* manger,int saddr,unsigned char chn,unsigned short sts);
  157. int g_switch_set_t_ac_chn_NF_ctrl(void* manger,int saddr,unsigned char chn,unsigned short sts);
  158. int g_switch_set_t_ac_phchn_ctrl(void* manger,int saddr,unsigned char chn,unsigned short sts);
  159. int g_switch_set_t_ac_ctrl(void* manger,int saddr,unsigned short* sts);
  160. int g_switch_set_t_ac_reset(void* manger,int saddr);
  161. int g_switch_set_t_ac_phchn_reset(void* manger,int saddr,int nChn);
  162. int g_switch_set_t_ac_chn_reset(void *manger, int saddr, int nChn);
  163. //GPIO通道状态
  164. int g_switch_get_gpio_status(int ngpio,int* status);
  165. //根据类型选择处理
  166. int g_switch_set_all_start_time_delay(void* manger,int ntype,int saddr,unsigned char chn,unsigned int time);
  167. int g_switch_set_all_stop_time_delay(void* manger,int ntype,int saddr,unsigned char chn,unsigned int time);
  168. int g_switch_set_all_chn_ctrl(void* manger, GlobalPowerManger* _globalPowerMangerTemp,int saddr,unsigned char chn,unsigned short sts,bool isgroup);
  169. int g_switch_set_all_ctrl(void* manger,int ntype,int saddr,unsigned short sts);
  170. int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,GlobalPowerManger* _globalPowerMangerTemp, int setCh);
  171. int g_switch_get_all_out_info(void* manger,int ntype,int saddr,int nNumb,PowerInfo* _power,PowerWarningInfo* _warning);
  172. int g_switch_get_all_reset(void* manger,int ntype,int saddr);
  173. //未实现
  174. int g_switch_set_ac_single_s_time_delay(void* manger,int saddr,unsigned char chn,unsigned int time);
  175. int g_switch_set_ac_single_b_time_delay(void* manger,int saddr,unsigned char chn,unsigned int time);
  176. int g_switch_set_dc_time_delay(void* manger,int saddr,unsigned int time);
  177. //int g_switch_set_ac_single_s_ctrl(void* manger,int saddr,unsigned short* sts);
  178. int g_switch_get_breaker_info(void* manger,int ntype,int saddr,GlobalBreakerManager* _breaker);
  179. int g_switch_get_ac_breaker_info(void* manger,int saddr,GlobalBreakerManager* _breaker);
  180. int g_switch_get_t_ac_breaker_info(void* manger,int saddr,GlobalBreakerManager* _breaker);
  181. //重新加载端口
  182. int ResetChmData(int nCtrlType);
  183. //upgrade interface
  184. #endif