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

如何提高observer或者其他蓝牙主机的形式对广播包的捕获的成功率??

各位TI的工程师以及路过的大神们:

              现在我使用TI BLE 蓝牙协议栈(1.4.1)和CC2541 作为observer ,能捕捉广播信号,但是经常丢失(即便是1秒钟广播一次的广播包都会丢失)

              1.这是什么原因呢?

              2.observer是否能胜任扫描100个广播频率为1HZ广播包的任务(同时广播而捕捉失败不考虑)?

              3.若是不能,我该采用什么方式去完成这样的设计,或者说observer最快捕捉广播包的频率是多少?

              4.若是observer可以胜任这样的设计,我的参数该怎么配置?何时再发起扫描请求?

下面是我的部分修改的代码(现象是能捕捉1HZ的广播包,但是经常丢包,有时候挺连续的,有时候三四秒都没反应):

// Maximum number of scan responses
#define DEFAULT_MAX_SCAN_RES 1 //调整参数影响不大?

// Scan duration in ms
#define DEFAULT_SCAN_DURATION 10//4000   100左右会合适一点,小了也是断断续续

// Discovey mode (limited, general, all)
#define DEFAULT_DISCOVERY_MODE DEVDISC_MODE_ALL

// TRUE to use active scan
#define DEFAULT_DISCOVERY_ACTIVE_SCAN FALSE

// TRUE to use white list during discovery
#define DEFAULT_DISCOVERY_WHITE_LIST FALSE

case GAP_DEVICE_INIT_DONE_EVENT: {
//pEvent->deviceInfo.pEvtData =&broadcasterData;
{
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;

case GAP_DEVICE_INFO_EVENT:
{

HalUARTWrite(0,pEvent->deviceInfo.addr,6);

HalUARTWrite(0,pEvent->deviceInfo.pEvtData,28);

HalUARTWrite(0,&pEvent->deviceInfo.rssi,1);
}
break;

case GAP_DEVICE_DISCOVERY_EVENT:
{
// discovery complete

GAPObserverRole_StartDiscovery( DEFAULT_DISCOVERY_MODE,
DEFAULT_DISCOVERY_ACTIVE_SCAN,
DEFAULT_DISCOVERY_WHITE_LIST ); }
break;

hua xiong1:

回复 Barbara Wu:

还是会丢数据,看来是无法避免了

lkingz lin:

想要尽可能扫描到,

1、信号要好;

2、广播频率尽量高; 

3、扫描时间可以改为500ms扫描一次,这样1秒就可以扫描二次,有一次成功就算成功了

lkingz lin:

回复 lkingz lin:

如果环境中ble设备多,还要改大扫描的最大个数,以保证能扫描到空间中的所有BLE设备

lkingz lin:

回复 lkingz lin:

应该说,以保证能把扫描到空间中的所有BLE设备保存在扫描结果中; 

guang zhang:

回复 Barbara Wu:

如何知道一个扫描结束了呢?如果周围没有蓝牙,也会进入这个结束函数里面吗?

赞(0)
未经允许不得转载:TI中文支持网 » 如何提高observer或者其他蓝牙主机的形式对广播包的捕获的成功率??
分享到: 更多 (0)