#ifndef __GATEWAY_MESSAGE_H #define __GATEWAY_MESSAGE_H #include "stm32f2xx.h" // �������洢��modbusд���� typedef struct _GATEWAY_WRITE_MODBUS_COMMAND { uint16_t registerByteNum; uint8_t slaveAddress; uint8_t functionCode; uint8_t dataType; //�������� uint8_t keyword[20]; // ��д���Ե����� uint8_t bigLittleFormat; uint16_t registerAddress; // �Ĵ�����ַ uint8_t write_command_flag; // �Ƿ�ɹ�д��ı�־ struct _GATEWAY_WRITE_MODBUS_COMMAND *nextParams; } GATEWAY_WRITE_MODBUS_COMMAND; // �������洢��modbus������ typedef struct _GATEWAY_READ_MODBUS_COMMAND { uint8_t slaveAddress; uint8_t functionCode; uint8_t keyword[20]; // �������Ե����� uint16_t registerAddress; // �Ĵ�����ַ uint8_t read_command_flag; // �Ƿ�ɹ���ȡ���ı�־ uint8_t value[4]; //��ȡ��������ֵ uint16_t registerByteNum; uint8_t decimalPoint; struct _GATEWAY_READ_MODBUS_COMMAND *nextParams; } GATEWAY_READ_MODBUS_COMMAND; // �ڵ����洢��DLT645��ָ�� typedef struct _GATEWAY_READ_DLT645_COMMAND { uint8_t deviceID645[6]; uint8_t keyword[20]; // �������Ե����� uint32_t Identification; // 645���ݱ�ʶ uint8_t data[9]; // ���������� uint8_t rxLen; // �ӻ�Ӧ��ֵ�ij��� struct _GATEWAY_READ_DLT645_COMMAND *nextParams; } GATEWAY_READ_DLT645_COMMAND; typedef struct _PARAMS_PROTOCOL_COMMAND { GATEWAY_READ_MODBUS_COMMAND *gateway_read_modbus_command; GATEWAY_WRITE_MODBUS_COMMAND *gateway_write_modbus_command; GATEWAY_READ_DLT645_COMMAND *gateway_read_dlt645_command; }PARAMS_PROTOCOL_COMMAND; // �ڵ�������豸��Ϣ typedef struct _DEVICE_PARAMS { uint8_t aliveflag; // ���֤��(����ѯ�����б�֤,������ѯ��Ӧ��ȷ���������·�仯ʱ�����ϱ��豸�Ѿ���ȥ������ѯ����Ӧ����Ӧֵʱȥ�ϱ��Ѿ����) uint8_t deviceID[20]; uint8_t protocol; // ����Э������ 1:modbus read 2:modbus write 3:dlt97 4:dlt07 һ���豸ֻ�ܴ���һ��Э�� uint8_t MDBbigLittleFormat; uint8_t MDBdataType; PARAMS_PROTOCOL_COMMAND *params; struct _DEVICE_PARAMS *nextDevice; // ָ����һ���豸��ַ } DEVICE_PARAMS; // ���ذ������豸��Ϣ typedef struct _GATEWAY_PARAMS { uint8_t data_valid_flag; // ������Ч��־ 0xF1:��Ч ����:��Ч char host[20]; // MQTT��������ַ uint16_t port; // MQTT�������˿ں� uint8_t messageTopic[50]; // MQTT��Ϣ���� uint8_t commandTopic[50]; // MQTTָ������ char username[20]; //MQTT�û��� char passwd[20]; // MQTT�û����� uint8_t deviceId[25]; // �豸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 state; // ����Ƿ���λ�����ù�����λ�����ù���״̬λ�����Ժ������http��ȡ��Ӧ���� ��λֵΪ0xF1 uint8_t gatewayId[10]; // �̻���Ϣ uint8_t gatewayMode[10]; // ����ģʽ�������汾����ʹ�� // ���������Ϣ uint8_t gateName[10]; // �������豸�ṹ�� uint8_t deviceCount; DEVICE_PARAMS *device_params; // ����Ĵ��ڹ������Խ�ֻ��һ�� uint32_t baudrate; // ������ uint8_t dataBits; // ����λ uint8_t checkBit; // У��λ uint8_t stopBit; // ֹͣλ uint8_t flowControl; // ������ uint8_t bandwidth; uint8_t parity; //У��λ } GATEWAY_PARAMS; void addGatewayParams(char *gatewayString); void addDeviceParams(char *deviceString); int parseIntField(const char *data, const char *field); void parseStringField(const char *data, const char *field, char *value); GATEWAY_PARAMS *get_gateway_config_params(); DEVICE_PARAMS *get_device_config_params(); #endif