#ifndef _AIR780E_H_ #define _AIR780E_H_ #include "systick.h" #include "gd32f10x_it.h" #include "../Hardware/boardinit.h" #include "public.h" #define MQTT_SERVER_IP "test-mqtt.cpyypt.cn" #define MQTT_SERVER_PORT "9000" #define MQTT_UPLINK_TOPIC "cpyypt/up/" #define MQTT_DNLINK_TOPIC "cpyypt/down/" #define MQTT_DNLINK_TOPIC_CASE "cpyypt/down/" #define MQTT_LOGUPLINK_TOPIC "cpyypt/logup/" #define TIMER_4G 60000 // 1分钟 extern FIFO_T g_4Grxfifo; // 4G的接收缓冲区 extern FIFO_T g_4Gtxfifo; // 4G的发送缓冲区 typedef struct _4G_MSG_{ uint8_t bconnect; // mqtt是否连接 uint8_t breturn; /*发送数据时有返回*/ uint8_t noreturnNum; /* 发送数据时,没有返回的次数*/ uint8_t cregStatus; // 附着网络的状态 1:已附着 int dBm; /*精确的网络信号强度*/ uint8_t delay; // 时间 1:代表1分钟 3: 代表3分钟 uint8_t bHaveSim; uint8_t imei[15]; // imei uint8_t iccid[20]; // iccid timeout_t timer; // 4G 连接时间 char upTopic[64]; char upLogTopic[64]; }__attribute__((packed))_4GMsgInfo; extern _4GMsgInfo g_4gMsg; /* mqtt IP地址 端口号*/ typedef struct _MQTT_IP_PORT_{ uint8_t flag; char port[6]; // 端口号 char ip[32]; //IP地址 char admin[8]; // 用户名 char password[16]; // 密码 }__attribute__((packed)) MqttMsg; extern MqttMsg g_mqttMsg; typedef struct _change_mqtt_msg_{ uint8_t bChangeMqtt; // 1:为切换mqtt 服务器 uint8_t bChangeSuc; // 0:初始值 1: 切换成功 2: 切换连接失败 uint8_t connectNum; // 连接次数 uint8_t mqttIdlen; uint8_t mqttPortlen; uint8_t mqttUserlen; uint8_t mqttPwdlen; MqttMsg mqttMsg; // mqtt的IP地址和端口 }__attribute__((packed))MqttCHmsg; extern MqttCHmsg g_mqttCHmsg; extern uint8_t rxfifo[1024]; enum { AT_NULL = 0x00, AT_MQTTSTATUS = 0x01, AT_AT = 0x02, AT_MIPCLOSE = 0x03, AT_CGREG = 0x04, AT_CGATT = 0x05,// 查询是否附着上数据网络 AT_MCONFIG = 0x06, AT_MIPSTART = 0x07, AT_MCONNECT = 0x08, AT_MQTTMODE = 0x09, AT_ATE = 0x0A, AT_CREGSET = 0x0B, AT_CREG = 0x0C, // 检测网络状态 AT_ICCID = 0x0D, AT_CGSN = 0x0E, AT_CSQ = 0x0F, // AT_SUB = 0x010, AT_MDISCONNECT = 0x11, AT_HTTPACTION = 0x12, AT_ATI = 0x13, AT_CPIN = 0x14, // 查询SIM卡是否正常 AT_SAPRB_GPRS = 0x15, AT_SAPRB_APN = 0x16, AT_SAPRB_11 = 0x17, AT_SAPRB_21 = 0x18, AT_SAPRB_01 = 0x19, }; #define NET_HEAD_LEN 12 typedef struct _NET_HEAD_DATA_{ uint16_t start; uint8_t proVer; uint32_t msgId; uint8_t msgType1; uint16_t msgType2; uint16_t palen; uint8_t info[256-12]; }__attribute__((packed))netMsgFormat; extern unsigned char HexToChar(unsigned char bChar); static uint8_t waiting_uart_return(uint32_t timeout, char*str, uint32_t *value); extern uint8_t send_data_to_mqtt(uint8_t type, uint8_t *data, uint8_t len); extern void AIR_HTTP_GET(const char *url, uint32_t *pLen); extern uint8_t * AIR_HTTP_READ(uint32_t start_addr, uint32_t data_len); extern void read_mqtt_power_up_msg(void); extern void read_mqtt_work_msg(void); extern uint8_t init_mqtt_power_up(void); extern void close_mqtt(void); extern uint8_t add_data_to_4G_txfifo(uint8_t *txdata, uint8_t len, uint8_t msgType1, uint16_t msgType2); #endif