请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2640R2F 主题中讨论的其他器件:CC2541
工具/软件:TI-RTOS
使用 simplelink_cc2640r2_sdk_1_40_00_45并在服务上创建读取/指示字符、指示大小限制为20、而读取大小限制为251。
它是否符合 BLE 标准、或者这是 SDK 1.40版的已知限制?
是否在 simplelink_cc2640r2_sdk_1_50_00_71或 simplelink_cc2640r2_sdk_1_50_00_58中对此进行了修复?
请参见 gattServApp_SendNotiInd 的实现以及粗体行
/*********
*@fn gattServApp_SendNotiInd
*
*@简要发送 ATT 通知/指示。
*
*@param connHandle -要使用的连接句柄。
*@param cccValue -客户端特征配置值。
*@param Authenticated -是否需要经过身份验证的链接。
*@param pAttr -指向属性记录的指针。
*@param taskId -要通知确认的任务。
*@param pfnReadAttrCB -读取回调函数指针。
*
**@return SUCCESS or FAILURE
*/
static bStatus_t gattServApp_SendNotitInd (uint16 connHandle、uint8 cccValue、
uint8已认证、gattAttribute_t *pAttr、
uint8 taskId、pfnGATTReadAttrCB_t pfnReadAttrCB)
{attHandleValueNoti_t
Notti;
uint16
字节;bStatus_t status;//如果属性值长于(ATT_MTU-3)八位字节,则//仅可以
发送此 MTU 值的第一个(len_attributes -3)八位字节。//
NOTI.pValue =(uint8 *) GATT_BM_alloc (connHandle、ATT_Handle_Value_Noti、
GATT_MAX_MTU,&len );
if ( Noti.pValue != NULL )
{
状态=(*pfnReadAttrCB)(connHandle、pAttr、oti.pValue、&oti.len、
0、len、GATT_LOCAL_READ);
如果(status == Success)
{
oti.handle = pAttr->句柄;
if (cccValue & GATT_CLIENT_CFG_NOTIY)
{
状态= GATT_Notification (connHandle、&Noti、Authenticated);
}
else // GATT_CLIENT_CFG_Indicate
{
STATUS = GATT_Indication (connHandle、(attHandleValueInd_t *)和通知、
已验证,taskId );
}
}
if ( status !=成功)
{
GATT_BM_FREE ((gattMsg_t *)&NOTI、ATT_Handle_Value_NOTI);
}
}
否则
{
状态= bleNoResources;
}
返回(状态);
}