cascade.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. #ifndef __CASCADE_Hx__
  2. #define __CASCADE_Hx__
  3. #include <stdint.h>
  4. #include "common.h"
  5. #include "json_handle.h"
  6. #define ERR_MAX 5
  7. #define MAX_READ_REGS 20000
  8. #define MAX_WRITE_REGS 10000
  9. #define CASCADE_REG_OFFSET 0x10
  10. #define CASCADE_REG_SCAN (CASCADE_REG_OFFSET+0x00)
  11. #define CASCADE_REG_READ (CASCADE_REG_OFFSET+0x01)
  12. #define CASCADE_REG_WRITE (CASCADE_REG_OFFSET+0x02)
  13. enum {
  14. CASCADE_CMD_OPEN=0,
  15. CASCADE_CMD_CLOSE,
  16. CASCADE_CMD_SAVE,
  17. CASCADE_CMD_SAVE3,
  18. CASCADE_CMD_GET_INFO,
  19. CASCADE_CMD_QUERY_CH,
  20. CASCADE_CMD_QUERY_VOL,
  21. CASCADE_CMD_QUERY_CUR,
  22. CASCADE_CMD_QUERY_PWR,
  23. CASCADE_CMD_QUERY_PWRQ,
  24. CASCADE_CMD_QUERY_HIS,
  25. CASCADE_CMD_QUERY_TOTAL,
  26. CASCADE_CMD_QUERY_TOTAL_PWR,
  27. };
  28. #pragma pack (1)
  29. typedef struct {
  30. int addr;
  31. int err; //err times
  32. }slave_t;
  33. typedef struct {
  34. slave_t *slave;
  35. int cnt;
  36. }dev_list_t;
  37. typedef struct {
  38. uint16_t deveice_type; //设备类型
  39. uint16_t slave_addr; //设备地址
  40. uint32_t voltage; //当前电压
  41. uint32_t current; //当前电流
  42. uint32_t power; //当前功率
  43. uint32_t consumption; //耗电量
  44. uint32_t freq; //频率
  45. uint32_t factor; //功率因素
  46. uint32_t temprature; //温度值
  47. uint32_t humidity; //湿度值
  48. uint32_t warning; //告警
  49. uint16_t power_status; //供电状态
  50. uint16_t sensor_status; //传感器状态
  51. //uint32_t Warinfo;
  52. //uint16_t sersor_type;
  53. }sensor_ori_t;
  54. typedef struct {
  55. int type; //设备类型
  56. int addr;
  57. PowerInfo pwr;
  58. float temprature; //温度值
  59. float humidity; //湿度值
  60. float warning; //告警
  61. int power_status; //供电状态
  62. int sensor_status; //传感器状态
  63. }sensor_data_t;
  64. enum {
  65. TYPE_CMD=0,
  66. TYPE_FILE,
  67. };
  68. enum {
  69. OBJ_OVERALL=0,
  70. OBJ_CHANNEL,
  71. OBJ_HISTORY,
  72. OBJ_SENSOR,
  73. };
  74. typedef struct {
  75. int dlen;
  76. uint8_t *data;
  77. }data_t;
  78. typedef struct {
  79. struct {
  80. uint8_t addr;
  81. uint8_t type;
  82. uint8_t maxChn;
  83. }board[MAX_CHN_COUNT];
  84. uint8_t cnt;
  85. }board_info_t;
  86. typedef struct {
  87. uint8_t cmd;
  88. uint8_t obj;
  89. uint8_t chId;
  90. board_info_t info;
  91. char time_s[24]; //start time
  92. char time_e[24]; //end time
  93. }cmd_data_t;
  94. typedef struct {
  95. uint8_t tp;
  96. uint16_t pid;
  97. uint16_t dlen;
  98. uint8_t *data;
  99. }file_data_t;
  100. typedef struct {
  101. int8_t type;
  102. uint8_t data[0];
  103. }mb_pkt_t;
  104. typedef struct {
  105. uint8_t addr;
  106. uint8_t func;
  107. uint16_t reg;
  108. uint16_t regcnt;
  109. uint8_t dlen;
  110. uint8_t *data;
  111. }mb_hdr_t;
  112. #pragma pack ()
  113. extern int cur_dev_addr;
  114. int cascade_init(void);
  115. int cascade_reinit(void);
  116. int cascade_request(cmd_data_t *cmd);
  117. int cascade_get_dlist(dev_list_t *dl);
  118. int cascade_free_dlist(dev_list_t *dl);
  119. #endif