编解码插件讲解-2-基本上下行消息
在完成profile后进入编解码插件开发。
以本实验为例,在开发前先了解一下编解码插件各部分的关系概况图:
其中level、temperature、value均为字段。
点击新增消息。
根据思维习惯先完成数据上报消息的制作。
对smokeinfo消息进行字段的编写。
字段的“数据类型”根据设备上报数据的实际情况进行配置,需要和profile相应字段的定义相匹配。”长度”、“偏移值”根据“数据类型”的配置自行填充。
(注:因为在profile的temperature属性最大值为1000,所以此处插件的temperature数据类型为“int16u”以满足temperature属性的取值范围。)
根据相同的操作思路完成命令下发消息和其字段的制作。
完成消息制作后我们要对profile和编解码插件的对应字段建立映射关系。
在右侧的profile中拖拽对应字段即可完成。
建立映射关系后,点击profile上的保存与部署即可把编解码插件部署到云。
部署完后我们进行虚拟设备在线调试。
(注:有心的同学应该已经发现了应用模拟器和补光灯实验的不同,此时多了命令下发的功能。之前已经解释过,是协议不同的原因。)
在设备模拟器进行数据上报。因为协议原因我们在此处要输入十六进制码流。
示例:02013A。02表示火灾级别;013A表示温度。
在应用模拟器可以看到数据上报的结果。2为十六进制数02转换为十进制的数值;314为十六进制数013A转换的十进制数值。
在应用模拟器进行命令下发。
此时可以在设备模拟器查看命令接收的结果,01为十进制数1转换为十六进制的数值
在完成基本上下行消息的编解码开发之后,相信同学们已经了解了插件开发的基本框架和流程。
其实多行上下行消息的编解码开发不过也只是在消息的字段上加了messageId标识,在上传消息的码流的最前面输入不同的messageId(如00、01,此处的消息种类为00)即可完成对不同的消息种类的上传。即可以只上传火灾等级或者温度也可以火灾等级和温度。