就比如这个 static void simpleBLECentralEventCB( gapCentralRoleEvent_t *pEvent )。我用这个例程添加了串口打印,通过串口输入1 开始扫描,
在这个函数simpleBLECentralEventCB( gapCentralRoleEvent_t *pEvent ) 里面的 case GAP_DEVICE_INFO_EVENT:里面的
if ( simpleBLEFindSvcUuid( SIMPLEPROFILE_SERV_UUID,
pEvent->deviceInfo.pEvtData,
pEvent->deviceInfo.dataLen ) )
{
// LCD_WRITE_STRING( " 668 GAP_DEVICE_INFO_EVENT ", HAL_LCD_LINE_1 );
simpleBLEAddDeviceInfo( pEvent->deviceInfo.addr, pEvent->deviceInfo.addrType );
}
通过串口打印知道 simpleBLEFindSvcUuid 是返回假的。 所以就没有办法simpleBLEAddDeviceInfo() 添加设备了。
进去simpleBLEFindSvcUuid() 看到:
adLen = *pData++;
adType = *pData;
// If AD type is for 16-bit service UUID
if ( adType == GAP_ADTYPE_16BIT_MORE || adType == GAP_ADTYPE_16BIT_COMPLETE ) 是因为这个if () 为假造成的。
我想看 pData 里面到底是什么内容 使之为假,所以我找到 gapCentralRoleEvent_t *pEvent 这个参数。
问题来了:
回调函数的参数是怎么传递的。 还有我怎么找不到 pEvent 这个变量是在哪里赋值或者改变 的。