When developing Bluetooth applications, you typically run into some errors. If you are an experienced Bluetooth developer, you would typically know how to translate the error codes into string representations. Others might not. This commit to adds string printing of error codes for all samples to make them more user-friendly. Several formatting alternatives were considered. The chosen alternative balances code readability and FLASH size (with and without string printing). Example output from the peripheral_hids sample when the peer rejects pairing: ``` Bluetooth initialized Bluetooth authentication callbacks registered. Advertising successfully started Connected 5E:67:02:D3:1C:DB (random) Security failed: 5E:67:02:D3:1C:DB (random) \ level 1 err 6 BT_SECURITY_ERR_PAIR_NOT_ALLOWED Disconnected from 5E:67:02:D3:1C:DB (random), \ reason 0x13 BT_HCI_ERR_REMOTE_USER_TERM_CONN ``` Other alternatives that were considered: - Use of parantheses: ``` // strings enabled Security failed: 5E:67:02:D3:1C:DB (random) level 1 \ err BT_SECURITY_ERR_PAIR_NOT_ALLOWED(6) Disconnected from 5E:67:02:D3:1C:DB (random), reason \ BT_HCI_ERR_REMOTE_USER_TERM_CONN(0x13) // strings disabled Security failed: 5E:67:02:D3:1C:DB (random) level 1 err (6) Disconnected from 5E:67:02:D3:1C:DB (random), reason (0x13) ``` - Spaces and parantheses: ``` // strings enabled Security failed: 5E:67:02:D3:1C:DB (random) level 1 \ err BT_SECURITY_ERR_PAIR_NOT_ALLOWED (6) Disconnected from 5E:67:02:D3:1C:DB (random), \ reason BT_HCI_ERR_REMOTE_USER_TERM_CONN (0x13) // strings disabled Security failed: 5E:67:02:D3:1C:DB (random) level 1 err (6) Disconnected from 5E:67:02:D3:1C:DB (random), reason (0x13) ``` - Parantheses around everything: ``` // strings enabled Security failed: 5E:67:02:D3:1C:DB (random) level 1 \ err (BT_SECURITY_ERR_PAIR_NOT_ALLOWED(6)) Disconnected from 5E:67:02:D3:1C:DB (random), \ reason (BT_HCI_ERR_REMOTE_USER_TERM_CONN(0x13)) // strings disabled Security failed: 5E:67:02:D3:1C:DB (random) level 1 err ((6)) Disconnected from 5E:67:02:D3:1C:DB (random), reason ((0x13)) ``` - Error code first, then string representation: ``` // strings enabled Security failed: 5E:67:02:D3:1C:DB (random) level 1 \ err 6 (BT_SECURITY_ERR_PAIR_NOT_ALLOWED) Disconnected from 5E:67:02:D3:1C:DB (random), reason \ 0x13 (BT_HCI_ERR_REMOTE_USER_TERM_CONN) // strings disabled Security failed: 5E:67:02:D3:1C:DB (random) level 1 err 6 () Disconnected from 5E:67:02:D3:1C:DB (random), reason 0x13 () ``` - Apostrophes around error printing: ``` // strings enabled Security failed: 5E:67:02:D3:1C:DB (random) level 1 \ err "BT_SECURITY_ERR_PAIR_NOT_ALLOWED (6)" Disconnected from 5E:67:02:D3:1C:DB (random), reason \ "BT_HCI_ERR_REMOTE_USER_TERM_CONN (0x13)" // strings disabled Security failed: 5E:67:02:D3:1C:DB (random) level 1 err " (6)" Disconnected from 5E:67:02:D3:1C:DB (random), reason " (0x13)" ``` Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no> |
||
|---|---|---|
| .. | ||
| src | ||
| CMakeLists.txt | ||
| prj.conf | ||
| README.rst | ||
| sample.yaml | ||
.. _peripheral_iso:
Bluetooth: Peripheral ISO
#########################
Overview
********
This sample demonstrates how to use isochronous channels as a peripheral.
The sample starts advertising, waits for a central to connect to it and set up an isochronous channel.
Once the isochronous channel is set up, received isochronous data is printed out.
It is recommended to run this sample together with the :ref:`Bluetooth: Central ISO <bluetooth_central_iso>` sample.
Requirements
************
* BlueZ running on the host, or
* A board with Bluetooth Low Energy 5.2 support
* A Bluetooth Controller and board that supports setting
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
Building and Running
********************
This sample can be found under :zephyr_file:`samples/bluetooth/peripheral_iso` in the Zephyr tree.
1. Start the application.
In the terminal window, check that it is advertising.
Bluetooth initialized
Advertising successfully started
2. Observe that the central device connects and sets up an isochronous channel.
Connected E8:DC:8D:B3:47:69 (random)
Incoming request from 0x20002260
ISO Channel 0x20000698 connected
3. Observe that incoming data is printed.
Incoming data channel 0x20000698 len 1
00
Incoming data channel 0x20000698 len 2
0001
Incoming data channel 0x20000698 len 3
000102
Incoming data channel 0x20000698 len 4
00010203
Incoming data channel 0x20000698 len 5
0001020304
Incoming data channel 0x20000698 len 6
000102030405
Incoming data channel 0x20000698 len 7
000102...040506
Incoming data channel 0x20000698 len 8
000102...050607
Incoming data channel 0x20000698 len 9
000102...060708
Incoming data channel 0x20000698 len 10
000102...070809
Incoming data channel 0x20000698 len 11
000102...08090a
Incoming data channel 0x20000698 len 12
000102...090a0b
See :ref:`bluetooth samples section <bluetooth-samples>` for more details.