cascade.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #ifndef _CASCADE_H_
  2. #define _CASCADE_H_
  3. #include "datadef.h"
  4. typedef struct {
  5. int dlen;
  6. uint8_t *data;
  7. }data_t;
  8. enum {
  9. OBJ_OVERALL=0,
  10. OBJ_CHANNEL,
  11. OBJ_HISTORY,
  12. OBJ_SENSOR,
  13. };
  14. typedef struct {
  15. uint8_t cmd;
  16. uint8_t obj;
  17. uint8_t chId;
  18. uint8_t data[200];
  19. }cmd_data_t;
  20. typedef struct {
  21. int addr;
  22. int err; //err times
  23. }slave_t;
  24. typedef struct {
  25. uint8_t cnt;
  26. slave_t *slave;
  27. }dev_list_t;
  28. //±±ÏòÊý¾Ý¼Ä´æÆ÷
  29. #define AC_DC_DEV_CHN_REG (4000)
  30. #define AC_DC_DRY_REG (4987)
  31. #define AC_DC_SET_DELAY_OPEN (5000)
  32. #define AC_DC_SET_DELAY_CLOSE (5064)
  33. #define AC_DC_CHN_SET_SWITCH_STA_REG (5128)
  34. #define AC_DC_ALL_SET_SWITCH_REG (5192)
  35. #define AC_3_DEV_CHN_REG (6000)
  36. #define AC_3_DRY_REG (8795)
  37. #define AC_3_SET_DELAY_OPEN (9000)
  38. #define AC_3_SET_DELAY_CLOSE (9064)
  39. #define AC_3_CHN_SET_SWITCH_STA_REG (9128)
  40. #define AC_3_ALL_SET_SWITCH_REG (9192)
  41. #define CASCADE_REG_OFFSET 0x10
  42. #define CASCADE_REG_READ (CASCADE_REG_OFFSET+0)
  43. #define CASCADE_REG_WRITE (CASCADE_REG_OFFSET+1)
  44. #define CASCADE_REG_SCAN (CASCADE_REG_OFFSET+2)
  45. enum {
  46. CASCADE_CMD_OPEN=0,
  47. CASCADE_CMD_CLOSE,
  48. CASCADE_CMD_SAVE,
  49. CASCADE_CMD_SAVE3,
  50. CASCADE_CMD_GET_INFO,
  51. CASCADE_CMD_QUERY_CH,
  52. CASCADE_CMD_QUERY_VOL,
  53. CASCADE_CMD_QUERY_CUR,
  54. CASCADE_CMD_QUERY_PWR,
  55. CASCADE_CMD_QUERY_PWRQ,
  56. CASCADE_CMD_QUERY_HIS,
  57. CASCADE_CMD_QUERY_TOTAL,
  58. CASCADE_CMD_QUERY_TOTAL_PWR,
  59. CASCADE_CMD_BREAKER_QUERY,
  60. CASCADE_CMD_BREAKER_GET_INFO,
  61. CASCADE_CMD_BREAKER_SAVE_ADD,
  62. CASCADE_CMD_BREAKER_SAVE_UPDATE,
  63. CASCADE_CMD_BREAKER_SAVE_DELETE,
  64. CASCADE_CMD_OPEN_NF,
  65. CASCADE_CMD_CLOSE_NF,
  66. CASCADE_CMD_MAX,
  67. };
  68. uint8_t cascade_init(uint8_t mode,uint8_t addr,uint32_t baud);
  69. uint8_t cascade_deinit();
  70. void cascade_scan_thread(void *arg);
  71. void cascade_thread(void *arg);
  72. int cascade_request(cmd_data_t *cmd);
  73. uint8_t cascade_read_slave(uint8_t addr);
  74. uint8_t cascade_set_mode(uint8_t mode,uint8_t addr);
  75. void cascade_reinit(uint8_t mode,uint8_t addr,uint32_t baud);
  76. int cascade_get_dlist(dev_list_t *dl);
  77. int cascade_free_dlist(dev_list_t *dl);
  78. int cascade_power_get(power_all_t *all);
  79. #endif