Skip to content

Commit

Permalink
Bluetooth: Samples: Use string printing functions for error codes
Browse files Browse the repository at this point in the history
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 proposes to add string printing of error codes for all
samples to make them more user-friendly.

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 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)
```

Signed-off-by: Rubin Gerritsen <[email protected]>
  • Loading branch information
rugeGerritsen committed Jul 5, 2024
1 parent 0d0c5af commit c09c6ae
Show file tree
Hide file tree
Showing 56 changed files with 142 additions and 110 deletions.
5 changes: 3 additions & 2 deletions modules/openthread/platform/ble.c
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,8 @@ static void connected(struct bt_conn *conn, uint8_t err)
ot_plat_ble_connection = bt_conn_ref(conn);

if (err) {
LOG_WRN("Connection failed (err %u)", err);
LOG_WRN("Connection failed err %u %s",
err, bt_hci_err_to_str(err));
return;
} else if (bt_conn_get_info(conn, &info)) {
LOG_WRN("Could not parse connection info");
Expand All @@ -342,7 +343,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)
{
otError error = OT_ERROR_NONE;

LOG_INF("Disconnected (reason %" PRIu8 ")", reason);
LOG_INF("Disconnected, reason 0x%02x %s", reason, bt_hci_err_to_str(reason));

if (ot_plat_ble_connection) {
bt_conn_unref(ot_plat_ble_connection);
Expand Down
6 changes: 3 additions & 3 deletions samples/bluetooth/bap_broadcast_assistant/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -439,7 +439,7 @@ static void connected(struct bt_conn *conn, uint8_t err)
(void)bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

if (err != 0) {
printk("Failed to connect to %s (%u)\n", addr, err);
printk("Failed to connect to %s %u %s\n", addr, err, bt_hci_err_to_str(err));

bt_conn_unref(broadcast_sink_conn);
broadcast_sink_conn = NULL;
Expand All @@ -466,7 +466,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

(void)bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

printk("Disconnected: %s (reason 0x%02x)\n", addr, reason);
printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));

bt_conn_unref(broadcast_sink_conn);
broadcast_sink_conn = NULL;
Expand All @@ -481,7 +481,7 @@ static void security_changed_cb(struct bt_conn *conn, bt_security_t level,
printk("Security level changed: %u\n", level);
k_sem_give(&sem_security_updated);
} else {
printk("Failed to set security level: %u\n", err);
printk("Failed to set security level: %s(%u)\n", bt_security_err_to_str(err), err);
}
}

Expand Down
4 changes: 2 additions & 2 deletions samples/bluetooth/bap_broadcast_sink/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1069,7 +1069,7 @@ static void connected(struct bt_conn *conn, uint8_t err)
bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

if (err != 0U) {
printk("Failed to connect to %s (%u)\n", addr, err);
printk("Failed to connect to %s %u %s\n", addr, err, bt_hci_err_to_str(err));

broadcast_assistant_conn = NULL;
return;
Expand All @@ -1091,7 +1091,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

printk("Disconnected: %s (reason 0x%02x)\n", addr, reason);
printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));

bt_conn_unref(broadcast_assistant_conn);
broadcast_assistant_conn = NULL;
Expand Down
6 changes: 3 additions & 3 deletions samples/bluetooth/bap_unicast_client/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ static void connected(struct bt_conn *conn, uint8_t err)
(void)bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

if (err != 0) {
printk("Failed to connect to %s (%u)\n", addr, err);
printk("Failed to connect to %s %u %s\n", addr, err, bt_hci_err_to_str(err));

bt_conn_unref(default_conn);
default_conn = NULL;
Expand All @@ -422,7 +422,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

(void)bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

printk("Disconnected: %s (reason 0x%02x)\n", addr, reason);
printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));

bt_conn_unref(default_conn);
default_conn = NULL;
Expand All @@ -436,7 +436,7 @@ static void security_changed_cb(struct bt_conn *conn, bt_security_t level,
if (err == 0) {
k_sem_give(&sem_security_updated);
} else {
printk("Failed to set security level: %u", err);
printk("Failed to set security level: %s(%u)", bt_security_err_to_str(err), err);
}
}

Expand Down
4 changes: 2 additions & 2 deletions samples/bluetooth/bap_unicast_server/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -583,7 +583,7 @@ static void connected(struct bt_conn *conn, uint8_t err)
bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

if (err != 0) {
printk("Failed to connect to %s (%u)\n", addr, err);
printk("Failed to connect to %s %u %s\n", addr, err, bt_hci_err_to_str(err));

default_conn = NULL;
return;
Expand All @@ -603,7 +603,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

printk("Disconnected: %s (reason 0x%02x)\n", addr, reason);
printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));

bt_conn_unref(default_conn);
default_conn = NULL;
Expand Down
2 changes: 1 addition & 1 deletion samples/bluetooth/cap_acceptor/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ static void disconnected_cb(struct bt_conn *conn, uint8_t reason)
}

(void)bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
LOG_INF("Disconnected: %s (reason 0x%02x)", addr, reason);
LOG_INF("Disconnected: %s, reason 0x%02x %s", addr, reason, bt_hci_err_to_str(reason));

bt_conn_unref(peer.conn);
peer.conn = NULL;
Expand Down
5 changes: 3 additions & 2 deletions samples/bluetooth/cap_initiator/src/cap_initiator_unicast.c
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,7 @@ static void disconnected_cb(struct bt_conn *conn, uint8_t reason)

(void)bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

LOG_INF("Disconnected: %s (reason 0x%02x)", addr, reason);
LOG_INF("Disconnected: %s, reason 0x%02x %s", addr, reason, bt_hci_err_to_str(reason));

bt_conn_unref(peer.conn);
peer.conn = NULL;
Expand All @@ -537,7 +537,8 @@ static void security_changed_cb(struct bt_conn *conn, bt_security_t level,
LOG_INF("Security changed: %u", level);
k_sem_give(&sem_security_changed);
} else {
LOG_ERR("Failed to set security level: %d", sec_err);
LOG_ERR("Failed to set security level: %s(%d)",
bt_security_err_to_str(sec_err), sec_err);

if (sec_err == BT_SECURITY_ERR_PIN_OR_KEY_MISSING) {
int err;
Expand Down
4 changes: 2 additions & 2 deletions samples/bluetooth/central/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ static void connected(struct bt_conn *conn, uint8_t err)
bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

if (err) {
printk("Failed to connect to %s (%u)\n", addr, err);
printk("Failed to connect to %s %u %s\n", addr, err, bt_hci_err_to_str(err));

bt_conn_unref(default_conn);
default_conn = NULL;
Expand Down Expand Up @@ -108,7 +108,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

printk("Disconnected: %s (reason 0x%02x)\n", addr, reason);
printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));

bt_conn_unref(default_conn);
default_conn = NULL;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <zephyr/bluetooth/bluetooth.h>
#include <zephyr/bluetooth/conn.h>
#include <zephyr/bluetooth/gatt.h>
#include <zephyr/bluetooth/hci.h>

extern int mtu_exchange(struct bt_conn *conn);
extern int write_cmd(struct bt_conn *conn);
Expand Down
6 changes: 3 additions & 3 deletions samples/bluetooth/central_gatt_write/src/gatt_write_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,8 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)
return;
}

printk("%s: %s role %u (reason %u)\n", __func__, addr, conn_info.role,
reason);
printk("%s: %s role %u, reason %u %s\n", __func__, addr, conn_info.role,
reason, bt_hci_err_to_str(reason));

conn_connected = NULL;

Expand Down Expand Up @@ -166,7 +166,7 @@ static void le_param_updated(struct bt_conn *conn, uint16_t interval,
static void security_changed(struct bt_conn *conn, bt_security_t level,
enum bt_security_err err)
{
printk("%s: to level %u (err %u)\n", __func__, level, err);
printk("%s: to level %u, err %s(%u)\n", __func__, level, bt_security_err_to_str(err), err);
}
#endif

Expand Down
2 changes: 1 addition & 1 deletion samples/bluetooth/central_hr/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

printk("Disconnected: %s (reason 0x%02x)\n", addr, reason);
printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));

if (default_conn != conn) {
return;
Expand Down
2 changes: 1 addition & 1 deletion samples/bluetooth/central_ht/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

printk("Disconnected: %s (reason 0x%02x)\n", addr, reason);
printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));

if (default_conn != conn) {
return;
Expand Down
4 changes: 2 additions & 2 deletions samples/bluetooth/central_iso/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ static void connected(struct bt_conn *conn, uint8_t err)
bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

if (err) {
printk("Failed to connect to %s (%u)\n", addr, err);
printk("Failed to connect to %s %u %s\n", addr, err, bt_hci_err_to_str(err));

bt_conn_unref(default_conn);
default_conn = NULL;
Expand Down Expand Up @@ -207,7 +207,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

printk("Disconnected: %s (reason 0x%02x)\n", addr, reason);
printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));

bt_conn_unref(default_conn);
default_conn = NULL;
Expand Down
6 changes: 3 additions & 3 deletions samples/bluetooth/central_multilink/src/central_multilink.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

printk("Disconnected: %s (reason 0x%02x)\n", addr, reason);
printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));

bt_conn_unref(conn);

Expand Down Expand Up @@ -228,8 +228,8 @@ static void security_changed(struct bt_conn *conn, bt_security_t level,
if (!err) {
printk("Security changed: %s level %u\n", addr, level);
} else {
printk("Security failed: %s level %u err %d\n", addr, level,
err);
printk("Security failed: %s level %u err %d %s\n", addr, level,
err, bt_security_err_to_str(err));
}
}
#endif
Expand Down
4 changes: 2 additions & 2 deletions samples/bluetooth/central_otc/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,7 @@ static void connected(struct bt_conn *conn, uint8_t err)
bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
first_selected = false;
if (err != 0) {
printk("Failed to connect to %s (%u)\n", addr, err);
printk("Failed to connect to %s %u %s\n", addr, err, bt_hci_err_to_str(err));

bt_conn_unref(default_conn);
default_conn = NULL;
Expand Down Expand Up @@ -542,7 +542,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

printk("Disconnected: %s (reason 0x%02x)\n", addr, reason);
printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));

bt_conn_unref(default_conn);
default_conn = NULL;
Expand Down
5 changes: 3 additions & 2 deletions samples/bluetooth/central_past/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <zephyr/drivers/gpio.h>
#include <zephyr/bluetooth/bluetooth.h>
#include <zephyr/bluetooth/conn.h>
#include <zephyr/bluetooth/hci.h>

#define NAME_LEN 30

Expand Down Expand Up @@ -128,7 +129,7 @@ static void connected(struct bt_conn *conn, uint8_t err)
bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

if (err != 0) {
printk("Failed to connect to %s (%u)\n", addr, err);
printk("Failed to connect to %s %u %s\n", addr, err, bt_hci_err_to_str(err));

bt_conn_unref(default_conn);
default_conn = NULL;
Expand Down Expand Up @@ -163,7 +164,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

printk("Disconnected: %s (reason 0x%02x)\n", addr, reason);
printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));

bt_conn_unref(default_conn);
default_conn = NULL;
Expand Down
4 changes: 2 additions & 2 deletions samples/bluetooth/direct_adv/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,15 +82,15 @@ static const struct bt_data ad[] = {
static void connected(struct bt_conn *conn, uint8_t err)
{
if (err) {
printk("Connection failed (err 0x%02x)\n", err);
printk("Connection failed err 0x%02x %s\n", err, bt_hci_err_to_str(err));
} else {
printk("Connected\n");
}
}

static void disconnected(struct bt_conn *conn, uint8_t reason)
{
printk("Disconnected (reason 0x%02x)\n", reason);
printk("Disconnected, reason 0x%02x %s\n", reason, bt_hci_err_to_str(reason));
}

BT_CONN_CB_DEFINE(conn_callbacks) = {
Expand Down
2 changes: 1 addition & 1 deletion samples/bluetooth/direction_finding_central/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

printk("Disconnected: %s (reason 0x%02x)\n", addr, reason);
printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));

if (default_conn != conn) {
return;
Expand Down
4 changes: 2 additions & 2 deletions samples/bluetooth/direction_finding_peripheral/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ static void enable_cte_response(struct bt_conn *conn)
static void connected(struct bt_conn *conn, uint8_t err)
{
if (err) {
printk("Connection failed (err 0x%02x)\n", err);
printk("Connection failed err 0x%02x %s\n", err, bt_hci_err_to_str(err));
} else {
printk("Connected\n");
}
Expand All @@ -86,7 +86,7 @@ static void connected(struct bt_conn *conn, uint8_t err)

static void disconnected(struct bt_conn *conn, uint8_t reason)
{
printk("Disconnected (reason 0x%02x)\n", reason);
printk("Disconnected, reason 0x%02x %s\n", reason, bt_hci_err_to_str(reason));
}

BT_CONN_CB_DEFINE(conn_callbacks) = {
Expand Down
4 changes: 2 additions & 2 deletions samples/bluetooth/eddystone/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -661,7 +661,7 @@ static void idle_timeout(struct k_work *work)
static void connected(struct bt_conn *conn, uint8_t err)
{
if (err) {
printk("Connection failed (err 0x%02x)\n", err);
printk("Connection failed err 0x%02x %s\n", err, bt_hci_err_to_str(err));
} else {
printk("Connected\n");
k_work_cancel_delayable(&idle_work);
Expand All @@ -672,7 +672,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)
{
struct eds_slot *slot = &eds_slots[eds_active_slot];

printk("Disconnected (reason 0x%02x)\n", reason);
printk("Disconnected, reason 0x%02x %s\n", reason, bt_hci_err_to_str(reason));

if (!slot->connectable) {
k_work_reschedule(&idle_work, K_NO_WAIT);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <zephyr/bluetooth/addr.h>
#include <zephyr/bluetooth/conn.h>
#include <zephyr/bluetooth/uuid.h>
#include <zephyr/bluetooth/hci.h>
#include <zephyr/bluetooth/bluetooth.h>

#include "common/bt_str.h"
Expand Down Expand Up @@ -329,7 +330,7 @@ static void disconnected(struct bt_conn *conn, uint8_t reason)

bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

LOG_DBG("Disconnected: %s (reason 0x%02x)", addr, reason);
LOG_DBG("Disconnected: %s, reason 0x%02x %s", addr, reason, bt_hci_err_to_str(reason));

if (default_conn != conn) {
return;
Expand All @@ -348,7 +349,8 @@ static void security_changed(struct bt_conn *conn, bt_security_t level, enum bt_
if (!err) {
LOG_DBG("Security changed: %s level %u", addr, level);
} else {
LOG_DBG("Security failed: %s level %u err %d", addr, level, err);
LOG_DBG("Security failed: %s level %u err %d %s", addr, level,
err, bt_security_err_to_str(err));
}
}

Expand Down
Loading

0 comments on commit c09c6ae

Please sign in to comment.