微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > GAP_DEVICE_INFO_EVENT 处理

GAP_DEVICE_INFO_EVENT 处理

时间:10-02 整理:3721RD 点击:

按向上按键,central开始扫描,然后GAP_DEVICE_INFO_EVENT 产生,但是传进来的 pEvent->deviceInfo 中怎么没有 scanRspData 的数据?

Hi wei,

应该会有.

对应的结构体也可以处理scan 的数据. 但是代码中并没有实现, 只是比较了UUID, 符合了之后就不做什么事情了.

你可以自己在GAP_DEVICE_INFO_EVENT之后加些代码实现.

接收到ad数据时, 也会导致此事件发生, 此时的数据就是advertData[]中的内容了.

再等接收到SCAN_RSP后导致此事件发生时, 这时的数据就是scanRspData了.

Hi Roger3

你可以尝试在事件 GAP_DEVICE_INFO_EVEN中  通过判断消息的附加内容来处理scanRspData,如

if(pEvent->deviceInfo.eventType == GAP_ADRPT_SCAN_RSP)//ScanRsp扫描相应包
{

//todo
NPI_WriteTransport(pEvent->deviceInfo.pEvtData,pEvent->deviceInfo.dataLen);//打印...

}

else if(pEvent->deviceInfo.eventType == GAP_ADRPT_ADV_IND)//广播包

{

//todo

}

嗨,你的这个eventType 取值不是你红色标注的那些吧,,,怎么没有呢

嗨 Yan好久不见!

我增加这样的对Rspdata处理可不可以呢?有没有什么逻辑上的错误,我的目的是想看到他能区分广播包和从机发送的扫描响应数据。

 if ( DEFAULT_DEV_DISC_BY_SVC_UUID == TRUE )
        {
          if ( ( simpleBLEFindSvcUuid( SIMPLEPROFILE_SERV_UUID,//接受的是广播包
                                     pEvent->deviceInfo.pEvtData,
                                     pEvent->deviceInfo.dataLen ) ) && 
              ( pEvent->deviceInfo.eventType == GAP_ADTYPE_ADV_IND )  )
          {
            simpleBLEAddDeviceInfo( pEvent->deviceInfo.addr, pEvent->deviceInfo.addrType );
          }
          else if( pEvent->deviceInfo.eventType == GAP_ADTYPE_SCAN_RSP_IND )//接受的是扫描包
          {
            NPI_WriteTransport( pEvent->deviceInfo.pEvtData,pEvent->deviceInfo.dataLen);
          }
        }

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top