3.1 KiB
3.1 KiB
头信息
字节序 | 类型 | 字段 |
---|---|---|
0 | INT8 | 消息类型 |
1-8 | INT64 | UTC时间戳 |
9-11 | INT16 | 消息序号 |
12-n | STRING | 设备ID |
... | MESSAGE | 消息类型对应的编码规则 |
数据类型
所有数据类型均采用大端
编码
Byte | Type | 编码规则 |
---|---|---|
0x00 | NULL | 0x01 |
0x01 | BOOLEAN | 1字节 0x00为false 其他为true |
0x02 | INT8 | 1字节 (byte) |
0x03 | INT16 | 2字节整型 (short) |
0x04 | INT32 | 4字节整型 (int) |
0x05 | INT64 | 8字节整型 (long) |
0x06 | UINT8 | 1字节无符号整型 |
0x07 | UINT16 | 2字节无符号整型 |
0x08 | UINT32 | 4字节无符号整型 |
0x09 | FLOAT | 4字节 IEEE 754浮点数 |
0x0a | DOUBLE | 8字节 IEEE 754浮点数 |
0x0b | STRING | 前2字节无符号整型 表示字符串长度,接下来长度的字节为字符串内容,UTF8编码 |
0x0c | BINARY | 前2字节无符号整型 表示数据长度,接下来长度的字节为数据内容 |
0x0d | ARRAY | 前2字节无符号整型 表述数组长度,接下来根据后续报文类型来解析元素 |
0x0e | OBJECT | 前2字节无符号整型 表述对象字段长度,接下来根据后续报文类型来解析key value |
消息类型定义
Byte | Type | 说明 |
---|---|---|
0x00 | keepalive | 心跳 |
0x01 | online | 首次连接 |
0x02 | ack | 应答 |
0x03 | reportProperty | 上报属性 |
0x04 | readProperty | 读取属性 |
0x05 | readPropertyReply | 读取属性回复 |
0x06 | writeProperty | 修改属性 |
0x07 | writePropertyReply | 修改属性回复 |
0x08 | function | 功能调用 |
0x09 | functionReply | 功能调用回复 |
0x00 keepalive 心跳
[ 0x00 ]
0x01 online 首次连接
[ 0x01,STRING:密钥信息 ]
0x02 ack 应答
[ 0x02,应答码 ]
应答码: 0x00:ok , 0x01: 未认证, 0x02: 不支持.
0x03 reportProperty 上报属性
[ 0x03,属性数据:OBJECT类型 ]
0x04 readProperty 读取属性
[ 0x04,属性列表:ARRAY类型 ]
0x05 readPropertyReply 读取属性回复
读取成功:
[ 0x05,0x01
,属性数据:OBJECT类型 ]
读取失败:
[ 0x05,0x00
,错误码:动态类型,错误消息:动态类型 ]
动态读取
表示类型不确定,根据对应的数据类型
来定义类型.
如: 无错误信息
[ 0x05,0x00,0x00
,0x00
]
INT8(0x02)
类型错误码:0x04
[ 0x05,0x00,0x02,0x04
,0x00 ]
TODO 更多消息类型