From 366c5ac8cad5ee4b41898445c86ab42ee7813147 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sat, 10 Nov 2012 20:27:14 +0100 Subject: [PATCH] monitor: Add some missing LE command decodings --- monitor/bt.h | 12 ++++++++++++ monitor/packet.c | 36 +++++++++++++++++++++++++++++++++--- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/monitor/bt.h b/monitor/bt.h index 7681f67fc..9ae933559 100644 --- a/monitor/bt.h +++ b/monitor/bt.h @@ -752,6 +752,18 @@ struct bt_hci_rsp_le_read_adv_tx_power { int8_t level; } __attribute__ ((packed)); +#define BT_HCI_CMD_LE_SET_ADV_DATA 0x2008 +struct bt_hci_cmd_le_set_adv_data { + uint8_t len; + uint8_t data[31]; +} __attribute__ ((packed)); + +#define BT_HCI_CMD_LE_SCAN_RESPONSE_DATA 0x2009 +struct bt_hci_cmd_le_set_scan_response_data { + uint8_t len; + uint8_t data[31]; +} __attribute__ ((packed)); + #define BT_HCI_CMD_LE_SET_ADV_ENABLE 0x200a struct bt_hci_cmd_le_set_adv_enable { uint8_t enable; diff --git a/monitor/packet.c b/monitor/packet.c index 314ecb851..5828c7a8f 100644 --- a/monitor/packet.c +++ b/monitor/packet.c @@ -2581,6 +2581,30 @@ static void le_set_random_address_cmd(const void *data, uint8_t size) print_addr(cmd->addr, 0x01); } +static void le_read_adv_tx_power_rsp(const void *data, uint8_t size) +{ + const struct bt_hci_rsp_le_read_adv_tx_power *rsp = data; + + print_status(rsp->status); + print_field("TX power: %d dBm", rsp->level); +} + +static void le_set_adv_data_cmd(const void *data, uint8_t size) +{ + const struct bt_hci_cmd_le_set_adv_data *cmd = data; + + print_field("Length: %d", cmd->len); + print_eir(cmd->data, cmd->len, true); +} + +static void le_set_scan_response_data_cmd(const void *data, uint8_t size) +{ + const struct bt_hci_cmd_le_set_scan_response_data *cmd = data; + + print_field("Length: %d", cmd->len); + print_eir(cmd->data, cmd->len, true); +} + static void le_set_adv_enable_cmd(const void *data, uint8_t size) { const struct bt_hci_cmd_le_set_adv_enable *cmd = data; @@ -3174,9 +3198,15 @@ static const struct opcode_data opcode_table[] = { le_set_random_address_cmd, 6, true, status_rsp, 1, true }, { 0x2006, "LE Set Advertising Parameters" }, - { 0x2007, "LE Read Advertising Channel TX Power"}, - { 0x2008, "LE Set Advertising Data" }, - { 0x2009, "LE Set Scan Response Data" }, + { 0x2007, "LE Read Advertising Channel TX Power", + null_cmd, 0, true, + le_read_adv_tx_power_rsp, 2, true }, + { 0x2008, "LE Set Advertising Data", + le_set_adv_data_cmd, 32, true, + status_rsp, 1, true }, + { 0x2009, "LE Set Scan Response Data", + le_set_scan_response_data_cmd, 32, true, + status_rsp, 1, true }, { 0x200a, "LE Set Advertise Enable", le_set_adv_enable_cmd, 1, true, status_rsp, 1, true }, -- 2.11.0