peripheral + observer profile 使用问题
我的应用需要同时做peripheral和observer,所以使用了这个profile:http://processors.wiki.ti.com/index.php/SimpleBLE_ComboRoles
同时也打了这个patch:http://e2e.ti.com/support/wireless_connectivity/f/538/t/346265,协议栈是1.4.0。
在使用过程中发现设备突然扫描不到广播,并且自身也不发广播了,发现是GAP_DEVICE_INFO_EVENT没有进入。广播端广播间隔为50ms
关键代码如下:
case GAP_DEVICE_INFO_EVENT:
{
GAPObserverRole_CancelDiscovery();
if (pEvent->deviceInfo.eventType == GAP_ADRPT_ADV_IND) {
if (simpleBLEFindSvcUuid(PREFIX_SERVICE_UUID, pEvent->deviceInfo.pEvtData, pEvent->deviceInfo.dataLen))
doSomthing(pEvent->deviceInfo.pEvtData, pEvent->deviceInfo.dataLen);
}
}
在接受到GAP_DEVICE_DISCOVERY_EVENT事件后,间隔50ms后会再次开启扫描,其中扫描时间是3s。
为什么会不定期的接受不到GAP_DEVICE_INFO_EVENT事件,在接受不到事件的同时,作为peripheral也不发广播了,这种情况下profile也没有返回错误
GAPROLE_ERROR,加了定时器发现芯片也没有跑飞,感觉像协议栈跑飞了,请TI工程师能够给予解答,谢谢。
顶一下,哪位高手能解答啊
你好,yanming zhang :
我也遇到这样的问题了,请问你找到解决方面了吧?
你好,
请把更新至最新版的协议栈1.41版本,希望对你有帮助。
尝试广播和搜索交替执行。
你好,yanming zhang:
谢谢你的回复,目前正在尝试这种方法。
下一篇:cc2640串口能写数据但是读不了数据,进不了回调(刚学2640)
peripheral observer profile 相关文章:
- 蓝牙从机事件处理函数 SimpleBLEPeripheral_ProcessEvent的疑问
- 我的cc2540 用simpleBLEperipheral 刷完之后怎么只有 generic access service 这一个,没有其它的服务呢?
- Role Profile可以有一个共存模式,可以同时作为peripheral和broadcaster?
- 请问一下ANCS通知的时候,cc2540是central模式吗?还是peripheral模式,只不过GATT上Client模式?
- 求助:Observe如何获取Peripheral广播中的数据?
- 请问CC2540作为Central时最多能连接多少个Peripheral?