#ifndef __NODE_MESSAGE_H #define __NODE_MESSAGE_H #include "stm32f2xx.h" #define slave #ifdef slave // 存储在本地的枚举了协议类型 #define MODBUS_WRITE 4 //本机用于区分读写 #define MODBUS_READ 3 #define DLT645_07 2 #define DLT645_97 1 typedef struct _NODE_DLT645_PARAMS { uint32_t dataType645; //645数据标识 uint8_t deviceType645[6]; //645地址 uint8_t datalength; uint8_t value[10]; uint8_t rxLen; }NODE_DLT645_PARAMS; typedef struct _NODE_MODBUS_READ { uint8_t slaveAddress; uint8_t functionCode; uint16_t registerAddress; uint16_t registerLength; uint8_t dataType; //数据类型 uint8_t precision; uint8_t bigLittleFormat; uint8_t flag; //此属性读取是否成功 uint8_t callback[4]; //对应读取到的数据存储于此 uint8_t rxLen; }NODE_MODBUS_READ; typedef struct _NODE_MODBUS_WRITE { uint8_t slaveAddress; uint8_t functionCode; uint8_t dataType; //数据类型 uint16_t registerAddress; uint16_t registerLength; uint8_t bigLittleFormat; uint8_t flag; //写入指令操作是否成功标志 }NODE_MODBUS_WRITE; typedef struct _PARAMS { uint8_t protcol; //此属性决定用那个协议属性也会包含对应的响应值,其他未涉及到的属性赋值为NULL NODE_DLT645_PARAMS *dlt645_params; NODE_MODBUS_READ *modbus_read; NODE_MODBUS_WRITE *modbus_write; }PARAMS; typedef struct _NODE_DEVICE_PARAMS { uint8_t Index; //记录总共有多少个属性 PARAMS params[20]; }NODE_DEVICE_PARAMS; NODE_DEVICE_PARAMS *get_node_receive_params(); void free_all_node_params(); extern uint8_t protocol_485; #endif #endif