This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于SimpleBLEObserver监听时间的问题



hi, TI experts:

请教一个关于SimpleBLEObserver监听时间的问题:

在SimpleBLEObserver项目中,按下joystick的UP键(HAL_KEY_UP)开始监听(discovery),一段时间后,不管有没有找到附近的设备,都返回GAP_DEVICE_DISCOVERY_EVENT的event,此时dicovery就结束了。

那么可不可以控制discovery的时间长度,或者使其一直处于discovery的状态呢?

谢谢。

  • CN,

    你不要去调用GAPObserverRole_StartDiscovery(),

    而是直接去hci.h中的 HCI_LE_SetScanEnableCmd(), 然后自己启动一个timer,配置你自己想要的扫描时间,时间到了后在调用 HCI_LE_SetScanEnableCmd() 关闭扫描。

  • YAN

    如果扫描到附件的设备,返回的也是GAP_DEVICE_DISCOVERY_EVENT吗?

    哪里可以找到HCI_LE_SetScanEnableCmd()详细的说明?

    thanks

  • 还有一种方法就是在GAP_DEVICE_DISCOVERY_EVENT事件继续调用GAPObserverRole_StartDiscovery()函数

    ……

    case GAP_DEVICE_DISCOVERY_EVENT:
    {
    // discovery complete

    ……


    //继续开始主动扫描
    GAPObserverRole_StartDiscovery( DEFAULT_DISCOVERY_MODE,
    DEFAULT_DISCOVERY_ACTIVE_SCAN,
    DEFAULT_DISCOVERY_WHITE_LIST ); 

    ……

    }
    break;

    ……


    这种方式就可以持续监听广播了

  • CN,

    查找到设备返回的是GAP_DEVICE_INFO_EVENT。

    GAP_DEVICE_DISCOVERY_EVENT代表查找设备结束。

    HCI_LE_SetScanEnableCmd() 说明你可以在hci.h中看一下。如果有兴趣,可以去看一下蓝牙的spec.