GATT与服务介绍
点击链接,观看视频课程:
1、GATT基本介绍
GATT角色介绍
- 定义和管理输入/输出数据交换
GATT Client Server
Commend(命令)和Request(请求)的区别
Notification(通知)和Indication(指示)的区别
协议结构
- 协议/服务和特性之间的关系
属性
- 带有标签,可被寻址的数据
- 句柄:用于寻址
- 属性类型:可被公开的各种各样的数据类型
- 属性值:设备公开的状态信息
- 属性许可:包括使用许可,认证许可,授权许可
服务
- 主要服务:暴露设备的主要可用功能
- 次要服务:旨在由主要服务引用
- 扩展服务:当扩展A服务的时候,来保证其兼容性
- 结合服务:引用其他服务,融合在一起,成为其他组合的行为
特性characteristic由三个基本要素组成:
- 声明declaration:声明是一个特征的开始—性质(读取/写入/通知/指示/广播/命令/签名认证;数值句柄—特性值的存储位置;特性UUID)
- 值value:包含此特性的实际值
- 描述符descriptors:描述符包含此特性的附加信息或配置。附加信息;任何数量;任何顺序;可以是供应商特定的
GATT发现规程
- GATT程序定义了服务,特征及其描述符发现然后使用的标准方法
GATT客户端与服务端发起规程
2、心率服务介绍
工程目录
连接方式
- Heart Rate Server与ST BLE Sensor连接
心率服务特性表
Heart Rate Measuremen特性
- 用来发送心率结果,包含了标志位、心率值、能量消耗、RR间隔等。
- 心率测试值(必须存在):UINT8或UINT16
- 能量消耗域(可能存在):能量消耗表示自上次重置以来以千焦为单位的累计能量消耗。由于能量消耗是UINT16单位,可以表示的最大值是65535KJ。如果达到了最大值,那么字段值应该保持在0xFFFF,以便客户端能够意识到需要重置所消耗的能量字段
- RR间隔域(可能存在):代表的是心电图中两个R波之间的间隔,最大字节长度可能为7/8/9。心跳的传输间隔有服务端决定,用户不可配置,通常1s/次或10s/次
Characteristic Descriptors特性
- CCCD:客户特性配置描述符,用来打开或关闭心率通知
Body Sensor Location特性
- 该特性为可选特性,用于描述该装置的心率测量的预定位置,在连接中该值为静态不变的
Heart Rate Control Point特性
- 使客户端能够控制服务端行为
- C.1表示当能量消耗特性支持时,该控制点特性是强制的。该控制点写入0x01时,重启能量消耗统计
3、心率配置文件介绍
心率配置
- 角色:Heart Rate Sensor-GATT Server;Collector-GATT Client
心率服务的增加要求
- Service UUIDs AD Type:在广播数据中,心率Sensor应当在服务UUID的AD Type域中包含心率服务的UUID,增强互操作性
- Local Name AD Type:Heart Rate Sensor应当包括在广播数据或扫描响应数据中,增强用户体验
- GAP Device Name characteristic:Heart Rate Sensor应当支持Collector写设备名特性的性质
设备信息服务的增加要求
服务发现
- Collector用过GATT主服务发现规程,来发现心率服务(必须)和设备信息服务(非必须)。
- Collector通过GATT特性发现规程,来发现特性
- Collector通过GATT特性描述符发现规程,来发现特性描述符
推荐的广播参数
- 先进行快速广播
- 如果30s未连接,将进入慢速广播,以降低功耗
其他原则
- 广播间隔的设定,需要考虑到用户期待建立连接的时间
- Heart Rate Sensor应当接受任何合理的设定值,待主机完成服务发现、绑定等操作后,再选择请求改变合适的连接参数
- 一旦绑定建立,Heart Rate Sensor需要将设备放入白名单,并将广播过滤策略修改为只允许白名单的设备扫描和连接
- 前10s只允许绑定的设备进行连接,后面再允许其他设备扫描和连接
- 如果Sensor不再接触皮肤或者停止了心率活动,Sensor应当断开连接,然后重新允许其他collector的连接
4、ST自定义P2P服务
工程服务
连接方式
- P2P Server与P2P Client连接
- P2P Server与ST BLE Sensor建立连接
服务特性表
通讯序列
发布于 2020-10-27 10:02