健康尺蓝牙广播通信协议
| 1.广播最大字节是31个字节 2.蓝牙名称也占用广播字节数,一个字符是一个字节 3.uuid也占用广播字节。uuid类似于身份证号。如果广播字节数不够可以删除掉uuid,只保留用户自定义内容和蓝牙名称 4.广播速率:50ms发送一次 5. 为了区分一个房间中有多个尺子,导致用户不知道连接的是哪个的问题。我们将mac地址的后两位转成数字展示在名称后面做区分 |
设备名称
产品蓝牙名称:Tabby
定义
| 名称 | 解释 |
| M | 手机APP程序,手机操作系统为Android和ios两种。文档中为了便捷采用缩写M。 |
| H | 硬件设备,文档中为了便捷采用缩写H。 |
蓝牙通讯协议数据结构
数据包由mac地址和数据位构成如表1-1所示,其中各部分分别为:
帧头:0XAA
mac地址:mac地址按照正序展示
硬件版本号:数据长度FFFF,前面三个F代表硬件代号,最后一个F代表硬件版本号
固件版本号:范围是0~255。只展示版本号的最后一位,比如v1.0.5则展示为5
命令代码:通过该字段标识命令。
数据位:需要传递的参数,长度范围是0-252字节。
校验位:硬件版本号、固件版本号、控制字、数据位的所有字节异或所得的值。
帧 尾:0x55。
总计数据长度:7(名称)+ 18 = 25
表1-1 蓝牙通讯协议数据结构
| 命名 | 帧头 | mac地址 | 硬件版本号 | 固件版本号 | 控制字 | 数据位 | 校验位 | 帧尾 |
| 字节 | 1 | 6 | 2 | 1 | 1 | 3 | 1 | 1 |
| 案例 | 0xAA | […] | 0x00FX | 0xXX | 0xXX | […] | 0xXX | 0x55 |
| 描述 | 定值 | 可变 | 可变 | 可变 | 可变 | 定值 |
固件端发送移动端的命令
| 命令代码 | 说明 | 链接章节 |
| 0x01 | 蓝牙软尺开始测量时广播的数据 | |
| 0x x2 | 点击蓝牙软尺上的确认按钮广播出的数据 | 数据确认 |
固件端广播测量数据
当蓝牙软尺测量时发出的广播数据
数据位分为测量长度和单位,共3位
测量长度:共两位,第一位代表整数位、第二位代表小数位。
单位:共一位,00代表厘米(cm),11代表英寸(in)
H→M尺子序号为291发送测量长度值为33.5cm
AA 11 22 33 44 55 66 01 01 21 05 00 xx 55
| 帧头 | mac地址 | 硬件版本号 | 固件版本号 | 控制字 | 数据位 | 校验位 | 帧尾 |
|---|---|---|---|---|---|---|---|
| AA | 11 22 33 44 55 66 | 00F0 | 01 | 01 | 21 05 00 | xx | 55 |
H→M尺子序号为18发送测量长度值为33.05in
AA 11 22 33 44 55 66 01 01 21 05 11 xx 55
| 帧头 | mac地址 | 硬件版本号 | 固件版本号 | 控制字 | 数据位 | 校验位 | 帧尾 |
|---|---|---|---|---|---|---|---|
| AA | 11 22 33 44 55 66 | 00F0 | 01 | 01 | 21 05 11 | xx | 55 |
固件端广播确认数据
点击蓝牙软尺上的确认按钮发出此数据
控制字:一个字节
bit[4~7]:开机后为0,按一次确认按钮这个值加一,到F后值变为0.
bit[0~3]:值恒为2,代表点击了确认数据
数据位分为测量长度和单位,共3位
测量长度:共两位,第一位代表整数位、第二位代表小数位。
单位:共一位,00代表厘米(cm),11代表英寸(in)
H→M尺子序号为291发送测量长度值为33.5cm
AA 11 22 33 44 55 66 01 02 21 05 00 xx 55
| 帧头 | mac地址 | 硬件版本号 | 固件版本号 | 控制字 | 数据位 | 校验位 | 帧尾 |
|---|---|---|---|---|---|---|---|
| AA | 11 22 33 44 55 66 | 00F0 | 01 | x2 | 21 05 00 | xx | 55 |
H→M尺子序号为18发送测量长度值为33.05in
AA 11 22 33 44 55 66 01 02 21 05 11 xx 55
| 帧头 | mac地址 | 硬件版本号 | 固件版本号 | 控制字 | 数据位 | 校验位 | 帧尾 |
|---|---|---|---|---|---|---|---|
| AA | 11 22 33 44 55 66 | 00F0 | 01 | x2 | 21 05 11 | xx | 55 |
更多推荐
所有评论(0)