请问 esp_ble_mesh_start_ble_scanning 方法如何设置扫描周期?

qiuyonggang
Posts: 11
Joined: Tue Feb 07, 2023 6:26 am

请问 esp_ble_mesh_start_ble_scanning 方法如何设置扫描周期?

Postby qiuyonggang » Thu May 09, 2024 9:44 am

大家好,
我们使用的芯片是esp32-C3
IDF版本版本:5.0.0
我们开发的产品使用BLE Mesh组网,我们同时希望产品能开启扫描BLE广播包的功能,根据乐鑫官方在线文档 "https://docs.espressif.com/projects/esp ... is-enabled" 的介绍,我们用下面的代码实现了上述扫描功能:
esp_err_t status;
if ((status = esp_ble_mesh_register_ble_callback(esp_ble_mesh_ble_cb)) != ESP_OK) {
return;
}
esp_ble_mesh_start_ble_scanning(&mesh_ble_scan_params);

现在我们碰到的问题是,扫描结果事件ESP_BLE_MESH_SCAN_BLE_ADVERTISING_PKT_EVT,只能30秒收到一次,我们希望能更快(比如5~10秒)扫描一次,请问有什么途径可以实现呢?感谢支持!

qiuyonggang
Posts: 11
Joined: Tue Feb 07, 2023 6:26 am

Re: 请问 esp_ble_mesh_start_ble_scanning 方法如何设置扫描周期?

Postby qiuyonggang » Wed May 15, 2024 2:50 am

经过测试,修改mesh_core下面的scan.c中的参数
#define SCAN_INTERVAL 0x20
#define SCAN_WINDOW 0x20
可以有效调整扫描结果返回频度,在0x20~0x4000的范围内,数值越大,返回结果越快,最快基本1秒返回一次扫描结果,就是不知道会不会对底层的ble mesh通信造成影响,后面再测试吧,上述测试供大家参考。

Who is online

Users browsing this forum: No registered users and 10 guests