Page 1 of 1
BLE 扫描反应慢[已解决]
Posted: Mon Apr 11, 2022 7:47 am
by zenghi
设备0.5秒广播一次,使用手机可以很快抓到广播包,但是C3或者ESP32的BLE扫描 有时候需要等待很久 大概2秒到3秒才能扫到,有办法优化吗。
Re: BLE 扫描反应慢
Posted: Tue Apr 12, 2022 2:56 am
by ESP_XuLZ
可以把 esp_ble_scan_params_t 中的 scan_interval 调到最小(不是 0 ,esp_ble_scan_params_t 中有注释说明 ),scan_window 与scan_interval 相同试下,其他也没什么了
Re: BLE 扫描反应慢
Posted: Tue Apr 12, 2022 5:32 pm
by zenghi
没有用,全部都是0x50 0x50 开启一直扫描模式 或者 0x800 0X800都试过了 就是不如手机的反应,如果1秒的广播包 有时候要等6 7秒才会搜索到
Re: BLE 扫描反应慢
Posted: Wed Apr 13, 2022 1:07 am
by ESP_XuLZ
有没有开 wifi 的功能,仅是 BLE 扫描吗
Re: BLE 扫描反应慢
Posted: Tue Apr 19, 2022 7:02 am
by zenghi
ESP_XuLZ wrote: ↑Wed Apr 13, 2022 1:07 am
有没有开 wifi 的功能,仅是 BLE 扫描吗
是的贵司可以试一试,反应就是和手机比不了 ,手机每次都能抓到,但是1秒一次的蓝牙广播 乐鑫这边会丢好几次
Re: BLE 扫描反应慢
Posted: Mon May 09, 2022 2:29 pm
by ESP_XuLZ
我使用手机和 esp32 分包模拟了 1s 一次的广播,并使用以下代码
去扫描,扫到计算时间后重启,看到时间平均时 1 ~ 2 秒就可以扫到的,你可以试下
Re: BLE 扫描反应慢
Posted: Sun May 15, 2022 7:05 am
by zenghi
ESP_XuLZ wrote: ↑Mon May 09, 2022 2:29 pm
我使用手机和 esp32 分包模拟了 1s 一次的广播,并使用以下代码gattc_demo.c去扫描,扫到计算时间后重启,看到时间平均时 1 ~ 2 秒就可以扫到的,你可以试下
这是我修改的一直扫描 手机广播微1秒一次 AD广播包名称LCOK:123456789123 看打印频率能感觉出来 中间 有一段时间5到8秒没有获取到AD数据,有时候有能正常扫描到,不是那种固定可以扫描到,应该不是环境问题打架,用手机去扫描就可以固定扫描出来间隔是1S的间隔 但是乐鑫扫描出来 中间有7 8秒是没有数据打印的
Re: BLE 扫描反应慢
Posted: Mon May 16, 2022 3:09 am
by ESP_XuLZ
zenghi wrote: ↑Sun May 15, 2022 7:05 am
ESP_XuLZ wrote: ↑Mon May 09, 2022 2:29 pm
我使用手机和 esp32 分包模拟了 1s 一次的广播,并使用以下代码gattc_demo.c去扫描,扫到计算时间后重启,看到时间平均时 1 ~ 2 秒就可以扫到的,你可以试下
这是我修改的一直扫描 手机广播微1秒一次 AD广播包名称LCOK:123456789123 看打印频率能感觉出来 中间 有一段时间5到8秒没有获取到AD数据,有时候有能正常扫描到,不是那种固定可以扫描到,应该不是环境问题打架,用手机去扫描就可以固定扫描出来间隔是1S的间隔 但是乐鑫扫描出来 中间有7 8秒是没有数据打印的
你好,我也试了你上述代码及 1s 一次的广播,并没发现你所遇到的 7,8 秒没打印出来数据的情况,log 如附件中所示,代码中只改动了打印时间的设置
- 2022-05-16_10-28.png (96.35 KiB) Viewed 8837 times
请问你esp设备和手机的距离是怎样的? 距离过长或者干扰环境对设备扫描广播都会有影响,如果 5- 8 秒未能获取到 AD 数据,与 esp32 同样的位置,使用 sniffer 抓包卡是否能抓到广播包呢
还有上面的打印 raw data 的选项建议你也开下,看下每次接收到的广播数据是怎样的
Re: BLE 扫描反应慢
Posted: Tue Jul 05, 2022 4:25 am
by FengXinan
刚才也测试了, 参数如下
static esp_ble_scan_params_t ble_scan_params = {
.scan_type = BLE_SCAN_TYPE_ACTIVE,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,
.scan_interval = 0x50,
.scan_window = 0x50,
.scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE
};
从机一秒一次间隔, 抓包看是每秒都有, 但ESP32扫到的间隔经常不连续,中间缺少两三包
Re: BLE 扫描反应慢
Posted: Wed Jul 06, 2022 2:43 am
by ESP_XuLZ
FengXinan wrote: ↑Tue Jul 05, 2022 4:25 am
刚才也测试了, 参数如下
static esp_ble_scan_params_t ble_scan_params = {
.scan_type = BLE_SCAN_TYPE_ACTIVE,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,
.scan_interval = 0x50,
.scan_window = 0x50,
.scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE
};
从机一秒一次间隔, 抓包看是每秒都有, 但ESP32扫到的间隔经常不连续,中间缺少两三包
没有设备能够保持百分百收包率的, 而且这个也是受环境影响的,你可以在扫描设备(esp32)和广播设备之间一米内的距离下,统计下收包率呢,并且有的抓包卡是三个信道同时扫描,你也可以统计下单信道的收包率