1 Star 0 Fork 42

huangshengjie / jetlinks-official-protocol

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
binary-protocol.md 3.08 KB
一键复制 编辑 原始数据 按行查看 历史
老周 提交于 2022-11-30 16:52 . 优化tcp udp实现和说明

头信息

字节序 类型 字段
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 更多消息类型

1
https://gitee.com/huangshengjie/jetlinks-official-protocol.git
git@gitee.com:huangshengjie/jetlinks-official-protocol.git
huangshengjie
jetlinks-official-protocol
jetlinks-official-protocol
v3

搜索帮助

53164aa7 5694891 3bd8fe86 5694891