From f0315be5775b95c43db6948057ca167fde55b23b Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Mon, 15 Feb 2016 12:39:29 +0200 Subject: [PATCH] drivers/nble: Track all connection parameters The bt_conn_get_info() API requires that we track the role and the various connection parameters. Change-Id: I732eace1e45173f94962df3f11dbe5ad520a75cf Signed-off-by: Johan Hedberg --- drivers/nble/conn.c | 10 +++++++++- drivers/nble/conn_internal.h | 6 ++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/nble/conn.c b/drivers/nble/conn.c index 9fd9dff865c..420e48b506c 100644 --- a/drivers/nble/conn.c +++ b/drivers/nble/conn.c @@ -112,7 +112,11 @@ int bt_conn_get_info(const struct bt_conn *conn, struct bt_conn_info *info) memset(info, 0, sizeof(*info)); info->type = BT_CONN_TYPE_LE; + info->role = conn->role; info->le.dst = &conn->dst; + info->le.interval = conn->interval; + info->le.latency = conn->latency; + info->le.timeout = conn->timeout; return 0; } @@ -210,7 +214,7 @@ void on_nble_gap_connect_evt(const struct nble_gap_connect_evt *ev) { struct bt_conn *conn; - BT_DBG("handle %u", ev->conn_handle); + BT_DBG("handle %u role %u", ev->conn_handle, ev->role); conn = conn_new(); if (!conn) { @@ -219,6 +223,10 @@ void on_nble_gap_connect_evt(const struct nble_gap_connect_evt *ev) } conn->handle = ev->conn_handle; + conn->role = ev->role; + conn->interval = ev->conn_values.interval; + conn->latency = ev->conn_values.latency; + conn->timeout = ev->conn_values.supervision_to; bt_addr_le_copy(&conn->dst, &ev->peer_bda); notify_connected(conn); diff --git a/drivers/nble/conn_internal.h b/drivers/nble/conn_internal.h index 1dce04c76ce..859c6484b10 100644 --- a/drivers/nble/conn_internal.h +++ b/drivers/nble/conn_internal.h @@ -16,6 +16,12 @@ struct bt_conn { uint16_t handle; + uint8_t role; atomic_t ref; + bt_addr_le_t dst; + + uint16_t interval; + uint16_t latency; + uint16_t timeout; };