数据解析使用示例

<p>本章节提供一个简单的解析数据下上属性的脚本为例,介绍数据解析脚本的编辑和测试过程。</p> <ol> <li>在<a href="https://pinganyun.com/console/iot" target="_blank">IoT平台控制台</a>创建产品。</li> <li>定义产品物模型。本实例中定义了以下两个属性。</li> </ol> <table border="1" cellpadding="0" cellspacing="0" style="width:100%"> <thead> <tr> <td style="background-color:#ededed; vertical-align:top"> <p><strong>标</strong><strong> 识 符(identifer)</strong></p> </td> <td style="background-color:#ededed; vertical-align:top"> <p><strong>数 据 类 型</strong></p> </td> <td style="background-color:#ededed; vertical-align:top"> <p><strong>取 值 范 围</strong></p> </td> <td style="background-color:#ededed; vertical-align:top"> <p><strong>读 写 类 型</strong></p> </td> </tr> </thead> <tbody> <tr> <td style="vertical-align:top"> <p>Temperature</p> </td> <td style="vertical-align:top"> <p>整 数 型 int32</p> </td> <td style="vertical-align:top"> <p>-100~100</p> </td> <td style="vertical-align:top"> <p>读 写</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>Humidity</p> </td> <td style="vertical-align:top"> <p>整 数 型 int32</p> </td> <td style="vertical-align:top"> <p>0~100</p> </td> <td style="vertical-align:top"> <p>读 写</p> </td> </tr> </tbody> </table> <p>&nbsp;<img src="https://obs-cn-shanghai.yun.pingan.com/pcp-portal/20190910094135-18003d6d97ad.png" style="height:82px; width:566px" /></p> <p>&nbsp; &nbsp; &nbsp; 3. 在设备通信协议中做如下定义:</p> <p>&nbsp; &nbsp; &nbsp; 1) 设备上报数据请求</p> <table border="1" cellpadding="0" cellspacing="0" style="width:100%"> <thead> <tr> <td style="background-color:#ededed; vertical-align:top"> <p><strong>字 段</strong></p> </td> <td style="background-color:#ededed; vertical-align:top"> <p><strong>字 节 数</strong></p> </td> </tr> </thead> <tbody> <tr> <td style="vertical-align:top"> <p>帧 类 型</p> </td> <td style="vertical-align:top"> <p>1字节</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>请 求 ID</p> </td> <td style="vertical-align:top"> <p>4字节</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>属 性 Temperature</p> </td> <td style="vertical-align:top"> <p>1字节</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>属 性 Humidity</p> </td> <td style="vertical-align:top"> <p>1字节</p> </td> </tr> </tbody> </table> <p>&nbsp; &nbsp; &nbsp; &nbsp; 2)设备上报数据响应:</p> <table border="1" cellpadding="0" cellspacing="0" style="width:100%"> <thead> <tr> <td style="background-color:#ededed; vertical-align:top"> <p><strong>字 段</strong></p> </td> <td style="background-color:#ededed; vertical-align:top"> <p><strong>字 节 数</strong></p> </td> </tr> </thead> <tbody> <tr> <td style="vertical-align:top"> <p>帧 类 型</p> </td> <td style="vertical-align:top"> <p>1字节</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>请 求 ID</p> </td> <td style="vertical-align:top"> <p>4字节</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>结 果 code</p> </td> <td style="vertical-align:top"> <p>1字节</p> </td> </tr> </tbody> </table> <p>&nbsp; &nbsp; &nbsp; 3) 设置属性请求</p> <table border="1" cellpadding="0" cellspacing="0" style="width:100%"> <thead> <tr> <td style="background-color:#ededed; vertical-align:top"> <p><strong>字 段</strong></p> </td> <td style="background-color:#ededed; vertical-align:top"> <p><strong>字 节 数 </strong></p> </td> </tr> </thead> <tbody> <tr> <td style="vertical-align:top"> <p>帧 类 型</p> </td> <td style="vertical-align:top"> <p>1字节</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>请 求 ID</p> </td> <td style="vertical-align:top"> <p>4字节</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>属 性 Temperature</p> </td> <td style="vertical-align:top"> <p>2字节</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>属 性 Humidity</p> </td> <td style="vertical-align:top"> <p>1字节</p> </td> </tr> </tbody> </table> <p>&nbsp; &nbsp; &nbsp; 4) 属性设置响应:</p> <table border="1" cellpadding="0" cellspacing="0" style="width:100%"> <thead> <tr> <td style="background-color:#ededed; vertical-align:top"> <p><strong>字 段</strong></p> </td> <td style="background-color:#ededed; vertical-align:top"> <p><strong>字 节 数</strong></p> </td> </tr> </thead> <tbody> <tr> <td style="vertical-align:top"> <p>帧 类 型</p> </td> <td style="vertical-align:top"> <p>1字节</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>请 求 ID</p> </td> <td style="vertical-align:top"> <p>4字节</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>结 果 code</p> </td> <td style="vertical-align:top"> <p>1字节</p> </td> </tr> </tbody> </table> <p>&nbsp; &nbsp;4. 编写脚本:在<a href="https://pinganyun.com/console/iot" target="_blank">IoT平台控制台</a>产品详情页的<strong>数据解析</strong>页签下,编写脚本。</p> <p>&nbsp; &nbsp;脚本中需定义以下两个方法:</p> <ul> <li>将JSON格式数据转为设备自定义数据格式:protocolToRawData。</li> <li>将设备自定义数据格式转JSON格式数据:rawDataToProtocol。</li> </ul> <p>&nbsp; &nbsp;5.&nbsp;在线测试脚本:脚本编辑完成以后,使用模拟数据现在测试脚本。</p> <p>&nbsp; &nbsp; &nbsp; &nbsp;1) 模拟解析设备上报的属性数据: 选择模拟类型为<strong>设备上报数据</strong>,输入以下模拟的设备上报数据,然后单击<strong>运行</strong>。</p> <pre> <code>0x00000000110506</code></pre> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;数据解析引擎会按照脚本规则,将透传数据转换为JSON格式数据。运行结果栏将显示解析结果:</p> <pre> <code class="language-json">{ "method": "thing.event.property.post", "id": 17, "params": { "Temperature": 5, "Humidity": 6 }, "version": "1.0" }</code></pre> <p>&nbsp; &nbsp; &nbsp; &nbsp; 2)&nbsp;模拟解析物联网平台下发的返回结果数据:选择模拟类型为<strong>设备接收数据</strong>,输入以下JSON格式数据,然后单击<strong>运行</strong>。</p> <pre> <code class="language-json">{ "id": "17", "version": "1.0", "code": 200, "method": "thing.event.property.post", "data": {} }</code></pre> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 数据解析引擎会将JSON格式数据转换为以下数据:</p> <pre> <code>0x0200000011C8</code></pre> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3)模拟解析物联网平台下发的属性设置数据:选择模拟类型为<strong>设备接收数据</strong>,输入以下JSON格式数据,然后单击<strong>运行</strong>。</p> <pre> <code class="language-json">{ "method": "thing.service.property.set", "id": "12345", "version": "1.0", "params": { "Temperature": 42, "Humidity": 70 } }</code></pre> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;数据解析引擎会将JSON格式数据转换为以下数据:</p> <pre> <code>0x01000030392A46</code></pre> <p>&nbsp; &nbsp; &nbsp; &nbsp;4)模拟解析设备返回的属性设置结果数据:选择模拟类型为<strong>设备上报数据</strong>,输入以下数据,然后单击<strong>运行</strong>。</p> <pre> <code>0x0300000044c8</code></pre> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;数据解析引擎会将透传数据转换为以下JSON格式数据:</p> <pre> <code class="language-json">{ "code": "200", "data": {}, "id": 68, "version": "1.0" } </code></pre> <p>&nbsp;</p>
以上内容是否解决了您的问题?
请补全提交信息!
咨询·建议

电话咨询 - 7x24 小时

400-151-8800

邮件咨询

cloud@pingan.com

在线客服

7x24 小时,急速解答

工单支持

解决云产品相关技术问题