gpt4 book ai didi

bluetooth - 低功耗蓝牙 (BLE) 数据传输中的持续延迟

转载 作者:行者123 更新时间:2023-12-04 03:24:32 30 4
gpt4 key购买 nike

我正在尝试评估一些不同无线接口(interface)对我们在 2xRaspberry Pi 4 上的项目的适用性,目前我正在评估低功耗蓝牙。因此,我使用 Qt 框架 (5.15) 编写了中央和外围设备应用程序。在我的例子中,由于某些安全方面的原因,消息之间的延迟时间很重要。每个命令的消息大小约为 80-100 字节。在我的一项测试中,我每 80 毫秒发送 80 字节的命令。理想情况下,消息也应以 80 毫秒的间隔在其他设备上接收。对于 LAN (TCP) 接口(interface),此测试运行良好。

对于低功耗蓝牙,我观察到从外围设备发送到中央设备的消息工作得很好,我没有测量到大的延迟。我从中央到外围方向得到了不同的结果。在这里,我确实在 100ms 到 150ms 的间隔内收到了消息。这背后似乎不可能有很大的魔力,对此有什么合理的解释吗?我也使用 Python 脚本对其进行了测试,并观察到了相同的结果。所以看来 Qt 实现应该不是问题。

在研究过程中,我发现连接间隔可能会影响这一点,但在 Qt 中,QLowEnergyConnectionParameterRequest(QLowEnergyConnectionParameters 类 | Qt 蓝牙 5.15.4)对我不起作用。是否有任何命令,我可以在 Linux 的命令行上设置连接间隔以进行测试?

亲切的问候,
本FR

最佳答案

您的代码可能从中央到外围较慢,因为使用了 WRITE 而不是 WRITE WITHOUT RESPONSE。不同之处在于 WRITE 等待确认,因此会减慢通信速度,而 WRITE WITHOUT RESPONSE 非常类似于通知/指示的工作方式,因为 ATT 层没有 ACK。您可以通过更改 write mode 来更改此设置您的应用程序并确保外围设备的特性支持 WriteNoResponse .

关于更改连接间隔,更改需要从远程端接受才能生效。换句话说,如果你是向外设请求连接参数更改,那么中央需要有代码来接收这个连接参数更改请求并接受它。

查看下面的链接以获取更多信息:-

关于bluetooth - 低功耗蓝牙 (BLE) 数据传输中的持续延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67859113/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com