CIU32_L051_M307R/bsp/inc/bsp_net.h

181 lines
7.7 KiB
C
Raw Normal View History

#ifndef __BSP_NET_H__
#define __BSP_NET_H__
#ifdef __cplusplus
extern "C" {
#endif
#include <stdlib.h>
#include "drv_gpio.h"
#include <at_device.h>
#define ML307_AT_RESP_TIMEOUT RT_TICK_PER_SECOND
/* The maximum number of sockets supported by the ml307 device */
#ifdef AT_USING_SOCKET
#define AT_DEVICE_ML307_SOCKETS_NUM 1
#endif
typedef enum
{
kConnect_seccess = 0,//连接成功
kReconnecting, //重连中
kUserDisconnected,//用户主动断开连接
kConnectionDenied,//断开:拒绝连接(协议版本、标识符、用户名或密码错误)
KServerDisconnected,//断开:服务器断开
kPackOutTimeDisconnect,//断开Ping包超时断开若服务器未在 1.5 倍保活时间内接收到客户端的消息,则相当于客户端发送了 DISCONNECT 消息,服务器会断开与客户端的连接,此时会上报该 URC。
kNetworkAbnormalDisconnect,//断开:网络异常断开
kUnknownError,//断开:未知错误
}mqtt_conn_state;
//认证编号
typedef struct
{
char *device_id;
char *feature_str;
char *device_number;//用IMEI作为设备编号
mqtt_conn_state state;
}Mqtt_Dev;
#ifdef __cplusplus
}
#endif
#define CONN(A, B) A##B
#define INT_STR(X)(#X)
/******************************** mqtt命令参数 **************************************/
/*
*
* mqtt.ctwing.cn
* 1883
* ID:17126214
* a199d9c35ba548739dafccbd4546d816
* sD3p13KS3heqhHfkmex-_W0jPKvItS8TaMVWB5Uyikk
* ID:17126214862966073419375
* 862966073419375
* MQTT
* */
#define MQTT_SEVER_PORT "1883"
#define MQTT_SEVER_URL "\"mqtt.ctwing.cn\""
#define PROJECT_ID "\"17126214\""
#define MASTER_API_KEY "a199d9c35ba548739dafccbd4546d816"
#define FEATURE_STRING "\"sD3p13KS3heqhHfkmex-_W0jPKvItS8TaMVWB5Uyikk\""
#define DEVICE_ID "\"17126214862966073419375\""
#define DEVICE_NUMBER "\"862966073419375\""
#define MQTT_CONNECT_ID "0" //自定义0~5
#define MQTT_QOS_0 "0"//最多发送一次
#define MQTT_QOS_1 "1"//最少发送一次
#define MQTT_QOS_2 "2"//只发送一次
#define MQTT_RETAIN_0 "0" //服务器不存储消息
#define MQTT_RETAIN_1 "1" //服务器储存该消息,并向新订阅者发送最新订阅消息
#define MQTT_RETRY_0 "0" //发送新消息一般设置为0。
#define MQTT_RETRY_1 "1" //。数据发送失败后用户主动重发数据请置1
#define MQTT_INOUT_FORMAT_ASCII "0"//原始字符串
#define MQTT_INOUT_FORMAT_HEX "1"//十六进制字符串
#define MQTT_INOUT_FORMAT_STR "2"//转义字符串
#define MQTT_OUTPUT_FORMAT_ASCII "0"
#define MQTT_OUTPUT_FORMAT_HEX "1"
#define MQTT_CFG_VERSION "\"version\""
#define MQTT_CFG_CID "\"cid\""
#define MQTT_CFG_SSL "\"ssl\""
#define MQTT_CFG_KEEPALIVE "\"keepalive\""
#define MQTT_CFG_CLEAN "\"clean\""
#define MQTT_CFG_RETRANS "\"retrans\""
#define MQTT_CFG_WILLOPTION "\"willoption\""
#define MQTT_CFG_WILLPAYLOAD "\"willpayload\""
#define MQTT_CFG_PINGREQ "\"pingreq\""
#define MQTT_CFG_PINGRESP "\"pingresp\""
#define MQTT_CFG_ENCODING "\"encoding\""
#define MQTT_CFG_CACHED "\"cached\""
#define MQTT_CFG_RECONN "\"reconn\""
#define MQTT_CFG_PLATSEL "\"platsel\""
#define MQTT_CFG_DEVINFO "\"devinfo\""
#define MQTT_PUB_TOPIC "\"test\"" //发布主题自定义
#define MQTT_CFG "AT+MQTTCFG="
#define MQTT_CONNET "AT+MQTTCONN=" //connect
#define MQTT_SUB "AT+MQTTSUB=" //sub
#define MQTT_PUB "AT+MQTTPUB=" //AT+MQTTPUB=<connect_id>,<topic>,<qos>,<retain>,<dup>,<msg_len>[,<message>]
#define MQTT_ISSUE_THEME "\"device_control\""//下发主题
#define MQTT_DISCON "AT+MQTTDISC="
#define MQTT_STATE "AT+MQTTSTATE="
#define MQTT_READ "AT+MQTTREAD="
#define MQTT_PUB_MESSAGE "AT+MQTTPUB="
/******************************** mqtt命令 **************************************/
#define MQTT_CMD_VERSION_CFG MQTT_CFG MQTT_CFG_VERSION "," MQTT_CONNECT_ID
#define MQTT_CMD_ENCODING_CFG MQTT_CFG MQTT_CFG_ENCODING "," MQTT_CONNECT_ID "," MQTT_INOUT_FORMAT_ASCII "," MQTT_OUTPUT_FORMAT_ASCII
#define MQTT_CMD_PINGRESP_CFG MQTT_CFG MQTT_CFG_PINGRESP "," MQTT_CONNECT_ID
#define MQTT_CMD_CNNNET MQTT_CONNET MQTT_CONNECT_ID ","MQTT_SEVER_URL "," MQTT_SEVER_PORT "," DEVICE_ID "," DEVICE_NUMBER "," FEATURE_STRING
#define MQTT_CMD_SUB MQTT_SUB MQTT_CONNECT_ID "," MQTT_ISSUE_THEME "," MQTT_QOS_1
#define MQTT_CMD_DISC MQTT_DISCON MQTT_CONNECT_ID//断开连接
#define MQTT_CMD_STATE MQTT_STATE MQTT_CONNECT_ID/*1:正在重连中2连接成功3连接断开*/
#define MQTT_CMD_READ MQTT_READ MQTT_CONNECT_ID//该命令用于缓存模式下读取缓存中的消息。NB-IoT系列模组缓存上限为4KB4G/5G模组缓存上限为8KB。
/********************************mqtt urc消息**************************************/
/*
* +MQTTURC: "conn",<connect_id>,<conn_state> MQTT连接状态发生变化事件上报
* +MQTTURC: "pubnmi",<connect_id>,<mid>,<data_len> New Message Indication
* +MQTTURC: "drop",<connect_id>,<dropped_length>
* +MQTTURC: "publish",<connect_id>,<mid>,<topic>,<total_len>,<payload_len>,<payload>MQTT Publish数据
* +MQTTURC: "pingresp",<connect_id>,<ping_ret>
* +MQTTURC: "timeout",<connect_id>,<mid>
* +MQTTURC: "suback",<connect_id>,<mid>,<code>[,<code1>,..ACK信息上报
* +MQTTURC: "unsuback",<connect_id>,<mid>ACK信息上报
* +MQTTURC: "puback",<connect_id>,<mid>,<dup>QoS1模式下的发布响应ACK信息上报
* +MQTTURC: "pubrec",<connect_id>,<mid>,<dup>QoS2模式下的发布响应Receive上报
* +MQTTURC: "pubcomp",<connect_id>,<mid>,<dup>QoS2模式下的发布响应Complete上报
*/
#define MQTT_URC_CONNET_STATE "+MQTTURC: \"conn\"" /*MQTT连接状态发生变化事件上报。+MQTTURC: "conn",<connect_id>,<conn_state>*/
#define MQTT_URC_RECEIVE_PROMPT "+MQTTURC: \"pubnmi\""
#define MQTT_URC_DISCARD_PROMPT "+MQTTURC: \"drop\""
#define MQTT_URC_RECEIVE_MSG "+MQTTURC: \"publish\"" //接收消息URC
#define MQTT_URC_PING_RESP "+MQTTURC: \"pingresp\"" //PING结果URC
#define MQTT_URC_OUTTIME "+MQTTURC: \"timeout\"" //超时URC
#define MQTT_URC_SUBACK "+MQTTURC: \"suback\"" //订阅URC
#define MQTT_URC_UNSUBACK "+MQTTURC: \"unsuback\"" //取消urc
#define MQTT_URC_PUBACK "+MQTTURC: \"puback\"" //QoS=1时发送结果URC
#define MQTT_URC_PUBREC "+MQTTURC: \"pubrec\"" //QoS=2时消息到达URC
#define MQTT_URC_PUBCOMP "+MQTTURC: \"pubcomp\"" //QoS=2时消息发送完成URC
#endif // !__BSP_NET_H__