传输数据指令
开发者需明确每个功能点的dpid、类型、取值范围、类型对应的数据长度。
其中,某个数据点len字段,要严格匹配其对应类型长度:
类型 | 整数(0) | 布尔(1) | 枚举(2) | 字符(3) | 浮点(4) | 错误(5) | 二进制(6) |
---|---|---|---|---|---|---|---|
长度 | 4 | 1 | 1 | ≤1024 | 4 | ≤1024 | ≤1024 |
取值 | 整型范围 | 0/1 | 0-255 | ascii | IEEE754 | ascii | 任意 |
上传数据(0x11)
可通过此指令上传传感器数据或状态数据。设备功能发生改变时(主动/远程控制)需将最新数据上传。比如控制开关,本地按键控制需上传,收到0x12指令控制也需要上传。
mcu发送:
字段 | 长度 | 说明 |
---|---|---|
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x11 |
长度 | 2 | n,(25≤n≤1048),大端法 |
序列号 | 4 | 大端法自增数字,本条数据的序列号。如果需要确定 数据何时上传成功,可记录此发送序列号,与收到的进行对比 |
子设备id | 16 | 自定义的子设备id,仅限字母数字组合 |
id | 1 | 范围1-200,请与云端对应 |
type | 1 | 数据点类型,范围0-6 |
len | 2 | n,(1≤n≤1024),大端法,需严格匹配id对应类型 长度及内容 如整型len=0x0004,布尔型len=0x0001 |
data | n | 实际数据,整数为大端法,浮点按IEEE754标准编码 |
...... | ...... | 重复前4个字段,可一条指令上传多条数据 |
校验 | 1 | 校验和 |
接收数据(0x12)
收到数据后,如要改变某个硬件功能状态,需改变后上传(0x11指令)其最新状态到云端。
模组发送:
字段 | 长度 | 说明 |
---|---|---|
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x12 |
长度 | 2 | n,(21≤n≤1044),大端法 |
子设备id | 16 | 自定义的子设备id,仅限字母数字组合 |
id | 1 | 范围1-200,请与云端对应 |
type | 1 | 数据点类型,范围0-6 |
len | 2 | n,(1≤n≤1024),大端法,严格匹配id对应类型长度及内容 如整型len=0x0004,布尔型len=0x0001 |
data | n | 实际数据,整数为大端法,浮点按IEEE754标准编码 |
...... | ...... | 重复前4个字段,可一条指令接收多条数据 |