用579 里例子Observer 的问题

作为观察者为何只能上电接一次数据 就是只有初始化后进入 case GAP_DEVICE_INIT_DONE_EVENT;然后一直循环

GAP_DEVICE_DISCOVERY_EVENT里的打印"Discovering, 想知道满足什么条件才能循环进入 GAP_DEVICE_INFO_EVENT接受到广播者发送的数据呢?GAPRole_ObserverStartDiscovery这个函数的原型在哪里找到?

static void ObserverEventCB( gapRoleEvent_t *pEven" )

{

  switch ( pEvent->gap.opcode )

  {

    case GAP_DEVICE_INIT_DONE_EVENT:  

      {

        GAPRole_ObserverStartDiscovery( DEFAULT_DISCOVERY_MODE,

                                        DEFAULT_DISCOVERY_ACTIVE_SCAN,

                                        DEFAULT_DISCOVERY_WHITE_LIST ); 

        PRINT ( "Discovering...\n");        

      }

      break;


    case GAP_DEVICE_INFO_EVENT:

      {

        ObserverAddDeviceInfo( pEvent->deviceInfo.addr, pEvent->deviceInfo.addrType );

      }

      break;

      

    case GAP_DEVICE_DISCOVERY_EVENT:

      {


先看上一个case语句

GAPRole_ObserverStartDiscovery(DEFAULT_DISCOVERY_MODE,
DEFAULT_DISCOVERY_ACTIVE_SCAN,
DEFAULT_DISCOVERY_WHITE_LIST); 我们可以看到可以看到本函数的定义

extern bStatus_t GAPRole_ObserverStartDiscovery( uint8_t mode, uint8_t activeScan, uint8_t whiteList );

uint8_t mode:发现模式? ?uint8_t activeScan:如果为TRUE执行主动扫描? ??uint8_t whiteList:仅扫描白名单中的设备

进入GAP_DEVICE_INFO_EVENT是和前一个case有关的,开启扫描就会进入。进入循环的话需要进行GAPRole_ObserverStartDiscovery扫描,再进入GAP_DEVICE_INFO_EVENT之后再进入GAP_DEVICE_DISCOVERY_EVENT处理扫描到的数据,最后再到GAPRole_ObserverStartDiscovery开启扫描进入循环。

这有一篇关于discover的博客可以参考一下:

CH58X/CH57X/V208 Observer(观察者)例程讨论讲解 - 小舟从此逝_1 - 博客园 (cnblogs.com)



谢谢了 请问在哪能找到广播者(不连接)和观察者收发数据的例子 ,官方的好像没有数组 我在做个项目打算采集多点的电压


我们的例程里面是有广播者的例程的。

这里有一篇关于广播者的博客可以参考一下CH58X/CH57X/V208的Broadcaster(广播者)例程讲解 - 小舟从此逝_1 - 博客园 (cnblogs.com)

image.png


只有登录才能回复,可以选择微信账号登录