目录
一、命令概述
二、命令格式及参数
2.1. HCI_Write_Default_Erroneous_Data_Reporting命令格式
2.2. Erroneous_Data_Reporting
三、生成事件及参数
3.1. HCI_Command_Complete事件
3.2. 状态码(Status)
四、命令执行流程
4.1. 命令发起阶段(主机端)
4.2. 命令接收与验证阶段(控制器端)
4.3. 命令执行阶段(控制器端)
4.4. 返回结果阶段
4.5. 主机处理响应阶段
4.6. 示例代码
五、命令使用场景
5.1. 蓝牙音频传输场景
5.2. 蓝牙文件传输场景
5.3. 蓝牙设备固件更新场景
六、注意事项
6.1. 参数范围与限制
6.2. 命令执行与结果检查
6.3. 对通信与功耗的影响
6.4. 设备兼容性与规范遵循
6.5. 其他注意事项
HCI_Write_Default_Erroneous_Data_Reporting
命令允许主机(Host)设置蓝牙BR/EDR(Basic Rate/Enhanced Data Rate)控制器在接收到错误数据时的报告行为。这个设置决定了控制器是否会在HCI数据包的状态标志中反映数据包的错误状态。
一、命令概述
当执行此命令时,蓝牙BR/EDR控制器会根据Erroneous_Data_Reporting
参数的值来决定是否在同步数据包的Packet_Status_Flag
中设置错误状态。这个设置不会影响已经存在的同步连接,仅对命令执行后新建立的连接有效。
- 如果Erroneous_Data_Reporting参数被设置为启用错误数据报告,那么当控制器接收到错误数据包时,它会在相应的HCI数据包的状态标志中设置Packet_Status_Flag,以指示数据包存在错误。
- 如果Erroneous_Data_Reporting参数被设置为禁用错误数据报告,那么即使控制器接收到错误数据包,它也不会在HCI数据包的状态标志中反映这一错误状态。
二、命令格式及参数
2.1. HCI_Write_Default_Erroneous_Data_Reporting
命令格式
HCI_Write_Default_Erroneous_Data_Reporting
命令遵循蓝牙核心规范中定义的HCI命令结构。
通常包括命令操作码(Opcode)、参数长度(Parameter Length)和参数(Parameters)三部分。
- 命令操作码(Opcode):
- OGF(操作码组字段):通常为0x03,表示这是HCI Control and Baseband commands的一部分。
- OCF(操作码命令字段):对于HCI_Write_Default_Erroneous_Data_Reporting命令,OCF为0x005B。
- 参数长度(Parameter Length):表示随后参数部分的字节数。对于此命令,参数长度通常为1个字节。
- 参数(Parameters):即要设置的Erroneous_Data_Reporting参数值。这个值决定了控制器的错误数据报告行为。
2.2. Erroneous_Data_Reporting
Erroneous_Data_Reporting参数用于指定当数据包出现错误时,蓝牙控制器是否应该在HC数据包的状态标志中设置Packet_Status_Flag
。这个参数的值决定了控制器的行为。
- 0x00:错误数据报告禁用(默认)。当设置为这个值时,蓝牙控制器在接收到错误数据包时,会在HCI数据包的状态标志中设置相应的错误状态。允许主机检测到这些错误数据包,并可以采取适当的行动,如重传、记录日志或通知用户。
- 0x01:错误数据报告启用。当设置为这个值时,蓝牙控制器在接收到错误数据包时,不会在HCI数据包的状态标志中设置错误状态。意味着主机不会收到关于这些错误数据包的通知。
- All other values Reserved for future use:除了0x00和0x01之外的所有值都保留给蓝牙核心规范的未来版本使用。
三、生成事件及参数
3.1. HCI_Command_Complete
事件
当HCI_Write_Default_Erroneous_Data_Reporting
命令执行完毕后,蓝牙控制器会生成一个HCI_Command_Complete
事件(除非该事件被屏蔽)。这个事件是HCI通信协议的一部分,用于通知主机命令已成功执行、遇到错误或需要进一步的响应。
-
事件代码:
HCI_Command_Complete
事件有一个固定的事件代码,用于标识它是一个命令完成事件。 -
参数长度:指定了随后参数部分的字节数。对于
HCI_Command_Complete
事件,参数长度通常包括状态码、命令操作码(Opcode)的返回部分