Hi,
I am using simpleperipheral code of sdk simplelink_cc26x2_sdk_2_30_00_34 with MAX_BLE_CONN=3. As per my application, all connected master devices will get the continuous data through notifications.
I am setting below parameters in my applications:
-DMAX_NUM_BLE_CONNS=3
-DMAX_PDU_SIZE=27
// Minimum connection interval (units of 1.25ms, 24=30ms) for parameter update request
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 24
// Maximum connection interval (units of 1.25ms, 80=100ms) for parameter update request
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 80
// Slave latency to use for parameter update request
#define DEFAULT_DESIRED_SLAVE_LATENCY 0
// Supervision timeout value (units of 10ms, 300=3s) for parameter update request
#define DEFAULT_DESIRED_CONN_TIMEOUT 300
// Pass parameter updates to the app for it to decide.
#define DEFAULT_PARAM_UPDATE_REQ_DECISION GAP_UPDATE_REQ_DENY_ALL
// Delay (in ms) after connection establishment before sending a parameter update requst
#define SP_SEND_PARAM_UPDATE_DELAY 6000
with DLE disabled and using GATT_Notification(connHandle, pNoti, false) function in loop for sending notification to connected devices.
If i connect 3 master devices with my devices, each packet is being sent after 50ms (with most time failure) which decreasing the throughput of my devices. As i need to increase the MAX_BLE_CONN of my devices. I am retrying 10 times if notification return fail, but some it always returns failure and that packet got lost.
Below the Code snippet of my notification code.
while(1)
{
.......
for (index = 0; index < MAX_NUM_BLE_CONNS; index++)
{
status = Data_Notification(conn[index].connHandle, &NotiDataBuffer[FifoRdIndex][5], DataLen, SIMPLEPROFILE_CHAR1);
if(status != SUCCESS)
{
status = SUCCESS;
SendFail = true;
break;
}
}
if(SendFail)
{
NotiFailRetry++;
Task_sleep(MS_DELAY(10));
}
.......
}
How can i reduce this delay and increase my device throughput?