目录
一、事件概述
二、事件格式及参数
HCI_Connection_Request%20%E4%BA%8B%E4%BB%B6%E6%A0%BC%E5%BC%8F-toc" name="tableOfContents" style="margin-left:40px">2.1. HCI_Connection_Request 事件格式
2.2. BD_ADDR
2.3. Class_Of_Device
2.4. Link_Type
三、主机响应
3.1. ACL链接类型
3.2. SCO或eSCO链接类型
四、应用场景
4.1. 设备配对场景
4.2. 蓝牙文件传输场景
4.3. 蓝牙物联网设备连接场景
五、注意事项
5.1. 事件解析与参数校验
5.2. 连接策略与安全性要求
5.3. 资源管理与连接状态
5.4. 链路类型与响应命令
5.5. 事件屏蔽与自动接受
5.6. 角色转换与兼容性
5.7. 事件反馈与后续处理
HCI_Connection_Request 是蓝牙协议栈中一个非常重要的事件,事件代码为 0x04。主要用于指示有一个新的传入连接正在尝试建立。这个事件标志着蓝牙设备间通信过程中的一个关键环节,决定了是否接受新的连接请求,从而影响后续的数据传输等操作。
一、事件概述
HCI_Connection_Request事件用于指示有一个新的入站连接尝试正在建立。主机(Host)在接收到此事件后,可以根据链接类型(Link_Type)参数来决定是接受还是拒绝该连接请求。
二、事件格式及参数
HCI_Connection_Request%20%E4%BA%8B%E4%BB%B6%E6%A0%BC%E5%BC%8F" name="2.1.%C2%A0HCI_Connection_Request%20%E4%BA%8B%E4%BB%B6%E6%A0%BC%E5%BC%8F">2.1. HCI_Connection_Request 事件格式
HCI_Connection_Request 事件由事件代码(Event Code)和事件参数(Event Parameters)组成。
事件通常包含以下参数:
- BD_ADDR:蓝牙设备地址(Bluetooth Device Address),表示尝试建立连接的远程设备的地址。
- Class_Of_Device:设备类别(Class of Device),表示远程设备的类别信息,用于描述设备的主要功能和特性。
- Link_Type:链接类型,指示尝试建立的连接类型。可以是异步无连接链路(ACL,Asynchronous Connection-Less),也可以是同步面向连接链路(SCO,Synchronous Connection-Oriented)或其增强版(eSCO)。
2.2. BD_ADDR
BD_ADDR在蓝牙通信中用于唯一标识一个蓝牙设备。当本地蓝牙设备接收到HCI_Connection_Request事件时,会检查事件中的BD_ADDR来确定是哪个远程设备正在尝试建立连接。
本地蓝牙设备可以根据BD_ADDR来决定是否接受连接请求。例如,可以将BD_ADDR与已知设备列表或白名单进行比较,以确定是否允许连接。
2.3. Class_Of_Device
Class_Of_Device用于在蓝牙协议的事件参数中精确地传递设备类别信息。
- 0xXXXXXX:是一个占位符,表示实际的设备类别值。在实际通信中,这个值会被替换为发起连接请求的远程设备的实际设备类别。
- X:表示十六进制数字(0-9, A-F),每个X代表一个4位的二进制数(即半个字节)。
- 因此,整个设备类别值由6个十六进制数字组成,每个数字占4位,总共24位。
- 0x000000:一个特殊的值,表示“未知的设备类别”。当蓝牙设备没有提供其设备类别时,可能会使用这个值。
2.4. Link_Type
Link_Type在HCI_Connection_Request事件中用于指示发起连接请求的远程设备希望建立的链接类型。