版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

接收端负责扫描广播信息,以第4小节中的被动扫描为例,其流程如下:


客户端也可以进行主动扫描,其流程如下:


GATT服务端广播流程:

Image Added

  1. 注册GATT APP ID,触发注册APP ID成功事件,此时可以设置GAP广播数据,以及广播扫描应答数据。
  2. 触发GAP广播数据设置完成事件和广播扫描应用数据设置成功事件。
  3. 检测到广播数据设置成功后,使能GAP广播。
  4. 触发GAP开始广播成功事件,表示已经开始广播了。
  5. 主动停止广播,触发停止广播成功事件。

GATT广播数据解析

参考Core spec V5.0,Vol3 → Part C → 11小节。

Image Added 

关于AD Type,在上面的Assigned Numbers文档有描述,在Common Data Types章节,以下是一个广播数据示例。

Image Added

以第一行0x02, 0x01, 0x06为例,0x02表示后面的数据长度为2,0x01表示这是一个标志数据,后面的0x06可以参考Core spec的补充文档查找其含义。

关于device name,广播数据中的device name是用于显示在扫描后的local name中的,而在程序中设置的name是用于在BLE调试助手上显示的。比如XM的所有蓝牙配网设备用BLE调试助手搜索出来的名字都是XM,但由于每个设备广播数据中的device name都不一样,所以在APP上还是可以区分出设备类型。

关于广播数据的长度,可参考Core spec V5.0,Vol6 → Part B → 2.3.1小节。广播数据区分legacy pdu和extended pdu,对应传统蓝牙(4.0, 4.2)和蓝牙5.0(2.3.4小节)。蓝牙5.0通过fragmentation技术,可以发送最大1650字节的广播数据。在设备广播参数时可以指定广播类型,从而决定广播数据包长度。