3

Bluetooth standard V4.0 [vol. 2, 7.7.65.2] allows the controller to "queue advertising reports and send information from multiple devices in one LE Advertising Report event".

To manage this feature, the HCI protocol includes, among the Event parameters, the field Num_Reports (with values between 1 and 25).

In case Num_reports is > 1, how the Event parameters are organized in the event packet received through HCI?

Note 1: The Bluetooth standard seems to specify an unusual ordering of the data, not packing each advertising report after the other (as suggested by the event description), but packing instead each type of information after the other (i.e. all Event_types for each advertiser, followed by all Address types, then all addresses, and so on till last field, with all rssi values). Do I understand well?

Note 2: I didn't find any software example managing more than 1 advertising report in one single event. Does it mean that this feature of the standard isn't used by real-world devices?

Luca Rodda
  • 43
  • 1
  • 6

1 Answers1

2

You understand correctly.

When there are more (Num_Reports > 1) advertising reports packed into one event, these parameters are contained by the event:

Subevent_Code,
Num_Reports,
Event_Type[i],
Address_Type[i],
Address[i],
Length[i],
Data[i],
RSSI[i]

So for example if Num_Reports = 3, then follow 3 Event_Type (each being one of ADV_IND, ADV_DIRECT_IND etc.) for the 3 reports, in the order they were received.

The same order is preserved for all other parameters marked with [i].

To answer your second question: the standard says the controller may queue more reports into one event. Perhaps the implementations you have looked into don't do it.

Bogdan Alexandru
  • 5,394
  • 6
  • 34
  • 54