TI中文支持网
TI专业的中文技术问题搜集分享网站

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:

顶一下,哪位高手能解答啊

xiangyang guo:

回复 yanming zhang:

你好,yanming zhang :

        我也遇到这样的问题了,请问你找到解决方面了吧?

kqian0327:

你好,

请把更新至最新版的协议栈1.41版本,希望对你有帮助。

yanming zhang:

回复 xiangyang guo:

尝试广播和搜索交替执行。

xiangyang guo:

回复 yanming zhang:

你好,yanming zhang:

      谢谢你的回复,目前正在尝试这种方法。

赞(0)
未经允许不得转载:TI中文支持网 » peripheral + observer profile 使用问题
分享到: 更多 (0)