Nimble: Updated ble_l2cap_coc example

1. Corrected format
     2. Fixed double free of memory issue in case of disconnection
     3. Updated sdkconfig.default file to have correct value for
COC_MAX_NUM configuration setting
This commit is contained in:
Rahul Tank
2023-01-06 16:35:25 +05:30
parent c41bb46d92
commit 4da5d3e7a5
4 changed files with 97 additions and 95 deletions

View File

@ -21,7 +21,7 @@ static uint8_t peer_addr[6];
void ble_store_config_init(void);
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM > 1
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM >= 1
#define COC_BUF_COUNT (3 * MYNEWT_VAL(BLE_L2CAP_COC_MAX_NUM))
#define L2CAP_COC_UUID 0x1812
@ -74,8 +74,6 @@ blecent_l2cap_coc_on_disc_complete(const struct peer *peer, int status, void *ar
sdu_rx = os_mbuf_get_pkthdr(&sdu_os_mbuf_pool, 0);
ble_l2cap_connect(conn_handle_coc, psm, mtu, sdu_rx, blecent_l2cap_coc_event_cb,
NULL);
os_mbuf_free(sdu_rx);
}
/**
@ -139,11 +137,12 @@ blecent_l2cap_coc_mem_init(void)
COC_BUF_COUNT);
assert(rc == 0);
}
#endif // #if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM > 1
#endif // #if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM >= 1
/**
* Called when service discovery of the specified peer has completed.
*/
#if !CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM
static void
blecent_on_disc_complete(const struct peer *peer, int status, void *arg)
{
@ -167,6 +166,7 @@ blecent_on_disc_complete(const struct peer *peer, int status, void *arg)
* write, and subscribe to notifications.
*/
}
#endif
/**
* Initiates the GAP general discovery procedure.
@ -405,7 +405,7 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
print_conn_desc(&desc);
MODLOG_DFLT(INFO, "\n");
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM > 1
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM >= 1
conn_handle_coc = event->connect.conn_handle;
disc_cb = blecent_l2cap_coc_on_disc_complete;
#else
@ -512,7 +512,7 @@ app_main(void)
ble_hs_cfg.sync_cb = blecent_on_sync;
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM > 1
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM >= 1
blecent_l2cap_coc_mem_init();
#endif

View File

@ -10,3 +10,4 @@ CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n
CONFIG_BTDM_CTRL_MODE_BTDM=n
CONFIG_BT_BLUEDROID_ENABLED=n
CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_NIMBLE_L2CAP_COC_MAX_NUM=1

View File

@ -30,7 +30,7 @@ static uint8_t own_addr_type;
void ble_store_config_init(void);
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM > 1
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM >= 1
#define COC_BUF_COUNT (3 * MYNEWT_VAL(BLE_L2CAP_COC_MAX_NUM))
@ -191,7 +191,7 @@ bleprph_advertise(void)
}
#endif
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM > 1
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM >= 1
static int
bleprph_l2cap_coc_accept(uint16_t conn_handle, uint16_t peer_mtu,
struct ble_l2cap_chan *chan)
@ -334,7 +334,7 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg)
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
assert(rc == 0);
bleprph_print_conn_desc(&desc);
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM > 1
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM >= 1
rc = ble_l2cap_create_server(psm, mtu, bleprph_l2cap_coc_event_cb, NULL);
#endif
}
@ -460,7 +460,7 @@ app_main(void)
ble_hs_cfg.sm_their_key_dist = 1;
#endif
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM > 1
#if CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM >= 1
bleprph_l2cap_coc_mem_init();
#endif

View File

@ -10,3 +10,4 @@ CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n
CONFIG_BTDM_CTRL_MODE_BTDM=n
CONFIG_BT_BLUEDROID_ENABLED=n
CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_NIMBLE_L2CAP_COC_MAX_NUM=1