I'm developing a multi-peripheral application on the nRF52832 that started from the SDK v13.0.0 experimental_ble_app_multiperipheral_pca10040_s132 example application (running SoftDevice S132 v4.0.2).
This application needs to support 5 concurrent connections with 5 different Smartphones (the worst case being that all 5 connected Smartphones do NOT support BT v4.2).
I'm trying to optimize throughput without sacrificing latency (latency is a priority over throughput). So, I'm thinking I should enable Connection Event Length Extension (using 2.5 ms event length), but I'm not sure what I should set the conn_count
member of ble_gap_conn_cfg_t
to be?
Should it be set to 5 to match the maximum number of supported peripheral links for my application? Please help me understand what conn_count
configures.
/**
* @brief BLE GAP connection configuration parameters, set with @ref sd_ble_cfg_set.
*
* @retval ::NRF_ERROR_CONN_COUNT The connection count for the connection configurations is zero.
* @retval ::NRF_ERROR_INVALID_PARAM One or more of the following is true:
* - The sum of conn_count for all connection configurations combined exceeds UINT8_MAX.
* - The event length is smaller than @ref BLE_GAP_EVENT_LENGTH_MIN.
*/
typedef struct
{
uint8_t conn_count; /**< The number of concurrent connections the application can create with this configuration.
The default and minimum value is @ref BLE_GAP_CONN_COUNT_DEFAULT. */
uint16_t event_length; /**< The time set aside for this connection on every connection interval in 1.25 ms units.
The default value is @ref BLE_GAP_EVENT_LENGTH_DEFAULT, the minimum value is @ref BLE_GAP_EVENT_LENGTH_MIN.
The event length and the connection interval are the primary parameters
for setting the throughput of a connection.
See the SoftDevice Specification for details on throughput. */
} ble_gap_conn_cfg_t;