文档首页 > > 开发指南> 产品开发> 开发编解码插件> 插件开发示例> 多条数据上报消息

多条数据上报消息

更新时间: 2019/06/25 GMT+08:00

场景说明

有一款烟感设备,具有如下特征:

  • 具有烟雾报警功能(火灾等级)和温度上报功能。
  • 支持远程控制命令,可远程打开报警功能。比如火灾现场温度,远程打开烟雾报警,提醒住户疏散。
  • 支持同时上报烟雾报警(火灾等级)和温度,也支持单独上报温度。

Profile定义

在烟感产品的开发空间,完成Profile定义。
  • level:火灾级别,用于表示火灾的严重程度。
  • temperature:温度,用于表示火灾现场温度。
  • SET_ALARM:打开或关闭告警命令,value=0表示关闭,value=1表示打开。

编解码插件开发

  1. 在烟感产品的开发空间,选择“编解码插件开发”

  2. 配置数据上报消息,上报火灾等级和温度。

    添加messageId字段,表示消息种类。

    • 在本场景中,数据上报消息有两种,所以需要用messageId来标志消息种类。
    • “数据类型”根据数据上报消息种类的数量进行配置。在本场景中,仅有两种数据上报消息,配置为“int8u”即可满足需求。
    • “默认值”可以修改,但必须为十六进制格式,且数据上报消息的对应字段必须和默认值保持一致。在本场景中,用0x0标识上报火灾等级和温度的消息。

    添加level字段,表示火灾级别。
    • “字段名”只能输入包含字母、数字、_和$,且不能以数字开头的字符。
    • “数据类型”根据设备上报数据的实际情况进行配置,需要和Profile相应字段的定义相匹配。
    • “长度”“偏移值”根据“数据类型”的配置自动填充。

    添加temperature字段,表示温度。在Profile中,temperature属性最大值1000,因此在插件中定义temperature字段的“数据类型”“int16u”,以满足temperature属性的取值范围。

  3. 配置数据上报消息,只上报温度。

    添加messageId字段,表示消息种类。在本场景中,用0x1标识只上报温度的消息。

    添加temperature字段,表示温度。

  4. 配置命令下发消息。

    添加value字段,表示下发命令的参数值。

  5. 拖动右侧“设备模型”区域的属性字段和命令字段,与数据上报消息和命令下发消息的相应字段建立映射关系。

    level字段和temperature字段分别与Profile中的对应属性建立映射关系,messageId用于帮插件识别消息种类,不需要建立映射关系。

  6. 点击“保存”,并在插件保存成功后点击“部署”,将编解码插件部署到物联网平台。

调测编解码插件

  1. 在烟感产品的开发空间,选择“在线调测”,使用虚拟设备调试编解码插件。

    勾选“没有真实的物理设备”,点击“创建”

  2. 使用设备模拟器进行数据上报。

    十六进制码流示例:000100F1。00表示messageId,此消息上报火灾等级和温度;01表示火灾级别,长度为1个字节;00F1表示温度,长度为2个字节。

    “应用模拟器”区域查看数据上报的结果:{level=1, temperature=241}。1为十六进制数01转换为十进制的数值;241为十六进制数00F1转换为十进制的数值。

    十六进制码流示例:0100F1。01表示messageId,此消息只上报火灾温度;00F1表示温度,长度为2个字节。

    “应用模拟器”区域查看数据上报的结果:{temperature=241}。241为十六进制数00F1转换为十进制的数值。

  3. 使用应用模拟器进行命令下发:{ "serviceId": "Smoke", "method": "SET_ALARM", "paras": "{\"value\":1}" }。

    “设备模拟器”区域查看命令接收的结果:01。01为十进制数1转换为十六进制的数值。

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

在文档使用中是否遇到以下问题







请至少选择或填写一项反馈信息

字符长度不能超过200

反馈内容不能为空!

提交反馈 取消