Other Parts Discussed in Thread: CC2541
Tool/software: TI-RTOS
Using simplelink_cc2640r2_sdk_1_40_00_45, and creating a read/indicate CHAR on a service, the indication size is limited to 20, while the read size is limited to 251.
Is it according to the BLE standard, or is this a known limitation of the SDK ver 1.40?
Is this fixed in simplelink_cc2640r2_sdk_1_50_00_71 or simplelink_cc2640r2_sdk_1_50_00_58?
See the implementation of gattServApp_SendNotiInd, and the lines in bold
/*********************************************************************
* @fn gattServApp_SendNotiInd
*
* @brief Send an ATT Notification/Indication.
*
* @param connHandle - connection handle to use.
* @param cccValue - client characteristic configuration value.
* @param authenticated - whether an authenticated link is required.
* @param pAttr - pointer to attribute record.
* @param taskId - task to be notified of confirmation.
* @param pfnReadAttrCB - read callback function pointer.
*
* @return Success or Failure
*/
static bStatus_t gattServApp_SendNotiInd( uint16 connHandle, uint8 cccValue,
uint8 authenticated, gattAttribute_t *pAttr,
uint8 taskId, pfnGATTReadAttrCB_t pfnReadAttrCB )
{
attHandleValueNoti_t noti;
uint16 len;
bStatus_t status;
// If the attribute value is longer than (ATT_MTU - 3) octets, then
// only the first (ATT_MTU - 3) octets of this attributes value can
// be sent in a notification.
noti.pValue = (uint8 *)GATT_bm_alloc( connHandle, ATT_HANDLE_VALUE_NOTI,
GATT_MAX_MTU, &len );
if ( noti.pValue != NULL )
{
status = (*pfnReadAttrCB)( connHandle, pAttr, noti.pValue, ¬i.len,
0, len, GATT_LOCAL_READ );
if ( status == SUCCESS )
{
noti.handle = pAttr->handle;
if ( cccValue & GATT_CLIENT_CFG_NOTIFY )
{
status = GATT_Notification( connHandle, ¬i, authenticated );
}
else // GATT_CLIENT_CFG_INDICATE
{
status = GATT_Indication( connHandle, (attHandleValueInd_t *)¬i,
authenticated, taskId );
}
}
if ( status != SUCCESS )
{
GATT_bm_free( (gattMsg_t *)¬i, ATT_HANDLE_VALUE_NOTI );
}
}
else
{
status = bleNoResources;
}
return ( status );
}