本帖最后由 13594253053 于 2016-6-8 15:05 编辑
用户可以通过多种协议来接入OneNet平台。一般来说,HTTP协议对网络要求相对较高,HTTP协议的固定格式导致传输数据效率较低,因此主要应用于业务侧(用户控制端),但是HTTP协议较高的可读性和扩展性对于平台资源的理解和交互流程的熟悉还是有较大帮助的。
为便于大家使用,现按照《业务侧接口-RESTfulAPI_20151216》的协议内容对平台访问接口进行封装。用户可以在自己PC端以纯软件的方式来模拟对OneNet平台资源的操作,省去准备硬件的过程,直接熟悉了解OneNet HTTP协议。
接口库默认使用Linux编译环境,直接在顶层目录运行make即可,需要在其它环境运行的,自行创建对应的编译环境。
2. 接口说明
接口的封装按REST模型的资源进行分类,每种资源分别对应一个接口文件:资源名接口文件
设备RFDevice.h
数据流RFStream.h
数据点RFDataPoint.h
触发器RFTrigger.h
API KeyRFAPIKey.h
二进制数据RFBinData.h
命令RFCmd.h3. 应用
本接口库可以用于OneNet HTTP协议的学习。接口库内置一个测试程序(Restful_API/app),用户可自行修改内容并编译运行,同时用抓包工具(wireshark等)进行抓包分析。以内置程序为例,抓包如下图所示:
pktList.jpg (291.28 KB, 下载次数: 172)
2016-6-8 14:13 上传
对应到测试程序的代码流程,我们就可以很清楚的知道对平台资源操作时应该采用什么样的HTTP method。
任意点开其中一个网络数据包就可以看到具体的组包格式(以POST datapoints为例),HTTP包格式如下图:
postdata.jpg (44.87 KB, 下载次数: 167)
2016-6-8 14:29 上传
其中Data字段就是我们需要上传的数据点信息。如果十六进制不方便查看的话,可以以可打印字符的形式拷贝出来(右键点击Data字段,选择Copy -> Bytes -> Printable Text Only)进行查看:
dp.jpg (23.75 KB, 下载次数: 185)
2016-6-8 14:33 上传
除了用于了解学习协议外,全C语言的接口具有较高的移植性,用户也可以在一些嵌入式产品中集成该接口库,并根据各自的需求进行修改。