OSDN Git Service

monitor: Add some missing LE command decodings
authorMarcel Holtmann <marcel@holtmann.org>
Sat, 10 Nov 2012 19:27:14 +0000 (20:27 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Sun, 11 Nov 2012 00:26:02 +0000 (01:26 +0100)
monitor/bt.h
monitor/packet.c

index 7681f67..9ae9335 100644 (file)
@@ -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;
index 314ecb8..5828c7a 100644 (file)
@@ -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 },