gpt4 book ai didi

macos - OS X 10.11 El Capitan 上的蓝牙低功耗延迟/延迟

转载 作者:行者123 更新时间:2023-12-05 00:20:10 25 4
gpt4 key购买 nike

我一直在开发一个 Mac OS X 应用程序,它通过低功耗蓝牙向硬件设备连续发送命令。在 Yosemite 下,该应用程序运行良好,命令传输的测量往返延迟为 7-12 毫秒。该命令以最小 2 秒和最大 0.2 秒的稳定间隔发送到自定义 BLE 服务。

现在,我最近几个月没有开发(应用程序还没有上线),然后升级到 El Capitan,现在同一个应用程序的延迟是 500-1500 毫秒 ,这使得整个东西绝对无法使用。我假设升级到 El Capitan 是原因,但我不能确定。

我检查的内容:

  • 我在多台运行 El Capitan 的 MacBook Pro 上进行了测试,延迟总是那么糟糕。
  • 无论发送到何种服务(例如,设备信息服务),这些命令都有很高的延迟,并且随着发送的每条消息而变化很大。
  • 无论我是使用我们自己的应用程序、名为“LightBlue”的第三方应用程序来发送十六进制字符串,还是 Apple 自己的“Bluetooth Explorer”开发工具(可以在开发人员资源中下载)都没有关系。

  • 任何人都可以提示我可能导致这种情况的原因,或者只是告诉我在他们的环境中一切正常?
    要进行复制,请使用 Mac 连接到任何支持蓝牙低功耗的设备,并向其发送一个十六进制数据字符串。你必须以某种方式记录它或打开一个 LED 左右,看看是否有明显的延迟。

    任何帮助是极大的赞赏!

    最佳答案

    看起来 El Capitan 使用的连接参数与 Yosemite 下的连接参数不同。

    在 OS X 下,无论客户端应用程序如何,CoreBluetooth 决定用于给定设备的连接参数。不幸的是,CoreBluetooth 计算参数所依赖的规则有些不透明并且依赖于设备(暴露的服务、DIS、AD)。 El Capitan 的某些规则可能发生了变化。

    您应该开始寻找的一些方向:

  • Apple Bluetooth Accessory Design Guidelines详细说明apple Centrals接受的连接参数的一些规则,
  • 延迟问题也可能是因为较高的 slaveLatency 连接参数。它有助于节省外围设备的电池生命周期,但会使 Central->Peripheral 延迟有些不可预测。您可以减少设备接受的从设备延迟,
  • 嗅探器日志或外围设备端调试肯定有助于了解 Yosemite 和 El Capitan 之间实际更改的参数。
  • 关于macos - OS X 10.11 El Capitan 上的蓝牙低功耗延迟/延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35197335/

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