以下为项目中自定义的各种协议(与app端同步)
蓝牙自定义协议说明:
手机手动链接到设备后,设备不会主动上报数据。需要手机激活设备也就是需要对时开启上报(注册指令)
※ 1.以下指令均为十六进制数据形式
※ 2. 校验和(BCD)为除帧头、结束标志的其他数据累加和,转为四位BCD码
注册指令
App发送:
帧头 指令类型 数据长度(BCD) 状态 时间(BCD) 校验和(BCD) 结束
68 01 00 08 01 20 15 06 30 12 45 25 xx xx 16
主板回码:68010009000000000101000101000016
帧头 指令类型 数据长度(BCD) 设备标识 状态 校验和 结束
68 01 00 09 0000000001010001 01 xx xx 16
手机根据心跳指令判断下面的设备是否在线如果不在线需要重新发送注册指令开启上报(必要时需要自动重连)
心跳指令:
主板发送:680200080000000001010001000016
帧头 指令类型 数据长度(BCD) 设备标识 校验和 结束
68 02 00 08 0000000001010001 xx xx 16
App回码:
帧头 指令类型 数据长度(BCD) 设备标识 状态 校验和 结束
68 02 00 09 0000000001010001 01 xx xx 16
设备开启以后通过主动上报指令发送给手机当前信息情况
主动上报数据指令:
主板发送:68050042000000000101000100322015122311234401000000000200000000030000000004000000000500000000000016
帧头 类型数据长度 设备标识 时间点 数据(等) 68 05 00 42 0000000001010001 00 32 20151223112344 01 00 00 00 00 02 00 00 00 00 03 00 00 00 00 04 00 00 00 00 05 00 00 00 00
校验和 结束
xx xx 16
数据:01:速度02:里程03:电压04:电量 这些数多是Float
01 00 00 00 00 :当前速度为 0
05:代表一些车子运行状态 需要时可以添加
App回码:
帧头 指令类型 数据长度(BCD) 设备标识 状态 校验和 结束
68 05 00 09 0000000001010001 01 xx xx 16
报警指令:
报警上报指令用于的速度和电量报警
主板发送:680300200000000001010001010000000020151223112344000016
设备标识 数据 时间点 校验和 结束
1 2 3 4 5 67 89101112 13 14 15 16 17 181920212223 24 25 26
68 03 0020 0000000001010001 01 00 00 00 00 20151223112344 xx xx 16
数据:01:超速报警 02:低电量报警
App回码:
帧头 指令类型 数据长度(BCD) 设备标识 状态 校验和 结束
68 03 00 09 0000000001010001 01 xx xx 16
速度上限设置
App发送:
设备标识 类型 数据 校验和 结束
68 07 0013 0000000001010001 01 00 0000 00 xxxx 16
数据:
01:设置上限速度 6KM/H 02:设置上限速度 10KM/H
03:设置上限速度 15KM/H 04:设置上限速度为特定值如 12KM/H
注:
“01”“02”“03”指令的数据部分可以不填也可以填入任意值,对设置没有影响
“04”指令的数据部分必须填入需要设定的速度值
数据为long int型
主板回码:68070009000000000101000101000016
帧头 指令类型 数据长度(BCD) 设备标识 状态 校验和 结束
68 07 00 09 0000000001010001 01 xx xx 16
安全行驶灯蓝牙控制协议
手机app端发送代码:
帧头 指令类型 数据长度(BCD) WS2812灯光RGB 灯光状态 校验和
68 09 00 06 XX XX XX 01 OR 02 XX XX
结束标志
16
指令说明:
XX XX XX分别代表颜色的RGB数值
01 OR 02:
01代表常亮
02代表呼吸
控制板要求:
控制板端需根据指令发送的RGB值修改安全行驶灯对应颜色和状态