物模型数据解析
物模型数据解析使用示例
本文以解析上、下行属性数据的脚本为例,介绍为数据格式为透传/自定义的产品下的物模型数据解析脚本编写方法。
步骤一:编辑脚本
在渊联物联平台,创建产品。
[说明] 数据格式选择为透传/自定义。
为该产品定义物模型。
本示例中定义了以下三个属性:
标识符(identifier) | 数据类型 | 取值范围 | 读写类型 |
---|---|---|---|
prop_float | 浮点单精度 float | -100~100 | 读写 |
prop_int16 | 整数型 int32 | -100~100 | 读写 |
prop_bool | 布尔型 bool | 0:开;1:关 | 读写 |
数据解析脚本将根据这里定义的物模型来编写,用于解析上下行物模型数据。
3. 在设备通信协议中做如下定义:
设备上报数据请求
字段 | 字节数 |
---|---|
帧类型 | 1字节 |
请求ID | 4字节 |
属性prop_int16 | 2字节 |
属性prop_bool | 1字节 |
属性prop_float | 4字节 |
设备上报数据响应
字段 | 字节数 |
---|---|
帧类型 | 1字节 |
请求ID | 4字节 |
结果code | 1字节 |
设置属性请求
字段 | 字节数 |
---|---|
帧类型 | 1字节 |
请求ID | 4字节 |
属性prop_int16 | 2字节 |
属性prop_bool | 1字节 |
属性prop_float | 4字节 |
属性设置响应
字段 | 字节数 |
---|---|
帧类型 | 1字节 |
请求ID | 4字节 |
结果code | 1字节 |
4. 编写脚本
在产品页,单击产品对应的查看。
在产品详情页,选择数据解析页签。
选择脚本语言,然后在编辑脚本下的输入框中输入脚本。
目前支持两种脚本语言:JavaScript(ECMAScript 5)、Python 2.7。
脚本中需定义调用以下两个函数,分别用于解析上、下行物模型数据。
- 将Yelink JSON格式数据转为设备自定义数据格式的函数:
- JavaScript(ECMAScript 5):protocolToRawData
- Python 2.7:protocol_to_raw_data
- 将设备自定义数据格式转Yelink JSON格式数据的函数:
- JavaScript(ECMAScript 5):rawDataToProtocol
- Python 2.7:raw_data_to_protocol
完整的示例脚本Demo,请参见JavaScript脚本示例、Python脚本示例
步骤二: 在线测试脚本
脚本编辑完成后,在模拟输入下,选择模拟类型,输入模拟数据在线测试脚本。
- 模拟解析设备上报的属性数据。
选择模拟类型为设备上报数据,输入以下模拟的设备上报数据,然后单击执行。
000000000100320100000000
数据解析引擎会按照脚本规则,将透传数据转换为JSON格式数据。
单击运行结果,查看解析结果。
{
"method": "thing.event.property.post",
"params": {
"prop_float": 0,
"prop_int16": 50,
"prop_bool": 1
},
"version": "1.0",
"id": "1"
}
模拟解析物联网平台下发的属性设置数据。
选择模拟类型为设备接收数据,输入以下JSON格式数据,然后单击执行
{
"method": "thing.service.property.set",
"id": "12345",
"version": "1.0",
"params": {
"prop_float": 123.452,
"prop_int16": 333,
"prop_bool": 1
}
}
数据解析引擎会将JSON格式数据转换为以下数据:
0100003039014d0142f6e76d
步骤三:提交脚本
确认脚本可以正确解析数据后,单击提交,将该脚本提交到物联网平台系统,以供数据上下行时,物联网平台调用该脚本解析数据。
说明 仅提交后的脚本才能被物联网平台调用;草稿状态的脚本不能被调用。
步骤四:使用真实设备调试
正式使用脚本之前,请使用真实设备与物联网平台进行上下行消息通信,以验证物联网平台能顺利调用脚本,解析上下行数据。
测试上报属性数据。
使用设备端上报设备属性数据,例如
0x00002233441232013fa00000
。在物联网平台控制台,选择设备管理 > 设备。
单击设备对应的查看,然后在设备详情页正式使用脚本之前,请使用真实设备与物联网平台进行上下行消息通信,以验证物联网平台能顺利调用脚本,解析上下行数据。
测试上报属性数据。
- 使用设备端上报设备属性数据,例如
0x00002233441232013fa00000
。 - 在物联网平台控制台,选择设备管理 > 设备
- 单击设备对应的查看,然后在设备详情页物模型数据 > 运行状态页签下,查看是否有相应的属性数据。
- 使用设备端上报设备属性数据,例如
测试下发属性数据。
在物联网平台控制台,选择监控运维 > 在线调试。
选择要调试的产品和设备,
功能选择为要调试的属性identifier,如属性(prop_bool),方法选择为设置,
输入以下数据,单击下发指令。
{ "prop_bool" : 0 }
查看设备端是否收到该属性设置指令。
在该设备的设备详情页物模型数据 > 运行状态页签下,查看设备是否上报当前属性数据。