目录
HCI_LE_Remove_Advertising_Set命令是低功耗蓝牙(BLE)核心规范中定义的一个关键HCI(Host Controller Interface)命令。该命令的主要功能是删除或移除BLE控制器中的一个广播集。广播集是BLE设备在进行广播时所使用的一组配置参数,包括广播数据、广播间隔、广播类型等。通过删除不再需要的广播集,BLE设备可以释放相应的资源,以便更高效地进行其他广播活动。
一、命令概述
HCI_LE_Remove_Advertising_Set命令用于从控制器中移除一个广播集。在BLE技术中,广播集是一组广播参数和数据的集合,用于定义设备如何进行广播。通过移除广播集,设备可以停止发送特定的广播数据,从而节省能源或更新广播信息。
该命令通常包含一个或多个参数,其中最重要的是Advertising_Handle。这个参数是一个唯一的标识符,用于指定要移除的广播集。控制器使用这个句柄来查找并移除对应的广播集。
- Unknown Advertising Identifier(0x42):如果与Advertising_Handle参数对应的广播集不存在,则控制器会返回此错误代码。这通常意味着提供的句柄无效或已被其他广播集使用。
- Command Disallowed(0x0C):如果广播集上的广播或周期性广播已启用,则控制器会返回此错误代码。在尝试移除正在使用的广播集之前,必须先禁用其广播功能。
二、命令格式
HCI_LE_Remove_Advertising_Set命令详细格式通常会在蓝牙核心规范中进行定义。以下是对该命令格式的一般性描述,但请注意,具体实现可能会因不同的蓝牙协议栈或芯片厂商而有所差异。
2.1. 一般格式
HCI_LE_Remove_Advertising_Set命令的格式通常包括以下几个部分。
- 操作码(Opcode):由操作码组字段(OGF)和操作码命令字段(OCF)组成。
- 参数长度(Parameter Length):表示紧随命令操作码之后的参数的总长度。对于HCI_LE_Remove_Advertising_Set命令,这个长度通常较短,因为只需要一个广播句柄作为参数。
- 广播句柄(Advertising_Handle):这是一个唯一的标识符,用于标识要移除的广播集。广播句柄是在创建广播集时由蓝牙协议栈分配的。
2.2. 示例格式
以下是一个简化的示例格式,用于说明HCI_LE_Remove_Advertising_Set命令的可能格式:
- 操作码:0x08|0xXXXX(其中0xXXXX是OCF的具体值,需要在蓝牙核心规范中查找)
- 参数长度:1字节(因为广播句柄是1字节长的)
- 广播句柄:1字节(例如,0x01)
在实际发送时,命令的二进制表示可能如下(以十六进制为例):
08 3C 01 01
三、命令参数详细说明
3.1. 操作码
- 如上文所述,该字段用于标识命令的类型。在发送HCI_LE_Remove_Advertising_Set命令时,主机需要确保操作码的正确性,以便BLE控制器能够正确解析和执行该命令。
3.2. 参数长度
- 该字段表示后续参数的总长度。对于HCI_LE_Remove_Advertising_Set命令来说,参数长度通常为1字节,这是因为广博句柄本身是一个1字节的标识符。
3.3. Advertising_Handle(广播句柄)
该字段是命令的核心参数,用于指定要删除的广播集。主机在发送该命令时,需要确保广播句柄的有效性,即该句柄必须对应于一个已经存在且不再需要的广播集。
-
大小:1 octet(1字节),表示广播句柄的大小是1个字节(8位)。在二进制或十六进制表示中,1个字节可以表示256个不同的值(从0x00到0xFF)。
-
范围:0x00 to 0xEF(从0到239的十进制表示)。这个范围限制了广播句柄可以表示的不同广播集的数量。
</