【0x05】HCI_Disconnection_Complete事件详解
目录
一、事件概述
二、事件格式及参数
2.1. HCI_Disconnection_Complete事件格式
2.2. Status
2.3. Connection_Handle
2.4. Reason
三、事件处理流程
3.1. 事件接收
3.2. 参数解析
3.3. 后续操作
3.4. 日志记录与监控
四、使用场景与重要性
4.1. 使用场景
4.2. 重要性
五、注意事项
5.1. 命令参数准确性
5.2. 资源处理的完整性和安全性
5.3. 错误处理与恢复机制
5.4. 兼容性和互操作性考虑
5.5. 综合注意事项
HCI_Disconnection_Complete(连接断开完成)事件是蓝牙协议中的一个重要事件,事件代码为 0x05。该事件用于通知主机(Host)蓝牙连接已经终止。在蓝牙设备通信的整个生命周期中,连接的建立和断开都是关键环节,而这个事件主要聚焦于连接断开后的信息通知和后续处理。
一、事件概述
当蓝牙设备间的连接被断开时,HCI_Disconnection_Complete事件会被触发,并向主机(Host)报告断开的状态、连接句柄(Connection_Handle)以及断开的原因(Reason)。
特殊情况处理:
- CIS(Connectionless ISOchronous Stream)处理:如果Connection_Handle标识的是中心设备(Central)上的一个CIS,则无论断开是否成功,该CIS的句柄和相关数据路径都将保持有效。然而,如果它标识的是外围设备(Peripheral)上的一个CIS,并且Status为0(表示成功),则该CIS的句柄和相关数据路径将被删除。
- 其他类型连接的处理:对于任何其他类型的连接(如ACL连接),如果Status为0,则相应的句柄将被删除。
- LE ACL连接处理:如果Connection_Handle标识的是一个低功耗(LE)ACL连接,并且Status为0,则任何与该连接相关联的CS(Connection Slave Latency and Supervision Timeout)配置也将被删除。
- 物理链路失败:当物理链路失败时,将为物理链路上的每个逻辑通道返回一个HCI_Disconnection_Complete事件,其中包含相应的Connection_Handle作为参数。
二、事件格式及参数
2.1. HCI_Disconnection_Complete事件格式
HCI_Disconnection_Complete事件的格式通常遵循蓝牙核心规范中定义的标准结构。
HCI_Disconnection_Complete 事件的格式由事件代码(Event Code)和事件参数(Event Parameters)组成。
事件头(Event Code):0x05,HCI_Disconnection_Complete事件的唯一标识码,用于区分其他类型的事件。
事件参数:包含三个主要参数:Status、Connection_Handle和Reason。
2.2. Status
Status
参数用于指示断开连接操作的结果。
- 0x00:表示断开连接已成功发生。
- 0x01 到 0xFF:表示断开连接操作未能成功完成。蓝牙Controller错误代码全面概览_connect