文档介绍:目录
!未定义书签。
!未定义书签。
!未定义书签。
设备内部组网协议(或者MCU透传模式协议)错误!未定义书签。
通讯命令格式错误!未定义书签。
配对机制错误!未定义书签。
连(Option)
2B
1B
1~2B
1B
1B
3B
1B
1B
NB
2B
Fixheader
固定帧头,格式如下表
同步头
HeadOption
包长度(变长)
2Byte
1Byte
1~2Byte
同步头
0x5CFE
HeadOption:
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
预留
预留
预留
预留
CheckSu
m校验
广播类型链路
CRC校验
加密选项
typedefenum
{
OPTIONAL_ENCRYPT_BIT=(1<<0),OPTIONAL_CRC_BIT=(1<<1),
OPTIONAL_BROADCAST_DATALINK_BIT=(1<<2),OPTIONAL_CHECKSUM_BIT=(1<<3),
}OptionalBitsT;
包长度:长度包括本字节之后的所有数据的长度长度是1~2个字节
字节数
取值
长度范围
1
0x0~0x7F
0~127
2
0x0180~0x7FFF
128T6383
长度的编码方式参考MQTT:
如长度是321=(65+2*128),那么会被编码为两个字节,低字节为65+128=
可变包格式
可变包格式需要通过HeadOption来解析,格式如下表:
OptionBitO
OptionBit2
OptionBit1
OptionBit3
加密随机数
设备类型
设备编码
消息体……
CRC校验
Checksum
1Byte
1Byte
3Byte
2Byte
1Byte
异或随机数:
如HeadOption中的加密选项为0,那么加密随机数这个字节不存在,同时数据不会进行加
源设备信息:用于广播类型的数据链路,需要标识数据的来源。
CRC校验:
采用16bit的CRC算法,CRC算法参照附录。
CheckSum:
采用8Bit的和校验,用于对数据长度比较敏感,但是又需要进行数据校验的场景
设备编码和设备类型:
Payload中可能需要用到的内部设备Type和ID的定义:内部设备Type和设备ID在设备配对时由主设备分配给从设备,其中Type由主设备获取到从设备的DeviceType之后映射一个数值,并分配给从设备,建立映射关系。
ID的3字节构成为:
Byte3
Byte2
Byte1
随机数,避免不同子网的ID冲突
ID序号,由主设备维护
命令消息体
结构如下表
CMDkey
CMDID
Payload
1Byte
1Byte
NByte
CMDKey:
命令标识,主要作用是标识命令的类型以及编号,由主设备生成,发送给从设备,从设备将key返回给主设备,另外在还标识命令的类型
CMDKey
描述
备注
1
设备内部消息(组网、透传模式的内部消息)
这些命令没有重发机制,不能保障一定到达
2
Notify类消息
3
Broadcast类消息
4~31
预留reserved
32~255
动态分配的key,用于数据的转发、透传
此范围的命令如果没有回复会重发,重发一定次数后丢弃,所以此消息可能会多次到达
CMDID:命令码,1个字节
命令码
描述
1
配对请求
2
配对请求回应
3
设备启动通知
4
设备启动回应
5
WiFi就绪通知
6
WiFi断开通知
7
云就绪通知
8
云断开通知
9
WiFi上电通知
10
WiFi模块配置完成通知
11
退出WiFi模块配置
12
退出WiFi模块配置回应
13
重新配置WiFi模块
14
重新配置WiFi模块回应
15
设置WiFi模块串口波特率
16
设置WiFi模块串口波特率回应
17
查询WiFi模块串口波特率
18
查询WiFi模块串口波特率回应
WiFi模块消息起始
32
设备上线通知
33
WiFi配置完成通知
34
获取设备WiFi模块监控信息
35
获取设备WiFi模块监控信息回应
36
设置路由器信息
37
设置路由器信息的回应
38
删除子设备
39
删除子设备回应
40
获取在线设备列表
41