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.

CC2642R-Q1: CC2642

Part Number: CC2642R-Q1
Other Parts Discussed in Thread: SYSCONFIG

背景:

用设备A进行广播,用设备B作为中心扫描,将A的信息添加到设备B扫描的白名单中,设备B扫描到设备A后会建立蓝牙连接,在连接状态中,设备A会进行定位广播,这个时候设备B会在连接的状态进行扫描,扫描到设备A的广播信号RSSI

目前:

我现在将设备A和设备B进行蓝牙连接后,再开启设备B的扫描功能,不能扫到设备A的定位广播信息,需要修改哪些配置呢?

  • 您好,

    能再解释一下

    在连接中,B可以扫到A的RSSI

    连接后,B扫不到A的定位广播信息

    这是时序先后发生的吗

  • 连接前B会扫描到A的广播并建立连接,连接后A会开启低功耗的定位广播,让B保持与A的蓝牙连接的情况下还能够通过扫描的方式获取A广播的RSSI值

  • 可以理解为,我想设备在处于连接状态的时候仍能进行扫描,扫描已连接设备的广播

  • 明白您的问题,需要一些时间,谢谢

  • 您需要,确保设备AB成功建立蓝牙连接

    然后在设备B上启动扫描,设置正确扫描参数

    通常用主动扫描类型,设置合适的扫描窗口和间隔

    1. simplelink_academy_lab介绍如何处理扫描响应和广播数据 

    2. 利用 SysConfig (对于Bluetooth LE广播设备)了解 advData 和 scanResData 的组织方式 

    uint8_t advData1[] =
    {
      0x03,
      GAP_ADTYPE_LOCAL_NAME_SHORT,
      'S',
      'P',
    
      0x02,
      GAP_ADTYPE_FLAGS,
      GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED | GAP_ADTYPE_FLAGS_GENERAL,
    
      0x03,
      GAP_ADTYPE_16BIT_MORE,
      LO_UINT16(0xfff0),
      HI_UINT16(0xfff0),
    
    };
    
    uint8_t scanResData1[] =
    {
      0x12,
      GAP_ADTYPE_LOCAL_NAME_COMPLETE,
      'S',
      'i',
      'm',
      'p',
      'l',
      'e',
      ' ',
      'P',
      'e',
      'r',
      'i',
      'p',
      'h',
      'e',
      'r',
      'a',
      'l',
    
      0x02,
      GAP_ADTYPE_POWER_LEVEL,
      0,
    
      0x05,
      GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE,
      LO_UINT16(80),
      HI_UINT16(80),
      LO_UINT16(104),
      HI_UINT16(104),
    
    };