更新时间:2024-04-08 08:18:04下载pdf
本文介绍蜂窝标准通信协议下的 DP 服务的相关指令。
命令数据单元和状态数据单元(data point,DP)如下所示:
数据段 | 字节数 | 说明 |
---|---|---|
dpid | 1 | DP 序号 |
type | 1 | 对应 涂鸦 IoT 开发平台 上一个 DP 具体的数据类型,参考下表中 type 字段中表示值说明 |
len | 2 | 长度对应 value 的字节数,参考下表中 type 字段说明 |
value | 1/2/4/N | 用 16 进制表示,大于 1 字节采用大端传输 |
DP 中的 type
字段说明:
type |
数据类型 | 字节数 | 说明 |
---|---|---|---|
0x00 | Raw | N | 对应于 Raw 型 DP,采用模组透传的方式传输 |
0x01 | Bool | 1 | 范围:0x00 或 0x01 |
0x02 | Value | 4 | 又称 Integer 类型,采用大端表示 |
0x03 | String | N | 对应于具体字符串 |
0x04 | Enum | 1 | 枚举类型,范围为 0-255 |
0x05 | Bitmap | 1/2/4 | 长度大于 1 字节时,采用大端传输 |
模组发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x06 |
数据长度 | 2 | 取决于 命令数据单元 类型以及个数 |
数据 | N | 命令数据单元 组 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余 |
例:系统开关对应 3 号 DP,使用 bool 型变量,开机数值为 1 0x55aa 00 06 0005 03 01 0001 01 10
MCU 返回(产品信息中开启 dp_ack 时 MCU 需回复)
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x06 |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余 |
DP 状态数据单元,说明详见 数据单元 章节。
状态上报为异步处理协议,状态上报触发机制有三类:
MCU 收到命令下发处理帧时,正确执行相应 DP 命令,再通过状态上报帧,将变化后的 DP 状态发送至模组。
MCU 主动检测到 DP 有变化,将变化后的 DP 状态发送至模组。
MCU 收到 状态查询 帧时,将所有的 DP 状态发送至模组。
状态上报可含多个 DP 命令数据单元。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x07 |
数据长度 | 2 | 取决于状态数据单元类型以及个数 |
数据 | N | 状态数据单元 组 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余 |
例:湿度对应 5 号 DP,使用 value 型变量,湿度为 30% 0x55aa 03 07 0008 05 02 0004 0000001e 3a
状态查询为异步处理协议,主要用于模组查询 MCU 所有的 Object 类型的 DP 状态,当 MCU 收到此帧时,通过 状态上报 章节的状态上报帧上报 DP 状态。
状态查询发送时机主要有两种:
模组首次上电,通过心跳与 MCU 建立连接后,当设备连接到涂鸦 IoT 开发平台后查询发送。
模组工作过程中检测到 MCU 重启或发生了离线再上线的过程,查询发送。
模组发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x08 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余 |
例:0x55aa 00 08 0000 07
此命令为同步指令,MCU 数据状态上报后,需要等待模组返回结果。
每次发送模组都会有响应,模组未响应前不可多次上报。
网络较差,数据难以及时上报时,模组会在 5 秒后返回失败,MCU 需要等待大于 5 秒。
DP 状态数据单元说明详见 状态数据单元。
状态上报可含多个 DP 命令数据单元。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x22 |
数据长度 | 2 | 取决于状态数据单元类型以及个数 |
数据 | N | 状态数据单元 组 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x23 |
数据长度 | 2 | 0x01 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余 |
此命令为同步指令,MCU 数据状态上报后,需要等待模组返回结果。
每次发送模组都会有响应,模组未响应前不可多次上报。
网络不好,数据难以及时上报时,模组会在 5 秒后返回失败,MCU 需要等待大于 5 秒。
DP 状态数据单元说明详见 状态数据单元。
状态上报可含多个 DP 命令数据单元。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x26 |
数据长度 | 2 | 取决于 状态数据单元 类型以及个数 + 7 |
时间标签 | 7 |
|
数据 | N | 状态数据单元 组 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x26 |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈