目录
通用访问配置文件(GAP)定义了蓝牙设备如何相互发现和建立连接。在这个例子中,应用程序发现周围的蓝牙设备,并收集它们的设备类别(CoD)、页面扫描模式、时钟偏移量和接收信号强度指示(RSSI)。之后,请求每个设备的远程名称。在接下来的部分中,我们概述了蓝牙逻辑部分,即数据包处理程序如何处理异步事件和数据包。
1.蓝牙逻辑
蓝牙逻辑在数据包处理器内被实现为一个状态机。在这个例子中,以下状态按顺序经过:INIT
和ACTIVE。
在INIT中,开始查询扫描,应用程序转换为ACTIVE状态。
在ACTIVE中,将处理以下事件:
(1)GAP查询结果事件:BTstack提供统一的查询结果包含设备类别(CoD)、页面扫描模式、时钟偏移。RSSI和名称(来自EIR)是可选的。
(2)查询完成事件:远程名称是为没有提取名称的设备请求的。远程名称的状态可以是以下状态之一:REMOTE NAME REQUEST, REMOTE NAME INQUIRED, or REMOTE NAME FE