我们有一个 Python 应用程序,它一次连接到 10 个 BLE 设备并执行制造测试。下面是测试的工作流程:
- 连接到 10 个设备中的第一个。
- 读取和写入一些特征,其中之一会重新启动外围设备
- 重新连接到设备 1,启用 1 个特性的通知,并监听约 170-200k 的数据
- 断开与设备 1 的连接,关闭设备 1,然后在下一个设备上重复步骤 1-3
随着我们在设备中的进展,每个设备的数据传输逐渐变慢,第一个设备很快,第二个设备稍微慢一些,等等,即使我们在执行测试后与每个设备断开连接。我们假设可能有一些与我们的使用相关的东西导致了这种减速,但是在查看了项目中相对少量的代码之后,我们无法解释 Python 代码中可能导致减速的任何内容。
我们尝试在测试时关闭每台设备以确保低干扰,从 Central 中删除缓存的设备,并在测试之间重新启动蓝牙服务。在测试了这些更改之后,sudo service bluetooth restart 是唯一可以缓解数据传输过程中延迟增长的解决方案。
我们正在寻找有关解决所描述情况或调试技术的任何想法。先感谢您!
使用的版本:Ubuntu 20.04、Bluezero 0.4.0、bluez 5.53"(已编辑)