device_message.h 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #ifndef DEVICE_MESSAGE_H
  2. #define DEVICE_MESSAGE_H
  3. #include <stdint.h>
  4. typedef struct _DEVICE_READ_DATA_INFO{
  5. uint8_t decimalPoint;
  6. uint8_t keyword[20];
  7. uint8_t deviceId[20];
  8. uint8_t mdbSlave;
  9. uint8_t mdbFunctionCode;
  10. uint16_t registerLength;
  11. uint16_t mdbRegister;
  12. uint8_t deviceID645[6];
  13. uint16_t datalength;
  14. uint32_t dataType645;
  15. uint8_t bigLittleFormat;
  16. uint8_t data[9]; //从机应答的值,前四个字节存储浮点数数据、后面五个字节存储645 DATE内容
  17. uint8_t rxLen; //从机应答值的长度
  18. }device_read_data; //70字节
  19. typedef struct _DEVICE_WRITE_DATA_INFO{
  20. uint8_t decimalPoint;
  21. uint8_t keyword[20];
  22. uint8_t deviceId[20];
  23. uint8_t mdbSlave;
  24. uint8_t mdbFunctionCode;
  25. uint16_t registerLength;
  26. uint16_t mdbRegister;
  27. uint32_t deviceID645;
  28. uint8_t bigLittleFormat;
  29. uint16_t data; //只支持写入一个16位寄存器的值
  30. uint8_t flag; //写是否成功标志位 0失败 1成功
  31. }device_write_data; //50字节
  32. typedef struct _CONFIG_PARAMS
  33. {
  34. uint8_t data_valid_flag; //数据有效标志 0xF1:有效 其它:无效
  35. uint8_t host[20]; //MQTT服务器地址
  36. uint16_t port; //MQTT服务器端口号
  37. uint8_t messageTopic[50]; //MQTT消息主题
  38. uint8_t commandTopic[50]; //MQTT指令主题
  39. uint32_t baudrate; //波特率
  40. uint8_t dataBits; //数据位
  41. uint8_t checkBit; //校验位
  42. uint8_t stopBit; //停止位
  43. uint8_t flowControl; //流控制
  44. uint8_t deviceId[20]; //设备ID
  45. uint8_t dataSource; //协议类型 0 保留 1 表示645协议 2表示modbus协议
  46. uint8_t dataType645; //645协议数据类型 0保留 1 表示07版本 2表示97版本
  47. uint32_t pollTime; //轮询时间
  48. uint32_t inboundTime;
  49. uint8_t device_read_data_num;
  50. uint8_t device_write_data_num;
  51. device_read_data device_read_data[180];
  52. device_write_data device_write_data[120];
  53. uint8_t state; //检测是否上位机配置过当上位机配置过该状态位,则以后均不走http获取相应配置 置位值为0xF1
  54. uint8_t version[10]; //用于版本检测升级
  55. uint8_t gatewayId[10]; //固化信息
  56. uint8_t gatewayMode[10]; //工作模式、后续版本迭代使用
  57. //网关相关信息
  58. uint8_t gateName[10];
  59. }CONFIG_PARAMS; //168+180*70+120*50+41=19000字节/4=4750
  60. typedef union _CONFIG_PARAMS_UNION
  61. {
  62. CONFIG_PARAMS config_params;
  63. uint32_t data[4750];
  64. }CONFIG_PARAMS_UNION;
  65. extern int load_config_params(void);
  66. extern CONFIG_PARAMS *get_config_params(void);
  67. extern int save_config_params(CONFIG_PARAMS *params);
  68. extern void clear_gateway_config_block(void);
  69. #endif