diff --git a/include/btstack/utils.h b/include/btstack/utils.h index ad047248d..3fea5d515 100644 --- a/include/btstack/utils.h +++ b/include/btstack/utils.h @@ -85,6 +85,10 @@ typedef uint8_t device_name_t[DEVICE_NAME_LEN+1]; // check if command complete event for given command #define COMMAND_COMPLETE_EVENT(event,cmd) ( event[0] == HCI_EVENT_COMMAND_COMPLETE && READ_BT_16(event,3) == cmd.opcode) +#define COMMAND_STATUS_EVENT(event,cmd) ( event[0] == HCI_EVENT_COMMAND_STATUS && READ_BT_16(event,4) == cmd.opcode) + +// Code+Len=2, Pkts+Opcode=3; total=5 +#define OFFSET_OF_DATA_IN_COMMAND_COMPLETE 5 // ACL Packet #define READ_ACL_CONNECTION_HANDLE( buffer ) ( READ_BT_16(buffer,0) & 0x0fff) diff --git a/src/hci.c b/src/hci.c index cb5f9432a..37d92381e 100644 --- a/src/hci.c +++ b/src/hci.c @@ -426,6 +426,13 @@ static void event_handler(uint8_t *packet, int size){ hci_stack.acl_data_packet_length, hci_stack.total_num_acl_packets, hci_stack.packet_types); } } + // Dump local address + if (COMMAND_COMPLETE_EVENT(packet, hci_read_bd_addr)) { + bd_addr_t addr; + bt_flip_addr(addr, &packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE + 1]); + log_info("Local Address, Status: 0x%02x: Addr: %s\n", + packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE], bd_addr_to_str(addr)); + } if (COMMAND_COMPLETE_EVENT(packet, hci_write_scan_enable)){ hci_emit_discoverable_enabled(hci_stack.discoverable); }