版本比较

标识

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

...

GATT不仅使用ATT来存储和发送数据,还使用ATT来发送命令。

GATT服务端工作流程

  1. 初始化:初始化蓝牙控制器→ 使能蓝牙控制器→ 使能蓝牙协议栈。
  2. 注册GATT callback:gatts_event_handler,注册GATT回调事件。
  3. 注册GAP callback:gap_event_handler,注册GAP回调事件。
  4. 注册GATT APP ID:APP ID用于协议栈区分不同的profile。
  5. 设置MTU:参考Core spec V5.0,搜索MTU。
  6. 处理各种回调事件,包括GAP的回调事件和GATT的回调事件。

Image Added

GAP事件包括以下几种:

  1. 广播数据设置成功。
  2. 开始广播成功,此时可以用BLE调试助手搜索到对应的广播热点。
  3. 停止广播成功。
  4. 更新连接参数事件。

GATT事件包括以下几种:

  1. GATTS注册事件,表示注册GATT APP ID成功,此时可以拿到这个profile的句柄。
  2. 调用profile的回调函数,继续处理GATT事件,比如特征值读写事件。

GATT服务端广播流程

下载V5.0的pdf文档后,GAP规范的章节在Vol 6 → Part D → 3 Advertising State。

以非定向广播为例,其广播流程如下:

Image Added


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

Image Added


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

Image Added