跳转至

合宙 IOT 通用报文协议 AirProtcl -- 1.0

二、协议报文详解

报文分为消息头和消息体两部分。

消息头只有一个,在报文开头,固定12个字节,分为设备ID,消息长度,版本标志三个字段。

消息体可以有多个,采用TLV的形式。

除了特殊约定外,报文的各个字节采用大端对齐的方式。

2.1 消息头

消息头一共 16 字节。

1, 设备 ID - 8 字节

其中第一个字节,代表设备类型,4G,WiFi,BLE,等;

剩余 7 字节为设备 ID,可以是 IMEI,也可以是 MAC, 也可以是 Chip ID,不做特殊约定。

设备 ID 采用 BCD 编码方式。

设备 ID 长度不足 7 字节的,自动在高位补 0.

2,流水号 - 2 字节

3,消息长度 - 2 字节

从版本标识开始的消息长度,最长不能大于 1400字节。

4,消息标识-4 字节

用来做协议和消息约定的32个bit。

bit0-3: 协议版本号;

bit4:    是否需要回复

bit5:    是否携带鉴权 key

其余26个bit 为0.

2.2 消息体

消息体有多个 TLV 组成: T-字段类型,L-字段长度,V-字段取值,可以任意多个 TLV, 只要消息长度不超过 1400 字节即可。

1, 字段类型 - 2 字节

前面 12 个 bit, 代表字段含义,比如温度,湿度,转速,工作或者停止,等等;

后面 4bit,代表数据类型(整数,浮点,bool,ascii,binary)

2, 长度 - 2 字节

字段取值的长度

3, 字段值

实际的值。

2.3 消息字段示例

字段
**字段名**
**长度**
含义
消息头
设备ID
8
第一个字节,代表设备类型,4G,WiFi,BLE,等;
剩余7字节为设备ID,可以是IMEI,也可以是MAC, 也可以是Chip ID,不做特殊约定。
消息头
流水号
2

消息头
消息长度
2
从版本标识开始的消息长度,最长不能大于 1400字节。
消息头
消息标识
4
bit0-3: 协议版本号;
bit4: 是否需要回复
bit5: 是否携带鉴权 key
其余26个bit 为0.
认证key(可选)
key
64
用于 UDP 报文的鉴权
TLV1
字段类型
2
前面12个bit, 代表字段含义,比如温度,湿度,转速,工作或者停止,等等;
后面4bit,代表数据类型(整数,浮点,bool,ascii,binary)
TLV1
长度
2

TLV1
字段值
N

TLV2
字段类型
2

TLV2
长度
2

TLV2
字段值
N

......







2.4 设备鉴权

在设备建立连接之前,需要发送鉴权消息。

鉴权的方式是,通过 TLV 传递用户的 key+IMEI(或者 MAC)+MUID,由服务器判断是否合法,如果不合法的话,服务器主动发起断链操作。