这是本文档旧的修订版!
近期OneNET上线了TCP透传功能,该功能旨在尽量弱化终端测软件为了适配协议而做的修改,将协议的解析功能放在了平台测,为的是更加方便用户的终端(特别是DTU)的接入。下面我们将以众山DTU为例,做一个简单的接入示例,该示例内容如下:
1、终端DTU连接上OneNET平台;
2、使用脚本实现周期性下发数据;
3、使用脚本实现,平台将接收的字符串保存,并能够在平台数据流中查看。
一.设备参数配置,将DTU云开关关闭,网络协议设置为TCP_Client,数据中心IP地址设置为183.230.40.40:1811。
二.进入OneNET官网,注册账号,然后进去开发者中心,点击创建产品。
三.创建产品(最后的协议选TCP透传就行)。
四.上传脚本,此脚本让OneNET平台定时下发数据到DTU。
需要注意的是脚本名称很重要,在设备登录的时候需要用作参数。
脚本下载:lua脚本调试.zip
五.设备登录。设备登陆报文是在建立TCP连接之后,用于告知OneNET平台,该终端DTU对应的是平台上的哪一个设备,数据用何种方式进行解析。
格式为 *PID#AuthCode#ParserName*
其中:
PID 为 产品ID
AuthCode 为 鉴权信息(创建设备的时候所指定)
ParserName 为 脚本名称(上传Lua脚本的时候所指定)
示例1:平台周期下发数据。
本例所使用的PID为169428,鉴权信息为wifitest,脚本名称为example1(见第四步)。
发送登录报文为*169428#wifitest#example1*
登录鉴权成功后,可以看到设备指示灯变亮,说明连接OneNET成功,平台会解析上传的LUA脚本,脚本中device_timer_init会启动一个定时器,会定时向DTU设备发送一条“hello”报文。
本例源码为:
其中 dev:add(10,“dev1”,“hello”) 定义了每10秒下发一包数据,内容为hello。
示例2:向平台发送数据。
把例1函数device_timer_init(dev)中的内容注释掉,修改device_data_analyze(dev)函数的内容。
然后上传到OneNET。
上传后需复位一下DTU,重新进行登录。
登录报文为*169428#wifitest#example2*
登录成功后发送字符串,OneNET平台会收到数据。
也可以通过平台向DTU发送数据。