GATT协议
GATT generic Attributes的缩写,中文是通用属性,是低功耗蓝牙设备之间进行通信的协议。
GATT定义了一种多层的数据结构,已连接的低功耗蓝牙设备用它来进行通信。
GATT基于ATT。see Bluetooth Core System Architecture for block diagram and explanations)
GATT定义的多层数据结构简要概括起来就是服务(service)可以包含多个特征(characteristic),每个特征包含属性(properties)和值(value),还可以包含多个描述(descriptor)。它形象的结构如下图:
服务,是由有关该服务的多个特质,以及该服务和其他服务的关系组成。特征,由特征的名字(这是通俗说法,实际上使用UUID来唯一标识每个特征的),特征的值,特征的属性(用来表明该特征可接受的操作,和用来声明与安全相关的权限),以及可选的一个或多个的描述器(与特征相关的metadata或configuration flags)组成。
而图中的profile是什么呢。profile不属于实际用于通信的数据结构的组成部分,在这里它是一组服务的集合,这些服务被人为地组合起来并定义成一个特定的使用场景,用来声明一个低功耗蓝牙设备可以做的事情。两个设备要达到兼容要求两者支持同一种使用场景(profile)。