字节序号 | bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 | 示例解析0x7e001700000159de000d03575432083139393931393939fcef |
byte0 | 包头:7E | 7E包头 |
byte1 | 0表示帧数据长度以实际数据长度为准;
1-65535范围:表示整包数据长度(7E到EF的总长度-2)
比如:0x0017=23字节, 加上包头和包尾两字节, 总长度25字节 | 0x00 |
byte2 | 0x17 |
byte3 | 流水号,每次一帧数据自动加1,避免接收重复的数据.相同流水号的数据为重复数据应做丢弃 | 流水号0x00 |
byte4 | 高4位表示总包数,
若该包数据不希望对应应答则填0x00 | 低四位表示当前是第几包.
若该包数据不希望对应应答则填0x00 | 0x00; 目前没有作用.以固定为00 |
byte5 | 标记数据来源,接收方将根据该标识做对应的回应.
0x01:手机端
0x02:蓝牙端
0x03:UART端
0x04:XXXX端
0x05:XXXX端
0x06:XXXX端 | 0x01手机端 |
byte6 | 指令唯一标志.0x59de表示蓝牙wifi配网 | 0x59 |
byte7 | 0xDE |
byte8 | 数据长度;表示从此开始到检验和的字节长度; 大端 | 0x000d=13;表示接下来的数据长度为13 |
byte9 |
byte10 | wifi名称的字节长度n | n为wifi名称的字节长度; 0x03表示长度为3 |
byte10+1 | wifi名称, utf8编码,不定长 | 0x575432的utf8编码为WT2, 即wifi名称为WT2 |
byte10+... |
byte10+n |
byte10+n+1 | wifi密码的字节长度:m | m为密码的字节长度, 0x08表示密码长度为8 |
byte10+n+1+1 | wifi密码, utf8编码,不定长 | 0x3139393931393939的utf8编码为19991999; 即wifi密码为19991999 |
byte10+n+1+... |
byte10+n+1+m |
byte10+n+1+m+1 | 检验和; 从byte1开始到此的字节相加之和, 然后最低8位. | 0xfc由此计算而来:(0x00+0x17+0x........+0x39) & 0xff |
byte10+n+1+m+2 | 包尾:EF | 0XEF为包尾 |