现在在基于CC2652的SDK做AOA的项目。测试发现,蓝牙连接的时间需要180ms左右。
请教下,
1.现在的SDK,在协议栈上实现连接的最短时间可以到多少毫秒?
2.AOA的应用层rtls_matster.c中,从RTLSMaster_processRTLSConnReq()开始连接到RTLSMaster_processL2CAPSignalEvent()收到L2CAP_CHANNEL_ESTABLISHED_EVT事件,在180ms-300ms左右。connInterval设置成7.5ms。
这个180ms-300msms有 没有可能是RTOS的性能造成的影响,比如纯在任务切换等?还是纯粹协议栈实现完成连接的时间?
3.另外下面这段代码,通过打印ICall_getTicks()系统的tick,可以算出,三段GapInit_setPhyParam设置函数,就会占用20ms时间,有没有中间有其他不需要执行的多余参数设置?
static void RTLSMaster_processRTLSConnReq(bleConnReq_t *bleConnReq)
{
// Sanity check
if (!bleConnReq)
{
return;
}
static char setPhyParam_flag = 0;
px_trace("[px] conncet start 1 %d",ICall_getTicks());
//Set connection interval and supervision timeout
if(!setPhyParam_flag)
{
GapInit_setPhyParam(INIT_PHY_1M | INIT_PHY_2M | INIT_PHY_CODED, INIT_PHYPARAM_CONN_INT_MAX, bleConnReq->connInterval);
GapInit_setPhyParam(INIT_PHY_1M | INIT_PHY_2M | INIT_PHY_CODED, INIT_PHYPARAM_CONN_INT_MIN, bleConnReq->connInterval);
GapInit_setPhyParam(INIT_PHY_1M | INIT_PHY_2M | INIT_PHY_CODED, INIT_PHYPARAM_SUP_TIMEOUT, DEFAULT_UPDATE_CONN_TIMEOUT);
setPhyParam_flag = 1;
}
px_trace("[px] conncet start 2 %d",ICall_getTicks());
GapInit_connect(bleConnReq->addrType & MASK_ADDRTYPE_ID, bleConnReq->addr, DEFAULT_INIT_PHY, 0);
px_trace("[px] conncet start 3 %d",ICall_getTicks());
}

