3

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

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

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

注 1:蓝牙标准似乎指定了一种不寻常的数据顺序,不是将每个广告报告一个接一个地打包(如事件描述所建议的那样),而是将每种类型的信息一个接一个地打包(即每个广告商的所有 Event_types ,然后是所有地址类型,然后是所有地址,依此类推,直到最后一个字段,所有 rssi 值)。我理解的好吗?

注意 2:我没有找到任何软件示例在一个事件中管理超过 1 个广告报告。这是否意味着现实世界的设备不使用该标准的此功能?

4

1 回答 1

2

你理解正确。

当有多个 (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 个 Event_Type(每个是 ADV_IND、ADV_DIRECT_IND 等之一)按照收到的顺序获取 3 个报告。

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

回答您的第二个问题:标准规定控制器可以将更多报告排队到一个事件中。也许您研究过的实现并没有这样做。

于 2014-10-09T10:55:49.480 回答