文档首页/ 设备接入 IoTDA/ 常见问题/ 编解码插件相关问题
更新时间:2024-07-29 GMT+08:00

编解码插件相关问题

如何进行编解码插件开发?

物联网平台提供线上编解码插件开发方式:线上开发指导详见在线开发参考

在线开发的插件字段类型为string和varstring类型的编解码规则

在线开发编解码插件时,如果某字段的数据类型为字符串或可变长度字符串,则按照ACSII码进行编解码。

对应的插件在线开发可参考在线开发的插件字段类型为string和varstring类型的编解码规则

图1 数据类型样例1

在线开发的插件字段为数组和可变长数组类型的编解码规则

在线开发编解码插件时,如果某字段的数据类型为数组或可变长度数组,则按照base64进行编解码。对应的插件在线开发可参考在线开发的插件字段为数组和可变长数组类型的编解码规则示例。

图2 数据类型样例2

在线开发插件中地址域(messageId)如何使用?

当有相同类型的消息时(例如:两种数据上报的消息),需要添加地址域字段,用于区分不同的消息,且该字段在字段列表的位置必须一致。场景如下:

  • 有两条及以上的数据上报消息或命令下发消息。
  • 命令响应消息可看作一种数据上报消息,因此如果存在命令响应消息,则需要在数据上报消息中添加地址域。
  • 数据上报响应消息可看作一种命令下发消息,因此如果存在数据上报响应消息,则需要在命令下发消息中添加地址域。

在线开发的插件中如何实现命令下发响应?

设备在接收到命令后,可以上报两类消息:ACK和命令下发响应。ACK用于表示命令已经到达设备,命令下发响应用于表示设备执行命令的结果。如果需要设备在接到命令后,需要返回命令下发响应,则:
  • 需要在数据上报消息和命令响应消息中均定义地址域字段(messageId),并且该字段在两种消息的字段列表中的位置必须相同,使编解码插件可以对数据上报消息和命令响应消息进行区分。
  • 需要在命令下发消息和命令响应消息中定义响应标识字段(mid),并且该字段在两种消息的字段列表中的位置必须相同,使编解码插件可以将命令下发消息和对应的命令响应消息进行关联。

在线开发的插件部署失败如何处理?

问题描述

用户在插件开发界面开发好了编解码插件,单击部署按钮部署失败了

可能原因

  1. 如果插件下载成功,但是部署失败,则可能是网络问题导致
  2. 如果插件下载失败,则部署失败的原因如下:
    • 同类消息的(例如:两种数据上报的消息)messageId的值设置重复或在消息中的位置不一致。
    • messageId的数据类型设置为非int型。
    • 存在字段的默认值设置为非16进制数。
    • 存在字段名字设置为java关键字,比如type、int等

解决方法

  1. 插件如果可以成功下载,但是部署失败,请检查网络状态,并重试。
  2. 如果插件下载失败,请排查插件定义是否符合规范。

脚本化插件/离线插件开发编解码失败如何处理?

  • 脚本化插件可以在产品 > 插件开发 > 脚本化开发页签进行调测,根据调测结果来进行修改。
  • 离线开发的插件需要先通过编解码插件检测工具调测,根据检测工具的测试结果来进行修改。

离线开发的插件部署失败?

  1. 请使用编解码插件检测工具对插件进行检测。
  2. 根据检测工具返回的错误码进行处理,错误码处理建议详见检测工具包内的《IoT编解码插件检测工具使用说明》。

离线开发的插件上传失败?

离线开发的插件需要先通过编解码插件检测工具检测后,再上传到平台。请使用编解码插件检测工具对插件包进行检测,并按照工具的错误提示进行修改。