目录
3.3. Num_Supported_Advertising_Sets
HCI_LE_Read_Number_of_Supported_Advertising_Sets命令是低功耗蓝牙(BLE)核心规范中定义的一个HCI(Host Controller Interface)命令,用于查询BLE控制器支持的广播集(Advertising Sets)的数量。
一、命令概述
BLE技术允许设备通过广播数据来被其他设备发现和识别。广播集是BLE中用于存储和发送广播数据的一组配置,包括广播数据的内容、广播参数等。每个BLE控制器可能支持多个广播集,以便设备可以同时进行不同类型的广播。
BLUETOOTH CORE SPECIFICATION Version 5.4 | Vol 4, Part E page 2468
HCI_LE_Read_Number_of_Supported_Advertising_Sets 命令用于读取广播控制器在同一时间内支持的最大广播集数量。广播集在BLE设备中扮演着重要角色,它们用于存储和发送广播数据,以便其他BLE设备可以发现和识别该设备。通过了解广播控制器支持的最大广播集数量,主机可以更有效地管理广播活动,优化设备性能和资源使用。
注意事项:支持的广播集数量不是固定的,控制器可以随时更改它,因为用于存储广播集的内存也可以用于其他用途。
二、命令格式
HCI_LE_Read_Number_of_Supported_Advertising_Sets命令的格式通常遵循BLE核心规范中定义的HCI(Host Controller Interface)命令结构。
其格式通常包括操作码(OpCode)和可能的其他参数(如果有的话,根据具体实现而定)。操作码用于唯一标识该命令,以便BLE控制器能够正确解析和执行。
- 操作码(OpCode):对于HCI_LE_Read_Number_of_Supported_Advertising_Sets命令,其操作码是特定的,用于告诉BLE控制器这是一个读取支持广播集数量的请求。完整的操作码是OGF和OCF的组合,但在实际发送时,由于OGF在BLE命令中通常是固定的(0x08),所以有时只明确给出OCF。
- 组域(OGF, Opcode Group Field):对于BLE相关的命令,OGF通常为0x08或0x20,表示该命令属于LE(低功耗)控制器命令组。
- 命令域(OCF, Opcode Command Field):对于HCI_LE_Read_Number_of_Supported_Advertising_Sets命令,OCF是特定的操作码字段,用于标识该命令。但该值可能会随着规范的更新而发生变化。
- 参数长度(Parameter Length):对于HCI_LE_Read_Number_of_Supported_Advertising_Sets命令,它通常不需要额外的参数,因此参数长度可能为零或未定义。
- 命令参数:对于此命令,通常不需要额外的参数。它直接由OGF和OCF组成,用于请求控制器返回支持的最大广播集数量。
三、返回事件和参数说说明
当HCI_LE_Read_Number_of_Supported_Advertising_Sets命令执行完成后,蓝牙主机控制器会生成一个HCI_Command_Complete事件(除非该事件被屏蔽)。这个事件是HCI中用于指示命令执行结果的标准机制。
3.1. HCI_Command_Complete事件格式
HCI_Command_Complete事件通常包含以下字段:
-
事件代码:这是一个固定的值,用于标识该事件为命令完成事件。
-
参数总长度:表示随后跟随的参数字节数。
-
命令操作码:这是之前发送的命令的操作码,用于确认该事件是对哪个命令的响应。
-
返回参数:这取决于具体的命令。对于HCI_LE_Read_Number_of_Supported_Advertising_Sets命令,返回参数将包括支持的最大广播集数量。
-
状态码:表示命令执行的结果。0x00表示成功,其他值表示错误。
3.2. 状态码
Status表示命令是否成功执行。如果命令成功,状态码通常为0x00(表示成功)。而0x01到0xFF的范围表示各种可能的失败状态。蓝牙Controller错误代码全面概览-CSDN博客