跳转至

协议详解

合宙 IOT 通用报文协议 AirCloud

三、协议详解

3.1 消息头结构

消息头固定 16 字节,包含以下字段:

字段 字节数 说明
设备 ID 8 包含设备类型(1字节)和设备唯一标识(7字节)
流水号 2 消息序列号,用于标识消息顺序
消息长度 2 从消息体开始的消息长度,最长不超过 1400 字节
消息标识 4 包含协议版本号、是否需要回复等标志

3.1.1 设备 ID 详解

设备 ID 共 8 字节,左侧为最高位,结构如下:

  • 第 1 字节:设备类型,定义如下:

    • 0x01:4G主控 设备(Air700/780/8000系列)
    • 0x02:WiFi主控 设备(Air8101系列)
    • 0x03:MCU 主控设备(Air1601/1602/1780系列)
    • 0x04:保留
    • 0x05:保留
    • 0x06:保留
    • 0x07:保留
    • 0x08:保留
    • 0x09:虚拟设备(PC 模拟器使用)
    • 0xFF:未知设备
  • 剩余 7 字节:设备唯一标识,可使用 IMEI、MAC 地址或 Chip ID 等

设备 ID 编码规则

  • 采用 BCD 编码方式
  • 长度不足 7 字节的,高位补 0
  • 对于 IMEI,只使用前 14 位数字(第 15 位为校验位)

示例

  • 4G 设备,IMEI 为 861234567890123:设备 ID 为 0x0186123456789012
  • WiFi 设备,MAC 为 00-1A-2B-3C-4D-5E:设备 ID 为 0x0200001A2B3C4D5E

3.1.2 消息标识详解

消息标识共 4 字节(32 位),定义如下:

含义
bit0-3 协议版本号
bit4 是否需要回复(1:需要,0:不需要)
bit5 是否是 UDP 承载(1:是,0:否)
bit6-31 预留(置 0)

3.1.3 UDP 专用字段

注意:当使用 UDP 承载时(消息标识 bit5 为 1),在消息头和消息体之间需要添加一个 64 字节的 key 字段。

字段 字节数 说明
UDP Key 64 用于 UDP 报文的鉴权,通过 getip 接口获取

使用规则

  • 仅在 UDP 承载时需要添加此字段
  • Key 长度固定为 64 字节
  • Key 通过调用 getip 接口(type=4)获取
  • 服务器会对每个 UDP 消息进行 Key 的合法性检查

3.2 消息体结构

消息体采用 TLV(Type-Length-Value)格式,可包含多个 TLV 单元,每个 TLV 单元由以下三部分组成:

字段 字节数 说明
Type(类型) 2 前 12 位表示字段含义,后 4 位表示数据类型
Length(长度) 2 Value 字段的长度
Value(值) 可变 实际的字段值

3.2.1 数据类型定义

数据类型占用 Type 字段的后 4 位,定义如下:

类型值 数据类型 说明
0000 整数 有符号整数
0001 浮点数 IEEE 754 标准浮点数
0002 布尔值 0x00 表示 false,0x01 表示 true
0003 ASCII 字符串 可打印 ASCII 字符
0004 二进制数据 任意二进制数据
0005 Unicode 字符串 UTF-8 编码的字符串

3.2.2 字段含义定义

字段含义占用 Type 字段的前 12 位,范围 0-4095,分为以下几类:

范围 类型 说明
0-15 预留 保留给未来使用
16-255 控制信令 用于设备与服务器之间的控制通信
256-2047 业务字段 用于设备上报业务数据
2048-4095 预留 保留给未来使用
搜索
AirMaster 实时解答