设备接入 IoTDA
设备接入 IoTDA
- 最新动态
- 功能总览
- 服务公告
- 计费说明
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
-
API参考
- 应用侧API参考
- 设备侧MQTT/MQTTS接口参考
- 设备侧HTTPS接口参考
- 设备侧LwM2M接口参考
- 安全隧道WebSocket接口参考
- 模组AT指令参考
- 修订记录
- SDK参考
- 场景代码示例
-
常见问题
- 热门问题
-
方案咨询
- 连接IoT平台的业务场景有哪些?
- 设备管理服务和设备接入服务合一后的差异点是什么?
- IAM子用户或子项目是否可以开通物联网平台服务?
- 物联网平台支持在华为云的哪些区域开通?
- 华为是否提供模组/硬件终端/应用软件等?
- IAM用户访问API提示没有权限?(是否区分版本?)
- 创建规则或者设置资源文件存储时候提示赋予Security Administrator权限
- 物联网平台设置默认资源空间的规则是什么?
- 设备接入服务如何获取设备数据?
- 物联网平台的资源空间和设备可以无限创建吗?
- 物联网平台支持批量注册设备吗?
- 物联网平台对应用侧和设备侧在开发或使用时有限制吗?
- 物联网平台支持的DTLS加密算法有哪些?
- 物联网平台支持二进制大小端模式切换吗?
- 什么是NB-IoT?
- 物联网平台支持的硬件架构和使用的相关组件有哪些?
- 如何获取平台接入地址?
- 设备集成相关问题
- 设备侧SDK相关问题
- 设备发放相关问题
- LWM2M/CoAP接入相关问题
- MQTT接入相关问题
- 泛协议接入相关问题
- 物模型相关问题
- 消息通信相关问题
- 订阅推送相关问题
- 编解码插件相关问题
- OTA升级相关问题
- 应用集成相关问题
- 实例管理相关问题
- 视频帮助
- 文档下载
- 通用参考
本文导读
链接复制成功!
编解码插件相关问题
如何进行编解码插件开发?
物联网平台提供线上编解码插件开发方式:线上开发指导详见在线开发参考。
在线开发的插件字段类型为string和varstring类型的编解码规则
在线开发编解码插件时,如果某字段的数据类型为字符串或可变长度字符串,则按照ACSII码进行编解码。
对应的插件在线开发可参考字符串及可变长字符串的编解码插件在线开发。
图1 数据类型样例1

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

在线开发插件中地址域(messageId)如何使用?
当有相同类型的消息时(例如:两种数据上报的消息),需要添加地址域字段,用于区分不同的消息,且该字段在字段列表的位置必须一致。场景如下:
- 有两条及以上的数据上报消息或命令下发消息。
- 命令响应消息可看作一种数据上报消息,因此如果存在命令响应消息,则需要在数据上报消息中添加地址域。
- 数据上报响应消息可看作一种命令下发消息,因此如果存在数据上报响应消息,则需要在命令下发消息中添加地址域。
在线开发的插件中如何实现命令下发响应?
设备在接收到命令后,可以上报两类消息:ACK和命令下发响应。ACK用于表示命令已经到达设备,命令下发响应用于表示设备执行命令的结果。如果需要设备在接到命令后,需要返回命令下发响应,则:
- 需要在数据上报消息和命令响应消息中均定义地址域字段(messageId),并且该字段在两种消息的字段列表中的位置必须相同,使编解码插件可以对数据上报消息和命令响应消息进行区分。
- 需要在命令下发消息和命令响应消息中定义响应标识字段(mid),并且该字段在两种消息的字段列表中的位置必须相同,使编解码插件可以将命令下发消息和对应的命令响应消息进行关联。
在线开发的插件部署失败如何处理?
问题描述
用户在插件开发界面开发好了编解码插件,单击部署按钮部署失败了
可能原因
- 如果插件下载成功,但是部署失败,则可能是网络问题导致
- 如果插件下载失败,则部署失败的原因如下:
- 同类消息的(例如:两种数据上报的消息)messageId的值设置重复或在消息中的位置不一致。
- messageId的数据类型设置为非int型。
- 存在字段的默认值设置为非16进制数。
- 存在字段名字设置为java关键字,比如type、int等
解决方法
- 插件如果可以成功下载,但是部署失败,请检查网络状态,并重试。
- 如果插件下载失败,请排查插件定义是否符合规范。
脚本化插件/离线插件开发编解码失败如何处理?
- 脚本化插件可以在“产品 > 插件开发 > 脚本化开发”页签进行调测,根据调测结果来进行修改。
- 离线开发的插件需要先通过编解码插件检测工具调测,根据检测工具的测试结果来进行修改。
离线开发的插件部署失败?
- 请使用编解码插件检测工具对插件进行检测。
- 根据检测工具返回的错误码进行处理,错误码处理建议详见检测工具包内的《IoT编解码插件检测工具使用说明》。
离线开发的插件上传失败?
离线开发的插件需要先通过编解码插件检测工具检测后,再上传到平台。请使用编解码插件检测工具对插件包进行检测,并按照工具的错误提示进行修改。