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

GAP_DEVICE_INFO_EVENT 处理

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

Yan:

Hi wei,

应该会有.

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

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

Roger3:

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

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

shaokai Lin:

回复 Roger3:

Hi Roger3

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

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

//todoNPI_WriteTransport(pEvent->deviceInfo.pEvtData,pEvent->deviceInfo.dataLen);//打印…

}

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

{

//todo

}

CQ JiMi:

回复 shaokai Lin:

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

CQ JiMi:

回复 Yan:

嗨 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);}}

user4665025:

回复 shaokai Lin:

收不到这个事件pEvent->deviceInfo.eventType == GAP_ADRPT_SCAN_RSP

Viki Shi:

回复 user4665025:

这个帖子很老了,请重新发布你的问题,并提供尽可能详细的描述,比如,芯片,协议栈版本,所用例程,想要实现什么等

赞(0)
未经允许不得转载:TI中文支持网 » GAP_DEVICE_INFO_EVENT 处理
分享到: 更多 (0)