工具/软件:
您好、TI
*SDK:9.12.0.19
我想问在执行 L2CAP_SendSDU() 时返回错误代码 0x16 的原因是什么? 它是否与 Bug[BLE_Loki-3583]有关?( SDK9_11_01_19 上已修复、CS ~1 小时后、密钥节点已满额度、导致 L2CAP 失败。 汽车节点收发器无法正确处理这种情况)
当我们将按钮事件和电池电压数据从 CC2340R53(关键节点演示代码)传输到 CC2745R10_Q1(汽车节点演示代码)时、就会出现该问题、但不会出现信道探测测距。 允许定时器使用 L2CAPCOC_sendSDU() 来发送按钮事件和电池电压数据。 在 Keynode 发送数据 65,519 次后、汽车节点不再接收数据。 然后、Keynode 在发送 L2CAP 时遇到错误并返回结果错误代码 0x16(blePending:waiting?)。
部分代码如下:
bStatus_t L2CAPCOC_sendSDU(L2capCoc_sendSduCmdParams_t *pParams)
{
bStatus_t status = SUCCESS;
l2capPacket_t packet;
packet.connHandle = pParams->connHandle;
packet.CID = pParams->CID;
packet.len = pParams->len;
packet.pPayload = L2CAP_bm_alloc( pParams->len );
memcpy(packet.pPayload, pParams->pPayload, packet.len);
pthread_mutex_lock(&l2cap_mutex);
status = L2CAP_SendSDU( &packet );
pthread_mutex_unlock(&l2cap_mutex);
if (status != SUCCESS)
{
osal_bm_free(packet.pPayload);
PHSCA_ESELOG_PRINTF("[UID]L2CAP send fail status:[%2x]\r\n", status);
}
return status;
}
请帮助我们检查上述问题。
此致、
Burt