1.GATT分析
- 1.profole:可以理解为一种规范,一个标准的通信协议,profile存在于从机中。蓝牙组织规定了一系列的标准profile,例如防丢器,心率计等。每个profile中会包括多个Service,每个Service代表从机的一种能力。
- 2.Service:可以理解为一个服务,在ble从机中,通常有多种服务,比如电量信息服务,系统信息服务等,每个Service中又包含多个Characteristic特征值。每个具体的特征值才是ble通信的主题。比如当前的电量是80%,所以会通过电量的特征值存储在从机的profile中,这样主机即也可以通过这个特征值来读取数据。
- 3.特征值:ble通信是通过特征值来完成的,可以理解为一个标签,通过这个标签可以获取或者写入想要的内容。
- 4.UUID:刚才我们提到的服务和特征值都需要一个唯一的UUID来标识。
- 5.GATT:这个是管理数据的,数据的收发都要经过这一层来处理
- 6.GAP:位于gatt的下层
- 7.ATT:可以不用考虑
- 举例分析:现有一个活动追踪的BLE设备和一个支持BLE的Android设备。Android设备支持Central角色,而BLE设备支持peripheral角色。创建一个BLE连接需要这两个角色都存在,都仅支持Central角色或者都仅支持peripheral角色则无法建立连接。当连接建立后,它们之间就需要传输GATT数据。谁做server,谁做client,则取决于具体数据传输的情况。例如,如果活动追踪的BLE设备需要向 Android设备传输sensor数据,则活动追踪器自然成为了server端;而如果活动追踪