internalComm.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. /*
  2. * internalComm.h
  3. *
  4. * Created on: 2019年5月7日
  5. * Author: foluswen
  6. */
  7. #ifndef INTERNALCOMM_H_
  8. #define INTERNALCOMM_H_
  9. #define FRAME_ID 0xAA
  10. #define CSU_ADD 0x00
  11. #define AUX_ADD 0x01
  12. #define FAN_ADD 0x02
  13. #define RELAY_ADD 0x03
  14. #define ACPLUG_ADD 0x05
  15. #define LED_ADD 0x06
  16. #define RC1_ADD 0x07 // relay 1 in power cabinet
  17. #define RC2_ADD 0x08 // relay 2 in power cabinet
  18. #define RD_ADD 0x09 // relay in dispenser
  19. #define BROADCAST_ADD 0xFF
  20. #define INTERNAL_PACKET_MIN_LEN 7
  21. #define MSGID_G_FW_VERSION 0x01
  22. #define MSGID_G_HW_VERSION 0x02
  23. #define MSGID_G_AC_INPUT_VOLTAGE 0x03
  24. #define MSGID_G_DC_OUTPUT_VOLTAGE 0x04
  25. #define MSGID_G_FAN_SPEED 0x05
  26. #define MSGID_G_TEMPERATURE 0x06
  27. #define MSGID_G_AUX_VOLTAGE 0x07
  28. #define MSGID_G_RELAY_STATE 0x08
  29. #define MSGID_G_GFD 0x09
  30. #define MSGID_G_GPIO_INPUT 0x0A
  31. #define MSGID_G_ALARM 0x22 // no use
  32. #define MSGID_G_SERIAL_NUMBER 0x23 // no use
  33. #define MSGID_G_MODEL_NAME 0x24
  34. #define MSGID_G_CORRECTION 0x25 // no use
  35. #define MSGID_G_RTC 0x26 // no use
  36. #define MSGID_G_AC_OUTPUT_CURRENT 0x27
  37. #define MSGID_G_AC_STATUS 0x28
  38. #define MSGID_G_AC_ALARM 0x29
  39. #define MSGID_G_BLE_CONFIG 0x2A // no use
  40. #define MSGID_G_BLE_CENTRAL_ID 0x2B // no use
  41. #define MSGID_G_AC_OUTPUT_POWER 0x2C
  42. #define MSGID_G_AC_GUN_PLUGIN 0x2D // no use
  43. #define MSGID_G_AC_AUTHMODE 0x2E // no use
  44. #define MSGID_G_LEAK_CURRENT 0x2F // no use
  45. #define MSGID_G_MCU_OPERATION 0x30 // no use
  46. #define MSGID_G_4G_MODULE_REVISION 0x31 // no use
  47. #define MSGID_G_SELFTEST_STATUS 0x32 // no use
  48. #define MSGID_G_AC_FREQUENCY 0x33 // no use
  49. #define MSGID_G_4G_SIM_INFO 0x34 // no use
  50. #define MSGID_G_METER_MEASUREMENT 0x35 // no use
  51. #define MSGID_G_METER_CORRECTION 0x36 // no use
  52. #define MSGID_G_METER_HISTORY 0x37 // no use
  53. #define MSGID_G_DC_INPUT_VOLTAGE 0x38
  54. #define MSGID_S_FAN_SPEED 0x81
  55. #define MSGID_S_SERIAL_NUMBER 0x82 // no use
  56. #define MSGID_S_MODEL_NAME 0x83
  57. #define MSGID_S_CORRECTION 0x84 // no use
  58. #define MSGID_S_RELAY_STATE 0x85
  59. #define MSGID_S_GPIO_OUTPUT 0x86
  60. #define MSGID_S_RTC 0x87
  61. #define MSGID_S_AC_LED_STATE 0x88
  62. #define MSGID_S_AC_CP_DUTY 0x89
  63. #define MSGID_S_AC_LEGACY_REQ 0x8A
  64. #define MSGID_S_GFD 0x8B
  65. #define MSGID_S_AC_RESET_MCU 0x8C
  66. #define MSGID_S_AC_BREATH_LED 0x8D // no use
  67. #define MSGID_S_AC_LED BRIGHTNESS 0x8E // no use
  68. #define MSGID_S_AC_AUTHMODE 0x8F // no use
  69. #define MSGID_S_MCU_OPERATION 0x90
  70. #define MSGID_S_SAVE_CONFIG 0x91 // no use
  71. #define MSGID_S_RUN_SELFTEST 0x92 // no use
  72. #define MSGID_S_LED_COLOR 0x93
  73. #define MSGID_S_MCU_ERASE 0x94 // no use
  74. #define MSGID_S_AUX_SWITCH 0x95 // no use
  75. #define MSGID_S_METER_CORRECTION 0x96 // no use
  76. #define MSGID_S_FW_CHECKSUM 0xE0
  77. #define MSGID_S_FW_ABORT 0xE1
  78. #define MSGID_S_FW_PACKET 0xE2
  79. #define MSGID_S_FW_FINISH 0xE3
  80. extern struct Address
  81. {
  82. unsigned char Aux;
  83. unsigned char Fan;
  84. unsigned char Relay;
  85. unsigned char AcPlug;
  86. unsigned char Led;
  87. unsigned char DO360_RC1;
  88. unsigned char DO360_RC2;
  89. unsigned char DD360_Relay;
  90. unsigned char Broadcast;
  91. }Addr;
  92. extern struct Command
  93. {
  94. unsigned char query_FW_Ver; //0x01
  95. unsigned char query_HW_Ver; //0x02
  96. unsigned char query_Present_InputVoltage; //0x03
  97. unsigned char query_Present_OutputVoltage; //0x04
  98. unsigned char query_Fan_Speed; //0x05
  99. unsigned char query_Temperature; //0x06
  100. unsigned char query_Aux_PowerVoltage; //0x07
  101. unsigned char query_Relay_Output; //0x08
  102. unsigned char query_Gfd_Adc; //0x09
  103. unsigned char query_Gpio_In; //0x0a
  104. unsigned char query_Model_Name; //0x24
  105. unsigned char query_ac_output_current; //0x27
  106. unsigned char query_ac_status; //0x28
  107. unsigned char query_ac_alarm_code; //0x29
  108. unsigned char query_ac_output_energy; //0x2C
  109. unsigned char query_DC_InputVoltage; //0x38
  110. unsigned char config_Fan_Speed; //0x81
  111. unsigned char config_Model_Name; //0x83
  112. unsigned char config_Relay_Output; //0x85
  113. unsigned char config_Gpio_Output; //0x86
  114. unsigned char config_Rtc_Data; //0x87
  115. unsigned char config_ac_led_status; //0x88
  116. unsigned char config_ac_duty; //0x89
  117. unsigned char config_Legacy_Req; //0x8A
  118. unsigned char config_Gfd_Value; //0x8B
  119. unsigned char config_reset_mcu; //0x8C
  120. unsigned char config_csu_mode; //0x90
  121. unsigned char config_led_color; //0x93
  122. unsigned char update_Start; //0xe0
  123. unsigned char update_Abort; //0xe1
  124. unsigned char update_Transfer; //0xe2
  125. unsigned char update_Finish; //0xe3
  126. }Cmd;
  127. typedef struct Verion
  128. {
  129. char Version_FW[9];
  130. char Version_HW[9];
  131. }Ver;
  132. typedef struct PRESENTINPUTVOLTAGE
  133. {
  134. unsigned char inputType; // 0x00: Line to Line 0x01: Line to Neutral
  135. double L1N_L12;
  136. double L2N_L23;
  137. double L3N_L31;
  138. }PresentInputVoltage;
  139. typedef struct
  140. {
  141. float DC_Input_1;
  142. float DC_Input_2;
  143. }DCInputVoltage;
  144. typedef struct PRESENTOUTPUTVOLTAGE
  145. {
  146. double behindFuse_Voltage_C1;
  147. double behindRelay_Voltage_C1;
  148. double behindFuse_Voltage_C2;
  149. double behindRelay_Voltage_C2;
  150. }PresentOutputVoltage;
  151. typedef struct FANSPEED
  152. {
  153. unsigned short int speed[8];
  154. }FanSpeed;
  155. typedef struct TEMPERATURE
  156. {
  157. unsigned char temperature[8];
  158. }Temperature;
  159. typedef struct AUXPOWER
  160. {
  161. unsigned char voltage[8];
  162. }AuxPower;
  163. typedef union
  164. {
  165. unsigned char relay_status;
  166. struct
  167. {
  168. unsigned char Gun_N:1; // 0: gun_n off, 1: gun_n on
  169. unsigned char Gun_P:1; // 0: gun_p off, 1: gun_p on
  170. unsigned char Gun_Parallel_N_P:1; // 0: gun_parallel off, 1: gun_parallel on
  171. unsigned char Gun_Parallel_P:1; // 0: gun_parallel off, 1: gun_parallel on
  172. unsigned char res:4;
  173. }bits;
  174. }RBRelayControl;
  175. typedef union
  176. {
  177. unsigned char relay_status;
  178. struct
  179. {
  180. unsigned char Gun_N:1; // 0: gun_n off, 1: gun_n on
  181. unsigned char Gun_P:1; // 0: gun_p off, 1: gun_p on
  182. unsigned char res:6;
  183. }bits;
  184. }OutputRelayControl;
  185. typedef struct RELAY
  186. {
  187. union
  188. {
  189. unsigned char relay_status[8];
  190. struct
  191. {
  192. unsigned char AC_Contactor :1; //bit 0
  193. unsigned char CCS_Precharge :1; //bit 1
  194. unsigned char :1; //bit 2 reserved
  195. unsigned char :1; //bit 3 reserved
  196. unsigned char :1; //bit 4 reserved
  197. unsigned char :1; //bit 5 reserved
  198. unsigned char :1; //bit 6 reserved
  199. unsigned char :1; //bit 7 reserved
  200. unsigned char Gun1_N :1; //bit 0
  201. unsigned char Gun1_P :1; //bit 1
  202. unsigned char Gun1_Parallel_N :1; //bit 2
  203. unsigned char Gun1_Parallel_P :1; //bit 3
  204. unsigned char :1; //bit 4 reserved
  205. unsigned char :1; //bit 5 reserved
  206. unsigned char :1; //bit 6 reserved
  207. unsigned char :1; //bit 7 reserved
  208. unsigned char Gun2_N :1; //bit 0
  209. unsigned char Gun2_P :1; //bit 1
  210. unsigned char Gun2_Parallel_N :1; //bit 2
  211. unsigned char Gun2_Parallel_P :1; //bit 3
  212. unsigned char :1; //bit 4 reserved
  213. unsigned char :1; //bit 5 reserved
  214. unsigned char :1; //bit 6 reserved
  215. unsigned char :1; //bit 7 reserved
  216. }bits;
  217. }relay_event;
  218. }Relay;
  219. typedef union
  220. {
  221. unsigned char gfd_vlaue[6];
  222. struct
  223. {
  224. unsigned short Resister;
  225. unsigned short Voltage;
  226. unsigned char GFD_Result;
  227. unsigned char rb_step;
  228. }bits;
  229. }Connector_GFD;
  230. typedef struct GFD
  231. {
  232. unsigned short Resister_conn1;
  233. unsigned short voltage_conn1;
  234. unsigned char result_conn1;
  235. unsigned char rb_step_1;
  236. unsigned short Resister_conn2;
  237. unsigned short voltage_conn2;
  238. unsigned char result_conn2;
  239. unsigned char rb_step_2;
  240. }Gfd;
  241. typedef struct Gfd_CONFIG
  242. {
  243. unsigned char index;
  244. unsigned char state;
  245. }Gfd_config;
  246. typedef struct GPIO_IN
  247. {
  248. unsigned char AC_Connector; // bit 0
  249. unsigned char AC_MainBreaker; // bit 1
  250. unsigned char SPD; // bit 2
  251. unsigned char Door_Open; // bit 3
  252. unsigned char GFD[2]; // bit 4,5
  253. unsigned char AC_Drop; // bit 6
  254. unsigned char Emergency_IO; // bit 0
  255. unsigned char Button_Emergency_Press; // bit 0
  256. unsigned char Button_On_Press; // bit 1
  257. unsigned char Button_Off_Press; // bit 2
  258. unsigned char Key_1_Press; // bit 3
  259. unsigned char Key_2_Press; // bit 4
  260. unsigned char Key_3_Press; // bit 5
  261. unsigned char Key_4_Press; // bit 6
  262. }Gpio_in;
  263. typedef struct GPIO_OUT
  264. {
  265. unsigned char AC_Connector;
  266. unsigned char Button_LED[2];
  267. unsigned char System_LED[4];
  268. }Gpio_out;
  269. typedef struct RTC
  270. {
  271. unsigned char RtcData[14];
  272. }Rtc;
  273. typedef struct LED_Color
  274. {
  275. unsigned char Connect_1_Red;
  276. unsigned char Connect_1_Green;
  277. unsigned char Connect_1_Blue;
  278. unsigned char Connect_2_Red;
  279. unsigned char Connect_2_Green;
  280. unsigned char Connect_2_Blue;
  281. }Led_Color;
  282. typedef struct AC_Status
  283. {
  284. unsigned char CpStatus;
  285. unsigned short CurLimit;
  286. short PilotVol_P;
  287. short PilotVol_N;
  288. unsigned char LockStatus;
  289. unsigned char RelayStatus;
  290. unsigned char ShutterStatus;
  291. unsigned char MeterStatus;
  292. unsigned char PpStatus;
  293. unsigned char MaxCurrent;
  294. unsigned char RotateSwitchStatus;
  295. }
  296. Ac_Status;
  297. typedef struct AC_LED_Status
  298. {
  299. unsigned char ActionMode;
  300. unsigned long AcAlarmCode;
  301. }
  302. Ac_Led_Status;
  303. typedef struct AC_Alarm_Code
  304. {
  305. unsigned int AcAlarmCode;
  306. }
  307. Ac_Alarm_code;
  308. typedef struct AC_Charging_Energy
  309. {
  310. unsigned int Energy;
  311. }
  312. Ac_Charging_energy;
  313. typedef struct AC_Charging_Current
  314. {
  315. unsigned short OuputCurrentL1;
  316. unsigned short OuputCurrentL2;
  317. unsigned short OuputCurrentL3;
  318. }
  319. Ac_Charging_current;
  320. extern unsigned char Query_FW_Ver(unsigned char fd, unsigned char targetAddr, Ver *Ret_Buf, int debug);
  321. extern unsigned char Query_HW_Ver(unsigned char fd, unsigned char targetAddr, Ver *Ret_Buf, int debug);
  322. extern unsigned char Query_Present_InputVoltage(unsigned char fd, unsigned char targetAddr, PresentInputVoltage *Ret_Buf, int debug);
  323. extern unsigned char Query_DC_InputVoltage(unsigned char fd, unsigned char targetAddr, DCInputVoltage *Ret_Buf, int debug);
  324. extern unsigned char Query_Present_OutputVoltage(unsigned char fd, unsigned char targetAddr, PresentOutputVoltage *Ret_Buf, int debug);
  325. extern unsigned char Query_Fan_Speed(unsigned char fd, unsigned char targetAddr, FanSpeed *Ret_Buf, int debug);
  326. extern unsigned char Query_Relay_Output(unsigned char fd, unsigned char targetAddr, Relay *Ret_Buf, int debug);
  327. extern unsigned char Query_Gfd_Adc(unsigned char fd, unsigned char targetAddr, Gfd *Ret_Buf, int debug);
  328. extern unsigned char Config_Fan_Speed(unsigned char fd, unsigned char targetAddr, FanSpeed *Set_Buf, int debug);
  329. extern unsigned char Config_Relay_Output(unsigned char fd, unsigned char targetAddr, Relay *Set_Buf, int debug);
  330. extern unsigned char Config_Gpio_Output(unsigned char fd, unsigned char targetAddr, Gpio_out *Set_Buf, int debug);
  331. extern unsigned char Config_Gfd_Value(unsigned char fd, unsigned char targetAddr, Gfd_config *Set_Buf, int debug);
  332. extern unsigned char Config_Model_Name(unsigned char fd, unsigned char targetAddr, unsigned char *modelname, int len, int debug);
  333. extern unsigned char Config_Rtc_Data(unsigned char fd, unsigned char targetAddr, Rtc *Set_Buf, int debug);
  334. extern unsigned char Update_Start(unsigned char fd, unsigned char targetAddr, unsigned int crc32);
  335. extern unsigned char Update_Abord(unsigned char fd, unsigned char targetAddr);
  336. extern unsigned char Update_Transfer(unsigned char fd, unsigned char targetAddr, unsigned int startAddr, unsigned char *data, unsigned short int length);
  337. extern unsigned char Update_Finish(unsigned char fd, unsigned char targetAddr);
  338. extern unsigned char Config_LED_Status(unsigned char fd, unsigned char targetAddr, Ac_Led_Status *Ret_Buf, int debug);
  339. extern unsigned char Config_Led_Color(unsigned char fd, unsigned char targetAddr, Led_Color *Ret_Buf, int debug);
  340. #endif /* INTERNALCOMM_H_ */