#ifndef __BSP_NET_H__ #define __BSP_NET_H__ #ifdef __cplusplus extern "C" { #endif #include #include "drv_gpio.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=,,,,,[,] #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系列模组缓存上限为4KB,4G/5G模组缓存上限为8KB。 /********************************mqtt urc消息**************************************/ /* * +MQTTURC: "conn",, MQTT连接状态发生变化事件上报 * +MQTTURC: "pubnmi",,, 新数据包上报(New Message Indication),提示从缓存区读取数据包。 * +MQTTURC: "drop",,提示接收缓存区满,丢掉数据。 * +MQTTURC: "publish",,,,,,接收到的MQTT Publish数据。 * +MQTTURC: "pingresp",,配置心跳回显时,上报心跳包响应结果。 * +MQTTURC: "timeout",,数据发送超时事件上报(仅上报订阅、取消订阅、发布最终超时结果,重传包超时不上报) * +MQTTURC: "suback",,,[,,..收到服务器订阅ACK信息上报。 * +MQTTURC: "unsuback",,收到服务器取消订阅ACK信息上报。 * +MQTTURC: "puback",,,QoS1模式下的发布响应ACK信息上报。 * +MQTTURC: "pubrec",,,QoS2模式下的发布响应Receive上报。 * +MQTTURC: "pubcomp",,,QoS2模式下的发布响应Complete上报。 */ #define MQTT_URC_CONNET_STATE "+MQTTURC: \"conn\"" /*MQTT连接状态发生变化事件上报。+MQTTURC: "conn",,*/ #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__