add instructions on HCI logging

This commit is contained in:
Matthias Ringwald 2015-05-07 17:34:14 +02:00
parent b615042013
commit 7b2f72db63

View File

@ -273,4 +273,35 @@ data registered by *l2cap_create_channel_internal*; after that
keyboard can reconnect by itself. For this, you need to register L2CAP keyboard can reconnect by itself. For this, you need to register L2CAP
services for the HID Control and HID Interrupt PSMs using services for the HID Control and HID Interrupt PSMs using
*l2cap_register_service_internal*. In this call, youll also specify *l2cap_register_service_internal*. In this call, youll also specify
a packet handler to accept and receive keyboard data. a packet handler to accept and receive keyboard data.
Bluetooth HCI Packet Logs
-------------------------
If things don't work as expected, having a look at the data exchanged
between BTstack and the Bluetooth chipset often helps.
For this, BTstack provides a configurable packet logging mechanism via hci_dump.h:
// formats: HCI_DUMP_BLUEZ, HCI_DUMP_PACKETLOGGER, HCI_DUMP_STDOUT
void hci_dump_open(const char *filename, hci_dump_format_t format);
On POSIX systems, you can call hci_dump_open with a path and HCI_DUMP_BLUEZ
or HCI_DUMP_PACKETLOGGER in the setup, i.e., before entering the run loop.
The resulting file can be analyzed with Wireshark
or the Apple's PacketLogger tool.
On embedded systems without a file system, you still can call hci_dump_open(NULL, HCI_DUMP_STDOUT).
It will log all HCI packets to the consolve via printf.
If you capture the console output, incl. your own debug messages, you can use
the create_packet_log.py tool in the tools folder to convert a text output into a
PacketLogger file.
In addition to the HCI packets, you can also enable BTstack's debug information by adding
#define ENABLE_LOG_INFO
#define ENABLE_LOG_ERROR
to the btstack-config.h and recompiling your application.