--- monitor/bt.h | 14 ++++++++++++++ monitor/packet.c | 21 +++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/monitor/bt.h b/monitor/bt.h index ecf3782c9..e14c1771f 100644 --- a/monitor/bt.h +++ b/monitor/bt.h @@ -3140,6 +3140,20 @@ struct bt_hci_evt_le_chan_select_alg { uint8_t algorithm; } __attribute__ ((packed)); +#define BT_HCI_EVT_LE_PER_ADV_SYNC_TRANS_REC 0x18 +struct bt_hci_evt_le_per_adv_sync_trans_rec { + uint8_t status; + uint16_t handle; + uint16_t service_data; + uint16_t sync_handle; + uint8_t sid; + uint8_t addr_type; + uint8_t addr[6]; + uint8_t phy; + uint16_t interval; + uint8_t clock_accuracy; +} __attribute__ ((packed)); + #define BT_HCI_ERR_SUCCESS 0x00 #define BT_HCI_ERR_UNKNOWN_COMMAND 0x01 #define BT_HCI_ERR_UNKNOWN_CONN_ID 0x02 diff --git a/monitor/packet.c b/monitor/packet.c index 64f75cf8e..8e5219bef 100644 --- a/monitor/packet.c +++ b/monitor/packet.c @@ -9788,6 +9788,24 @@ static void le_chan_select_alg_evt(const void *data, uint8_t size) print_field("Algorithm: %s (0x%2.2x)", str, evt->algorithm); } +static void le_per_adv_sync_trans_rec_evt(const void *data, uint8_t size) +{ + const struct bt_hci_evt_le_per_adv_sync_trans_rec *evt = data; + + print_status(evt->status); + print_field("Handle: %d", evt->handle); + print_field("Connection handle: %d", evt->handle); + print_field("Service data: 0x%4.4x", evt->service_data); + print_field("Sync handle: %d", evt->sync_handle); + print_field("SID: 0x%2.2x", evt->sid); + print_peer_addr_type("Address type:", evt->addr_type); + print_addr("Addres:", evt->addr, evt->addr_type); + print_le_phy("PHY:", evt->phy); + print_field("Periodic advertising Interval: %.3f", + 1.25 * evt->interval); + print_clock_accuracy(evt->clock_accuracy); +} + struct subevent_data { uint8_t subevent; const char *str; @@ -9871,6 +9889,9 @@ static const struct subevent_data le_meta_event_table[] = { le_scan_req_received_evt, 8, true}, { 0x14, "LE Channel Selection Algorithm", le_chan_select_alg_evt, 3, true}, + { 0x18, "LE Periodic Advertising Sync Transfer Received", + le_per_adv_sync_trans_rec_evt, 19, + true}, { } }; -- 2.24.1