基于BLE1.4.0协议栈observer监听广播数据包会丢包的问题
你好,我现在使用observer去监听不连接的广播数据包,发现不能完全监听广播包(广播包的频率只有1Hz),请问,怎样才能做到和sniffer一样能监听到所有的数据包(即便我把广播包的频率提高到几十hz)?
case GAP_DEVICE_INIT_DONE_EVENT:
{
{
gapDeviceInitDoneEvent_t *pEvt = (gapDeviceInitDoneEvent_t *)pEvent;
osal_memcpy( dongleAddr, pEvt->devAddr, B_ADDR_LEN );//复制蓝牙地址
}
LCD_WRITE_STRING( "BLE Observer", HAL_LCD_LINE_1 );
LCD_WRITE_STRING( bdAddr2Str( pEvent->initDone.devAddr ), HAL_LCD_LINE_2 );
GAPObserverRole_StartDiscovery( DEFAULT_DISCOVERY_MODE,
DEFAULT_DISCOVERY_ACTIVE_SCAN,
DEFAULT_DISCOVERY_WHITE_LIST );
}
break;
hua xiong1,
sniffer的扫描方式和BLE的标准observer是完全不一样的,是类似私有方式进行的,本质上你认为和BLE的协议完全无关。
而且sniffer只能扫描一个固定的广播频道。
Y:
你好,请问我要是只想要扫描一个固定的广播频道,怎样才能保证扫描1秒钟的广播包不丢失,或者尽可能地不丢失呢?
Y:
现在我要做的就是对100个的广播频率为1Hz的广播者进行监听,observer这样的角色是否能够胜任这个工作?如果不行,我应该采用怎样的方式完成这个设计?如果行,我这个observer又该怎样改进?非常感谢!