打开主菜单

谷雨文档中心 β

更改

NB260软件设计手册

添加788字节2019年2月14日 (四) 15:03
使用TCP协议通信
NB260(BC26)和NB101(BC95)相比,额外支持TCP协议,TCP协议和UDP很相似,但是TCP可靠性更高。
首先创建TCP协议Socket<syntaxhighlight lang="bash">AT+NSOCR=STREAM,6,56000,1</syntaxhighlight>模块返回:
待更新。。。==使用CoAP协议通信使用LwM2M协议通信==
CoAP是一种类似HTTP的极其轻量级的应用层协议,HTTP基于TCP协议,而CoAP基于UDP协议,最小数据包仅有4个字节。非常适合低功耗物联网设备的使用。
BC26模块中集成了CoAP服务端和客户端,封装了内部接口,提供简洁的数据收发指令给用户使用。因此使用CoAP协议通信比UDP更简单。而LwM2M是在标准CoAP协议基础上封装了一层协议,LwM2M协议兼容BC95的CoAP协议(BC95的CoAP协议也并非指标准CoAP,而是按照LwM2M协议进行了一层封装)。
CoAP通信的使用流程: 模块附着网络>>设置CDP服务器地址和端口>>发送数据>>接收数据。由于BC26采用的是标准LwM2M协议,因此,和华为、电信平台通信的步骤要多一些。
使用CoAP通信前,也建议测试测试远程IP地址是否可用。{{Note|text=1、NB模块中使用的CoAP协议是在标准CoAP基础上又封装一层,过程较复杂,因此大家很难自己创建CoAP服务器来测试,如果要自建CoAP协议服务器,请参考电信的模块对接手册。2、CoAP协议的通信需要对接电信/华为平台后进行,其他情况下很难正常测试。|type=info}}LwM2M的使用流程: 模块附着网络>>设置平台地址和端口>>相关参数配置>>发送数据>>接收数据。
===配置CDP服务器配置服务器地址和端口===配置远程CoAP服务器的IP地址和端口,类似UDP的IP和端口。配置平台设备接入的IP地址和端口。<syntaxhighlight lang="bash">#发送指令AT+QLWSERV="117.60.157.137",5683
发送指令:<syntaxhighlight lang="bash">AT+NCDP=115.29.240.46,5683</syntaxhighlight>模块返回:<syntaxhighlight lang="bash">#模块返回
OK
 </syntaxhighlight>设置指令格式:AT+NCDPQLWSERV= <ip_addr>[,<port>]
{| class="wikitable"
|+
!参数
!说明
|-
|<ip_addr>
|目标CDP服务器的IP地址,例如:115平台设备接入IP地址,例如电信IOT商用平台地址为:117.2960.240157.46137
|-
|<port>
|目标CDP服务器的端口,默认端口:5683平台设备接入端口,默认端口:5683
|}
若想查询CDP设置情况若查询参数,请发送指令:AT+NCDPQLWSERV===配置endpoint===设置endpoint,endpoint是模块接入平台时的身份验证,BC26是以模块IMEI码作为endpoint。<syntaxhighlight lang="bash">#查询IMEI码AT+CGSN=1 #模块返回+CGSN: 866971030245736 OK  
</syntaxhighlight>设置endpoint<syntaxhighlight lang===配置新消息通知==="bash">#设置endpoint开启发送消息通知,配置后,若消息已发送,串口会返回异步命令AT+NSMI:SENT的提示。QLWCONF="866971030245736"
发送指令:<syntaxhighlight lang="bash">AT+NSMI=1</syntaxhighlight>模块返回:<syntaxhighlight lang="bash">#模块返回
OK
</syntaxhighlight>开启接收消息通知,配置后,若接收到服务器的数据下发,模块会主动向串口发送异步命令。
发送指令: </syntaxhighlight lang>设置endpoint格式:AT+QLWCONF=<endpoint> {| class="bashwikitable"!参数!说明|-|<endpoint>AT+NNMI|模块接入平台时的身份验证码,必须使用模块的IMEI码。请勿和IMSI码混淆。|} === 配置LwM2M Object ===1</syntaxhighlight>模块返回:该配置与LwM2M的协议有关,这里我们仅设置与平台通信相关的参数,关于LwM2M协议的深入介绍请自行阅读相关文档。<syntaxhighlight lang="bash">#添加一个LwM2M object 19/0/0.AT+QLWADDOBJ=19,0,1,"0" #模块返回
OK
<#添加一个LwM2M object 19/syntaxhighlight>指令格式:AT1/0.AT+NNMIQLWADDOBJ=<status>19,1,1,"0" #模块返回OK
</syntaxhighlight>设置参数格式为:AT+QLWADDOBJ=<obj_id>,[<ins_id>[,<res_num>,<res_id>]]
{| class="wikitable"
!参数
!说明
|-
|<statusobj_id>|设置接收消息通知类型,取值如下:Integer type. Object ID. The maximum object ID number is 65535.0:不通知,默认设置|-|<ins_id>|Integer type. Instance ID.|-|<res_num>|Integer type. Resources ID number.|-|<res_id>|String type. Resources ID with double quotation marks.|}若删除ObjectID,发送指令:AT+QLWDELOBJ=<obj_id>
1:通知并携带数据,=== 向平台发送注册请求 ===此时,可以向平台发送设备注册请求,注册成功后即可收发数据。<syntaxhighlight lang="bash">#向平台发送注册请求AT+QLWOPEN=0
2:仅通知#模块返回OK #等待一小会,若设备注册成功,模块返回:CONNECT OK #若设备注册失败,模块返回:CONNECT FAIL</syntaxhighlight>注册请求指令格式为:AT+QLWOPEN=<mode>{| class="wikitable"!参数!说明|-|<mode>|数据推送该模式。通常设置为:0,直接推送模式。* 0,直接推送模式* 1,缓存读取模式
|}
2,367
个编辑