Generic Attribute Profile (GATT)
GAP 层负责连接相关的功能,GATT 主要是负责在两个已经连接的设备之间进行交互数据。GAP 层把 BLE 设备区分为主机 Master(Central)和从机 Slave(Perpherial),在 GATT 层则区分为 Server 和 Client 。客户端读取和写入存储在服务端的特征值( Characteristics )。
Server 该设备包含由 GATT 客户端读取或写入的 characteristic。
Client 从 GATT 服务器读取或写入数据的蓝牙设备。
图1. Server 和 Client
GATT 层的 Profile、Service、Characteristics、Attributes 概念一定要深入理解,因为一旦建立连接后,不管是嵌入式端还是应用端进行数据交互的都是这些概念。为了帮助理解,抽象以下包含关系:
图2. GATT 层四种概念之间的抽象包含关系
如图 2 ,一个或者多个 Characteristic 组成一个 Service。一个多个 Service 组成 Profile。Characteristic 又由多个 Attributes 组成。每个 Attribute 由包含 Handle、Type、Permissions 三个属性。
下面着重理解 Characteristic,它是数据交互的最终实体,每个特征包含以下 4 个 Attribute...