BLE 扫描反应慢[已解决]

zenghi
Posts: 12
Joined: Mon Jun 21, 2021 9:20 am

BLE 扫描反应慢[已解决]

Postby zenghi » Mon Apr 11, 2022 7:47 am

设备0.5秒广播一次,使用手机可以很快抓到广播包,但是C3或者ESP32的BLE扫描 有时候需要等待很久 大概2秒到3秒才能扫到,有办法优化吗。

ESP_XuLZ
Posts: 173
Joined: Fri Mar 26, 2021 6:04 am

Re: BLE 扫描反应慢

Postby ESP_XuLZ » Tue Apr 12, 2022 2:56 am

可以把 esp_ble_scan_params_t 中的 scan_interval 调到最小(不是 0 ,esp_ble_scan_params_t 中有注释说明 ),scan_window 与scan_interval 相同试下,其他也没什么了

zenghi
Posts: 12
Joined: Mon Jun 21, 2021 9:20 am

Re: BLE 扫描反应慢

Postby zenghi » Tue Apr 12, 2022 5:32 pm

没有用,全部都是0x50 0x50 开启一直扫描模式 或者 0x800 0X800都试过了 就是不如手机的反应,如果1秒的广播包 有时候要等6 7秒才会搜索到

ESP_XuLZ
Posts: 173
Joined: Fri Mar 26, 2021 6:04 am

Re: BLE 扫描反应慢

Postby ESP_XuLZ » Wed Apr 13, 2022 1:07 am

有没有开 wifi 的功能,仅是 BLE 扫描吗

zenghi
Posts: 12
Joined: Mon Jun 21, 2021 9:20 am

Re: BLE 扫描反应慢

Postby zenghi » Tue Apr 19, 2022 7:02 am

ESP_XuLZ wrote:
Wed Apr 13, 2022 1:07 am
有没有开 wifi 的功能,仅是 BLE 扫描吗
是的贵司可以试一试,反应就是和手机比不了 ,手机每次都能抓到,但是1秒一次的蓝牙广播 乐鑫这边会丢好几次

ESP_XuLZ
Posts: 173
Joined: Fri Mar 26, 2021 6:04 am

Re: BLE 扫描反应慢

Postby ESP_XuLZ » Mon May 09, 2022 2:29 pm

我使用手机和 esp32 分包模拟了 1s 一次的广播,并使用以下代码
gattc_demo.c
(22.49 KiB) Downloaded 834 times
去扫描,扫到计算时间后重启,看到时间平均时 1 ~ 2 秒就可以扫到的,你可以试下

zenghi
Posts: 12
Joined: Mon Jun 21, 2021 9:20 am

Re: BLE 扫描反应慢

Postby zenghi » 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秒是没有数据打印的
Attachments
gattc_demo.c
(22.71 KiB) Downloaded 627 times

ESP_XuLZ
Posts: 173
Joined: Fri Mar 26, 2021 6:04 am

Re: BLE 扫描反应慢

Postby ESP_XuLZ » Mon May 16, 2022 3:09 am

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
2022-05-16_10-28.png (96.35 KiB) Viewed 8829 times
请问你esp设备和手机的距离是怎样的? 距离过长或者干扰环境对设备扫描广播都会有影响,如果 5- 8 秒未能获取到 AD 数据,与 esp32 同样的位置,使用 sniffer 抓包卡是否能抓到广播包呢
还有上面的打印 raw data 的选项建议你也开下,看下每次接收到的广播数据是怎样的
Attachments
scan_1s_interval_adv_log.txt
(32.68 KiB) Downloaded 608 times

FengXinan
Posts: 14
Joined: Tue Mar 01, 2022 2:21 am

Re: BLE 扫描反应慢

Postby FengXinan » 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扫到的间隔经常不连续,中间缺少两三包

ESP_XuLZ
Posts: 173
Joined: Fri Mar 26, 2021 6:04 am

Re: BLE 扫描反应慢

Postby ESP_XuLZ » Wed Jul 06, 2022 2:43 am

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)和广播设备之间一米内的距离下,统计下收包率呢,并且有的抓包卡是三个信道同时扫描,你也可以统计下单信道的收包率

Who is online

Users browsing this forum: Baidu [Spider] and 124 guests