Bluetooth BLE-HCI LE广告报告事件数据格式

Bluetooth BLE-HCI LE广告报告事件数据格式,bluetooth,bluetooth-lowenergy,hci,Bluetooth,Bluetooth Lowenergy,Hci,蓝牙标准V4.0[第2卷,7.7.65.2]允许控制器“在一个LE广告报告事件中对广告报告进行排队并从多个设备发送信息” 为了管理此功能,HCI协议在事件参数中包括字段Num_Reports(值介于1和25之间) 如果Num_reports>1,则如何在通过HCI接收的事件数据包中组织事件参数 注1:蓝牙标准似乎规定了数据的特殊顺序,不是将每个广告报告依次打包(如事件描述所示),而是将每种类型的信息依次打包(即每个广告客户的所有事件类型,然后是所有地址类型,然后是所有地址,依此类推,直到最后一个

蓝牙标准V4.0[第2卷,7.7.65.2]允许控制器“在一个LE广告报告事件中对广告报告进行排队并从多个设备发送信息”

为了管理此功能,HCI协议在事件参数中包括字段Num_Reports(值介于1和25之间)

如果Num_reports>1,则如何在通过HCI接收的事件数据包中组织事件参数

注1:蓝牙标准似乎规定了数据的特殊顺序,不是将每个广告报告依次打包(如事件描述所示),而是将每种类型的信息依次打包(即每个广告客户的所有事件类型,然后是所有地址类型,然后是所有地址,依此类推,直到最后一个字段,以及所有rssi值)。我理解得好吗


注2:我没有发现任何软件示例在一次事件中管理超过1份广告报告。这是否意味着该标准的此功能未被实际设备使用?

您理解正确

当有多个(Num_Reports>1)广告报告打包到一个事件中时,事件包含以下参数:

Subevent_Code,
Num_Reports,
Event_Type[i],
Address_Type[i],
Address[i],
Length[i],
Data[i],
RSSI[i]
因此,例如,如果Num_Reports=3,则按照收到报告的顺序,对这3份报告遵循3个事件类型(每个事件类型都是ADV_IND、ADV_DIRECT_IND等中的一个)

对于标有
[i]
的所有其他参数,保留相同的顺序

回答你的第二个问题:标准说控制器可能会将更多的报告排入一个事件队列。也许你所研究的实现没有做到这一点