_____ 蓝牙协议框架
---- ATT(Attribute Protocol)属性层是GATT和GAP的基础,它定义了BLE协议栈上层的数据结构和组织方式。
服务器端通过 profile 来对应于不同的客户端,比如手机和平板。
一个 profile 可能包含多个服务,
每个服务 service 可以定义多个特征。
一个特征包含特征 id, 特征值,以及该特征的属性,比如允许读, 写。
uuid 通用唯一识别码service 和 characteristic 都有一个唯一的 uuid 来标识
服务器端要发送的数据是存放在特征值里面。
---- GAP 和 GATT 的功能是解析 LL 层的 payload。
GAP 负责设备的发现和连接,定义了设备如何广播、扫描、连接和断开连接
GATT 处理发送的数据,传输格式和方式,实现具体的服务以及特征值等
_____ esp32
官方例子里讲了如何使用蓝牙库,可以看到蓝牙协议是如何在库里实现的。
GATT Server API - ESP32 - — ESP-IDF Programming Guide v5.2.2 documentation
-
This is a GATT server demo and its tutorial. This demo creates a GATT service with an attribute table, which releases the user from the operation of adding attributes one by one. This is the recommended method of adding attributes (officially recommended).
-
This is a GATT server demo and its tutorial. This demo creates a GATT service by adding attributes one by one as defined by Bluedroid. The recommended method of adding attributes is presented in the example below.