BLE 扫描反应慢[已解决]
BLE 扫描反应慢[已解决]
设备0.5秒广播一次,使用手机可以很快抓到广播包,但是C3或者ESP32的BLE扫描 有时候需要等待很久 大概2秒到3秒才能扫到,有办法优化吗。
Re: BLE 扫描反应慢
可以把 esp_ble_scan_params_t 中的 scan_interval 调到最小(不是 0 ,esp_ble_scan_params_t 中有注释说明 ),scan_window 与scan_interval 相同试下,其他也没什么了
Re: BLE 扫描反应慢
没有用,全部都是0x50 0x50 开启一直扫描模式 或者 0x800 0X800都试过了 就是不如手机的反应,如果1秒的广播包 有时候要等6 7秒才会搜索到
Re: BLE 扫描反应慢
我使用手机和 esp32 分包模拟了 1s 一次的广播,并使用以下代码
去扫描,扫到计算时间后重启,看到时间平均时 1 ~ 2 秒就可以扫到的,你可以试下Re: BLE 扫描反应慢
这是我修改的一直扫描 手机广播微1秒一次 AD广播包名称LCOK:123456789123 看打印频率能感觉出来 中间 有一段时间5到8秒没有获取到AD数据,有时候有能正常扫描到,不是那种固定可以扫描到,应该不是环境问题打架,用手机去扫描就可以固定扫描出来间隔是1S的间隔 但是乐鑫扫描出来 中间有7 8秒是没有数据打印的
- Attachments
-
- gattc_demo.c
- (22.71 KiB) Downloaded 627 times
Re: BLE 扫描反应慢
你好,我也试了你上述代码及 1s 一次的广播,并没发现你所遇到的 7,8 秒没打印出来数据的情况,log 如附件中所示,代码中只改动了打印时间的设置 请问你esp设备和手机的距离是怎样的? 距离过长或者干扰环境对设备扫描广播都会有影响,如果 5- 8 秒未能获取到 AD 数据,与 esp32 同样的位置,使用 sniffer 抓包卡是否能抓到广播包呢
还有上面的打印 raw data 的选项建议你也开下,看下每次接收到的广播数据是怎样的
- Attachments
-
- scan_1s_interval_adv_log.txt
- (32.68 KiB) Downloaded 608 times
Re: BLE 扫描反应慢
刚才也测试了, 参数如下
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扫到的间隔经常不连续,中间缺少两三包
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 扫描反应慢
没有设备能够保持百分百收包率的, 而且这个也是受环境影响的,你可以在扫描设备(esp32)和广播设备之间一米内的距离下,统计下收包率呢,并且有的抓包卡是三个信道同时扫描,你也可以统计下单信道的收包率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扫到的间隔经常不连续,中间缺少两三包
Who is online
Users browsing this forum: Baidu [Spider] and 124 guests