BLE Report Format Data Format - HCI LE
Bluetooth standard V4.0 [vol. 2, 18.104.22.168] allows the controller to "queue advertising reports and send information from multiple devices in one LE Advertising Report event".
To control this function, the HCI protocol includes among the Event parameters a Num_Reports field (with values from 1 to 25).
In case Num_reports> 1, how are the event parameters organized in the event packet received via HCI?
Note 1: The Bluetooth standard seems to indicate an unusual order of data, rather than packing each ad report after another (as suggested by the event description), but instead packing each type of information after another (i.e. all Event_types for each advertiser followed by all types of addresses, then all addresses, etc. until the last field, with all rssi values). Do I understand well?
Note 2: I have not found any example of software managing more than one ad report in one event. Does this mean that this function of the standard is not used by real devices?
source to share
You understand correctly.
When there are more (Num_Reports> 1) advertising reports packed into one event, these parameters are contained in 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 of which is one of ADV_IND, ADV_DIRECT_IND, etc.) for 3 reports in the order they were received.
The same order is maintained for all other parameters checked
To answer your second question, the standard says that a controller can queue more reports in a single event. Perhaps the implementations you've learned don't do this.
source to share