air780e.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #ifndef _AIR780E_H_
  2. #define _AIR780E_H_
  3. #include "systick.h"
  4. #include "gd32f10x_it.h"
  5. #include "../Hardware/boardinit.h"
  6. #include "public.h"
  7. #define MQTT_SERVER_IP "test-mqtt.cpyypt.cn"
  8. #define MQTT_SERVER_PORT "9000"
  9. #define MQTT_UPLINK_TOPIC "cpyypt/up/"
  10. #define MQTT_DNLINK_TOPIC "cpyypt/down/"
  11. #define MQTT_DNLINK_TOPIC_CASE "cpyypt/down/"
  12. #define MQTT_LOGUPLINK_TOPIC "cpyypt/logup/"
  13. #define TIMER_4G 60000 // 1分钟
  14. extern FIFO_T g_4Grxfifo; // 4G的接收缓冲区
  15. extern FIFO_T g_4Gtxfifo; // 4G的发送缓冲区
  16. typedef struct _4G_MSG_{
  17. uint8_t bconnect; // mqtt是否连接
  18. uint8_t breturn; /*发送数据时有返回*/
  19. uint8_t noreturnNum; /* 发送数据时,没有返回的次数*/
  20. uint8_t cregStatus; // 附着网络的状态 1:已附着
  21. int dBm; /*精确的网络信号强度*/
  22. uint8_t delay; // 时间 1:代表1分钟 3: 代表3分钟
  23. uint8_t bHaveSim;
  24. uint8_t imei[15]; // imei
  25. uint8_t iccid[20]; // iccid
  26. timeout_t timer; // 4G 连接时间
  27. char upTopic[64];
  28. char upLogTopic[64];
  29. }__attribute__((packed))_4GMsgInfo;
  30. extern _4GMsgInfo g_4gMsg;
  31. /* mqtt IP地址 端口号*/
  32. typedef struct _MQTT_IP_PORT_{
  33. uint8_t flag;
  34. char port[6]; // 端口号
  35. char ip[32]; //IP地址
  36. char admin[8]; // 用户名
  37. char password[16]; // 密码
  38. }__attribute__((packed)) MqttMsg;
  39. extern MqttMsg g_mqttMsg;
  40. typedef struct _change_mqtt_msg_{
  41. uint8_t bChangeMqtt; // 1:为切换mqtt 服务器
  42. uint8_t bChangeSuc; // 0:初始值 1: 切换成功 2: 切换连接失败
  43. uint8_t connectNum; // 连接次数
  44. uint8_t mqttIdlen;
  45. uint8_t mqttPortlen;
  46. uint8_t mqttUserlen;
  47. uint8_t mqttPwdlen;
  48. MqttMsg mqttMsg; // mqtt的IP地址和端口
  49. }__attribute__((packed))MqttCHmsg;
  50. extern MqttCHmsg g_mqttCHmsg;
  51. extern uint8_t rxfifo[1024];
  52. enum {
  53. AT_NULL = 0x00,
  54. AT_MQTTSTATUS = 0x01,
  55. AT_AT = 0x02,
  56. AT_MIPCLOSE = 0x03,
  57. AT_CGREG = 0x04,
  58. AT_CGATT = 0x05,// 查询是否附着上数据网络
  59. AT_MCONFIG = 0x06,
  60. AT_MIPSTART = 0x07,
  61. AT_MCONNECT = 0x08,
  62. AT_MQTTMODE = 0x09,
  63. AT_ATE = 0x0A,
  64. AT_CREGSET = 0x0B,
  65. AT_CREG = 0x0C, // 检测网络状态
  66. AT_ICCID = 0x0D,
  67. AT_CGSN = 0x0E,
  68. AT_CSQ = 0x0F, //
  69. AT_SUB = 0x010,
  70. AT_MDISCONNECT = 0x11,
  71. AT_HTTPACTION = 0x12,
  72. AT_ATI = 0x13,
  73. AT_CPIN = 0x14, // 查询SIM卡是否正常
  74. AT_SAPRB_GPRS = 0x15,
  75. AT_SAPRB_APN = 0x16,
  76. AT_SAPRB_11 = 0x17,
  77. AT_SAPRB_21 = 0x18,
  78. AT_SAPRB_01 = 0x19,
  79. };
  80. #define NET_HEAD_LEN 12
  81. typedef struct _NET_HEAD_DATA_{
  82. uint16_t start;
  83. uint8_t proVer;
  84. uint32_t msgId;
  85. uint8_t msgType1;
  86. uint16_t msgType2;
  87. uint16_t palen;
  88. uint8_t info[256-12];
  89. }__attribute__((packed))netMsgFormat;
  90. extern unsigned char HexToChar(unsigned char bChar);
  91. static uint8_t waiting_uart_return(uint32_t timeout, char*str, uint32_t *value);
  92. extern uint8_t send_data_to_mqtt(uint8_t type, uint8_t *data, uint8_t len);
  93. extern void AIR_HTTP_GET(const char *url, uint32_t *pLen);
  94. extern uint8_t * AIR_HTTP_READ(uint32_t start_addr, uint32_t data_len);
  95. extern void read_mqtt_power_up_msg(void);
  96. extern void read_mqtt_work_msg(void);
  97. extern uint8_t init_mqtt_power_up(void);
  98. extern void close_mqtt(void);
  99. extern uint8_t add_data_to_4G_txfifo(uint8_t *txdata, uint8_t len, uint8_t msgType1, uint16_t msgType2);
  100. #endif