目录
一、命令概述
二、命令格式及参数说明
2.1. HCI_Change_Connection_Packet_Type 命令
2.2. Connection_Handle
2.3. Packet_Type
三、返回事件及参数说明
3.1. HCI_Command_Status 事件
3.2. HCI_Connection_Packet_Type_Changed 事件
四、命令执行流程
4.1. 命令发起端(主机端)
4.2. 蓝牙控制器端
4.3. 主机端(接收结果后)
4.4. 示例代码
五、使用场景
5.1. 音频传输优化
5.2. 数据传输效率提升
5.3. 蓝牙设备兼容性调整
六、注意事项
6.1. 操作码与参数准确性
6.2. 连接状态与数据包类型支持
6.3. 设备兼容性
6.4. 命令执行后果与影响
6.5. 错误处理与恢复机制
6.6. 其他注意事项
HCI_Change_Connection_Packet_Type
命令是用于改变当前已建立连接所使用的数据包类型的命令。这个命令允许动态修改当前连接,以支持不同类型的用户数据。
一、命令概述
HCI_Change_Connection_Packet_Type
命令允许更改已建立连接的数据包类型。有助于根据用户需求动态调整连接属性。Packet_Type
参数通过指定链路管理器可以使用的数据包类型,从而允许主机控制连接的通信效率和质量。
- 命令参数:
Connection_Handle
:表示要修改的数据包类型的连接的句柄。Packet_Type
:指定链路管理器可以用于该连接的数据包类型。主机不应指定本地控制器不支持的数据包类型。
- 返回参数:无
二、命令格式及参数说明
2.1. HCI_Change_Connection_Packet_Type 命令
HCI_Change_Connection_Packet_Type 命令遵循蓝牙HCI命令的一般格式。
主要由命令操作码(OCF)和参数部分组成。
- HCI_type:0x01(表示这是一个HCI命令包)。
- OpCode:
- OGF:链路控制命令(Link Control commands)的OGF为0x01。
- OCF:对于“HCI_Change_Connection_Packet_Type”命令,其OCF值为0x0F。
- ParamLength:表示后续参数的总长度。
- Paramas:
- Connection_Handle:连接句柄,用于唯一标识要更改数据包类型的蓝牙连接。
- Packet_Type:新的数据包类型,指定了更改后的数据包类型。数据包类型的具体值取决于蓝牙协议的定义,可能包括不同的传输模式、数据速率和功耗等特性。
2.2. Connection_Handle
Connection_Handle用于指定要修改数据包类型的连接。在整个蓝牙设备的连接管理体系中起到定位特定连接的作用。
Connection_Handle的取值范围是从 0x0000 到 0x0EFF。这个参数用于唯一标识一个蓝牙连接。在蓝牙设备的连接管理系统中,每一个建立的连接都会被分配一个这样的 Connection_Handle 值。
2.3. Packet_Type
Packet_Type 参数用于规定不同链路类型(ACL 链路类型和 SCO 链路类型)下可使用的数据包类型,其大小为 2 个字节,通过不同的比特位来进行相应设置与定义。
对于 ACL 链路类型,Packet_Type
参数的每一位都代表了一种可能的数据包类型。
- 位 1(2-DH1):不应使用。
- 位 2(3-DH1):不应使用。
- 位 3:忽略;无论此位是否设置,DM1 都可使用。
- 位 4(DH1):可使用。
- 位 8(2-DH3):不应使用。
- 位 9(3-DH3):不应使用。
- 位 10(DM3):可使用。
- 位 11(DH3):可使用。
- 位 12(2-DH5):不应使用。
- 位 13(3-DH5):不应使用。
- 位 14(DM5):可使用。
- 位 15(DH5):可使用。
- 所有其他位:保留供将来使用。
对于 SCO 链路类型,Packet_Type
参数只定义了