#ifndef __GATEWAY_MESSAGE_H #define __GATEWAY_MESSAGE_H #include "stm32f2xx.h" // �ڵ����洢��modbusд���� typedef struct _NODE_WRITE_MODBUS_COMMAND { uint8_t slaveAddress; uint8_t functionCode; uint8_t dataType; //�������� uint8_t slaveAdress; uint8_t keyword[20]; // ��д���Ե����� uint8_t bigLittleFormat; uint16_t registerAddress; // �Ĵ�����ַ uint8_t write_command_flag; // �Ƿ�ɹ�д��ı�־ struct _NODE_WRITE_MODBUS_COMMAND *nextParams; } NODE_WRITE_MODBUS_COMMAND; // �ڵ����洢��modbus������ typedef struct _NODE_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 _NODE_READ_MODBUS_COMMAND *nextParams; } NODE_READ_MODBUS_COMMAND; // �ڵ����洢��DLT645��ָ�� typedef struct _NODE_READ_DLT645_COMMAND { uint8_t deviceID645[6]; uint8_t keyword[20]; // �������Ե����� uint32_t Identification; // 645���ݱ�ʶ uint8_t data[9]; // ���������� uint8_t rxLen; // �ӻ�Ӧ��ֵ�ij��� struct _NODE_READ_DLT645_COMMAND *nextParams; } NODE_READ_DLT645_COMMAND; typedef struct _PARAMS_PROTOCOL_COMMAND { NODE_READ_MODBUS_COMMAND *node_read_modbus_command; NODE_WRITE_MODBUS_COMMAND *node_write_modbus_command; NODE_READ_DLT645_COMMAND *node_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 _NODE_PARAMS { uint8_t node_address[3]; // ����Ĵ��ڹ������Խ�ֻ��һ�� uint32_t baudrate; // ������ uint8_t dataBits; // ����λ uint8_t checkBit; // У��λ uint8_t stopBit; // ֹͣλ uint8_t flowControl; // ������ // loraͨ�ŵ��������� uint8_t RFFrequency; //�ز�Ƶ�� uint8_t SignalBw; //�źŴ��� uint8_t SpreadingFactor; //��Ƶ���� uint8_t ErrorCoding; //������ // �������豸�ṹ�� uint8_t deviceCount; DEVICE_PARAMS *device_params; struct _NODE_PARAMS *nextNode; // ��һ���豸�����ַ���û����һ���豸ָ��NULL } NODE_PARAMS; typedef struct _GATEWAY_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ָ������ 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]; // �����豸�����Ϣ NODE_PARAMS *node_params; } GATEWAY_PARAMS; void addGatewayParams(char *gatewayString); GATEWAY_PARAMS *get_gateway_config_params(); #endif