是否存在使用OSX 10.12.5导致丢失数据包数据的蓝牙LE问题?


1

问题:

当两个IMU同时发送数据并在我的调试脚本中接收时,只有一个IMU传感器的一个数据流出现在日志中。相同的脚本显示在其他系统上运行时的预期结果。

版本:

我的笔记本电脑的相关硬件/固件/软件版本

  • OSX 10.12.5
  • Apple蓝牙软件版本:5.0.4f18
  • 制造商:Broadcom
  • 运输:USB
  • 芯片组:20702B0
  • 固件版本:v137 c9260
  • HCI版本:4.0(0x6)
  • HCI修订版:0x242C
  • LMP版本:4.0(0x6)
  • LMP Subversion:0x4189

我的测试脚本的相关软件版本

  • Xcode 8.3
  • 节点v6.11.0
  • 贵族1.8.1

细节:

以上涉及我用于调试BLE问题的测试脚本。该脚本充当中央设备,连接到从北欧蓝牙芯片广播数据的BLE外围传感器(IMU)。

硬件似乎不是问题。我可以在许多不同的系统上运行预期结果的测试脚本,所以它似乎与我的笔记本电脑上的蓝牙的硬件/固件/软件版本相关,但我找不到任何相关信息。

  • 我运行的测试使用相同的节点和lib版本在其他环境中演示预期结果。
  • 使用相同的OSX版本进行测试,并使用不同的OSX版本和预期结果。
  • 在Android上测试了一个具有预期结果的不同数据包观察应用程序。
  • 2个IMU已经过独立测试并确认可以正常工作。
  • 当我观察单个IMU(不是同时对)时,我能够正确地观察数据。
  • 我尝试重启我的机器没有任何效果。
  • 我重置了蓝牙模块并重新启动了我的机器。
  • 我已经观察到使用xcode数据包嗅探器的BLE数据包,并且预期的数据包也没有出现在那里(即独立观察,因此它似乎不是节点/高级问题)。
  • 我也尝试使用不同的语言实现连接到我的Mac上的OSX蓝牙层,但实际上我找不到任何工作库。
  • 我没有遇到过使用同一台机器的任何其他常规蓝牙问题或BLE问题。

基本上我是绝望的,不知道还有什么可以尝试或如何调试这个问题。

我正在寻找识别问题或想法的想法,以帮助我调试问题。如果有人有任何见解,请告诉我。非常感谢!

Answers:


0

丢包问题是由于不同操作系统允许的最小连接间隔不同以及外围设备试图输出的数据量。由于项目的要求,我们需要相当高的吞吐量。由于一些混淆变量,我对从同一操作系统获得正面和负面结果的原始评估是不正确的。在我测试的所有mac机器上都发生了相同的数据包丢失。使用os x vs使用ubuntu会发生更大的数据包丢失,因为对于与corebluetooth接口的所有Apple软件,最小连接间隔为20ms存在理论上的限制。我不确定ubuntu是否施加了类似的限制,但我肯定使用ubuntu观察到较少的数据包丢失。我的预感是没有人为的限制,连接间隔可能已达到7.5毫秒的最低限度,但我将不得不做更多的研究来弄清楚实际数字是多少。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.