#ifndef DEVICE_MESSAGE_H #define DEVICE_MESSAGE_H #include typedef struct _DEVICE_READ_DATA_INFO{ uint8_t decimalPoint; uint8_t keyword[20]; uint8_t deviceId[20]; uint8_t mdbSlave; uint8_t mdbFunctionCode; uint16_t registerLength; uint16_t mdbRegister; uint8_t deviceID645[6]; uint16_t datalength; uint32_t dataType645; uint8_t bigLittleFormat; uint8_t data[9]; //从机应答的值,前四个字节存储浮点数数据、后面五个字节存储645 DATE内容 uint8_t rxLen; //从机应答值的长度 }device_read_data; //70字节 typedef struct _DEVICE_WRITE_DATA_INFO{ uint8_t decimalPoint; uint8_t keyword[20]; uint8_t deviceId[20]; uint8_t mdbSlave; uint8_t mdbFunctionCode; uint16_t registerLength; uint16_t mdbRegister; uint32_t deviceID645; uint8_t bigLittleFormat; uint16_t data; //只支持写入一个16位寄存器的值 uint8_t flag; //写是否成功标志位 0失败 1成功 }device_write_data; //50字节 typedef struct _CONFIG_PARAMS { uint8_t data_valid_flag; //数据有效标志 0xF1:有效 其它:无效 uint8_t host[20]; //MQTT服务器地址 uint16_t port; //MQTT服务器端口号 uint8_t messageTopic[50]; //MQTT消息主题 uint8_t commandTopic[50]; //MQTT指令主题 uint32_t baudrate; //波特率 uint8_t dataBits; //数据位 uint8_t checkBit; //校验位 uint8_t stopBit; //停止位 uint8_t flowControl; //流控制 uint8_t deviceId[20]; //设备ID uint8_t dataSource; //协议类型 0 保留 1 表示645协议 2表示modbus协议 uint8_t dataType645; //645协议数据类型 0保留 1 表示07版本 2表示97版本 uint32_t pollTime; //轮询时间 uint32_t inboundTime; uint8_t device_read_data_num; uint8_t device_write_data_num; device_read_data device_read_data[180]; device_write_data device_write_data[120]; uint8_t state; //检测是否上位机配置过当上位机配置过该状态位,则以后均不走http获取相应配置 置位值为0xF1 uint8_t version[10]; //用于版本检测升级 uint8_t gatewayId[10]; //固化信息 uint8_t gatewayMode[10]; //工作模式、后续版本迭代使用 //网关相关信息 uint8_t gateName[10]; }CONFIG_PARAMS; //168+180*70+120*50+41=19000字节/4=4750 typedef union _CONFIG_PARAMS_UNION { CONFIG_PARAMS config_params; uint32_t data[4750]; }CONFIG_PARAMS_UNION; extern int load_config_params(void); extern CONFIG_PARAMS *get_config_params(void); extern int save_config_params(CONFIG_PARAMS *params); extern void clear_gateway_config_block(void); #endif