PrimaryComm.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #ifndef PRIMARYCOMM_H_
  2. #define PRIMARYCOMM_H_
  3. //------------------------------------------------------------------------------
  4. #include <stdint.h>
  5. //------------------------------------------------------------------------------
  6. //------------------------------------------------------------------------------
  7. // primary operative address
  8. //------------------------------------------------------------------------------
  9. #define OP_ADDR_AUX (0x01)
  10. #define OP_ADDR_FAN (0x02)
  11. #define OP_ADDR_RELAY (0x03)
  12. #define OP_ADDR_IO_EXTEND (0x04)
  13. #define OP_ADDR_BROADCAST (0xFF)
  14. //------------------------------------------------------------------------------
  15. // primary send packet command
  16. //------------------------------------------------------------------------------
  17. #define CMD_QUERY_FW_VER (0x01)
  18. #define CMD_QUERY_HW_VER (0x02)
  19. #define CMD_QUERY_GPIO_IN (0x0a)
  20. #define CMD_CONFIG_GPIO_OUTPUT (0x86)
  21. #define CMD_CONFIG_RTC (0x87)
  22. #define CMD_CONFIG_MODEL_NAME (0x83)
  23. #define CMD_UPDATE_START (0xe0)
  24. #define CMD_UPDATE_ABORT (0xe1)
  25. #define CMD_UPDATE_TRANSFER (0xe2)
  26. #define CMD_UPDATE_FINISH (0xe3)
  27. //------------------------------------------------------------------------------
  28. typedef struct Verion {
  29. char Version_FW[16];
  30. char Version_HW[16];
  31. } Ver;
  32. typedef struct GPIO_IN {
  33. uint8_t AC_Connector;
  34. uint8_t AC_MainBreaker;
  35. uint8_t SPD;
  36. uint8_t Door_Open;
  37. uint8_t GFD[2];
  38. uint8_t AC_Drop;
  39. uint8_t Emergency_IO;
  40. uint8_t Emergency_Btn;
  41. uint8_t Button[2];
  42. uint8_t Key[4];
  43. } Gpio_in;
  44. typedef struct GPIO_OUT {
  45. uint8_t Button_LED[2];
  46. uint8_t System_LED[4];
  47. uint8_t AC_Connector;
  48. uint8_t AC_Breaker;
  49. } Gpio_out;
  50. typedef struct RTC {
  51. uint8_t RtcData[14];
  52. } Rtc;
  53. int Query_FW_Ver(uint8_t fd, uint8_t targetAddr, Ver *Ret_Buf);
  54. int Query_HW_Ver(uint8_t fd, uint8_t targetAddr, Ver *Ret_Buf);
  55. int Query_Gpio_Input(uint8_t fd, uint8_t targetAddr, Gpio_in *Ret_Buf);
  56. int Config_Gpio_Output(uint8_t fd, uint8_t targetAddr, Gpio_out *Set_Buf);
  57. int Config_Rtc_Data(uint8_t fd, uint8_t targetAddr, Rtc *Set_Buf);
  58. int Config_Model_Name(uint8_t fd, uint8_t targetAddr, uint8_t *modelname);
  59. // 13 bytes
  60. // year : 4, month : 2, day : 2, hour : 2, min : 2, sec : 2
  61. //int Config_RTC();
  62. int Update_Start(uint8_t fd, uint8_t targetAddr, uint32_t crc32);
  63. int Update_Abord(uint8_t fd, uint8_t targetAddr);
  64. int Update_Transfer(uint8_t fd, uint8_t targetAddr, uint32_t startAddr, uint8_t *data, uint16_t length);
  65. int Update_Finish(uint8_t fd, uint8_t targetAddr);
  66. #endif /* PRIMARYCOMM_H_ */