example/gap_le_advertisements: print extended advertisements

This commit is contained in:
Matthias Ringwald 2023-03-29 15:45:10 +02:00
parent c7361b2405
commit b1847fffde

View File

@ -241,23 +241,41 @@ static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packe
UNUSED(size);
if (packet_type != HCI_EVENT_PACKET) return;
bd_addr_t address;
uint8_t address_type;
uint8_t event_type;
int8_t rssi;
uint8_t length;
const uint8_t * data;
switch (hci_event_packet_get_type(packet)) {
case GAP_EVENT_ADVERTISING_REPORT:{
bd_addr_t address;
case GAP_EVENT_ADVERTISING_REPORT:
gap_event_advertising_report_get_address(packet, address);
uint8_t event_type = gap_event_advertising_report_get_advertising_event_type(packet);
uint8_t address_type = gap_event_advertising_report_get_address_type(packet);
int8_t rssi = gap_event_advertising_report_get_rssi(packet);
uint8_t length = gap_event_advertising_report_get_data_length(packet);
const uint8_t * data = gap_event_advertising_report_get_data(packet);
printf("Advertisement event: evt-type %u, addr-type %u, addr %s, rssi %d, data[%u] ", event_type,
event_type = gap_event_advertising_report_get_advertising_event_type(packet);
address_type = gap_event_advertising_report_get_address_type(packet);
rssi = gap_event_advertising_report_get_rssi(packet);
length = gap_event_advertising_report_get_data_length(packet);
data = gap_event_advertising_report_get_data(packet);
printf("Advertisement (legacy) event: evt-type %u, addr-type %u, addr %s, rssi %d, data[%u] ", event_type,
address_type, bd_addr_to_str(address), rssi, length);
printf_hexdump(data, length);
dump_advertisement_data(data, length);
break;
}
#ifdef ENABLE_LE_EXTENDED_ADVERTISING
case GAP_EVENT_EXTENDED_ADVERTISING_REPORT:
gap_event_extended_advertising_report_get_address(packet, address);
event_type = gap_event_extended_advertising_report_get_advertising_event_type(packet);
address_type = gap_event_extended_advertising_report_get_address_type(packet);
rssi = gap_event_extended_advertising_report_get_rssi(packet);
length = gap_event_extended_advertising_report_get_data_length(packet);
data = gap_event_extended_advertising_report_get_data(packet);
printf("Advertisement (extended) event: evt-type %u, addr-type %u, addr %s, rssi %d, data[%u] ", event_type,
address_type, bd_addr_to_str(address), rssi, length);
printf_hexdump(data, length);
dump_advertisement_data(data, length);
break;
#endif
default:
break;
}