iOS蓝牙LE:代码= 6“连接意外超时。”

时间:2015-09-15 14:11:34

标签: ios bluetooth-lowenergy

我有一个BLE外围设备(我控制固件)和两个移动应用程序作为中心,一个在Android上,另一个在iOS 8.1上。

Android应用可以正常使用。 iOS没有。连接后它会自动断开一段时间。错误是:

  

代码= 6“连接意外超时。”

连接和断开连接之间的时间是随机的。我的测量时间从40s到4m30s。

所有外围设备正在进行BLE连接,正在将一些固件日志消息写入移动应用UI。每隔几分钟就会快速连续写下一个特征。外围设备固件没有错误。

如何找到断开的原因?

2 个答案:

答案 0 :(得分:6)

在外围设备上的BLE模块制造商Nordic Semiconductor的广泛支持下,我们非常确定iPhone 5C BLE模块的时钟原因是不准确的。也就是说,它不如连接请求中所述的那么准确。以下是关于北欧论坛的问题:

https://devzone.nordicsemi.com/question/51258/ios-8-disconnection-code6-the-connection-has-timed-out-unexpectedly/

答案 1 :(得分:0)

因此,与iOS相连的Microchip BM78蓝牙模块遇到了这个问题。我发现此技术说明非常有帮助: https://developer.apple.com/library/archive/qa/qa1931/_index.html

这些设置将闪烁到BM78模块上。以下是上述技术说明中的Apple“规则”:

  • 间隔最小值≥15 ms(15 ms的倍数)
  • 最小间隔+ 15 ms≤最大间隔(允许最大间隔== 15 ms)
  • 最大间隔*(从属延迟+ 1)≤2秒
  • 最大时间间隔*(从属延迟+ 1)* 3
  • 从属延迟≤30
  • 2秒≤connSupervisionTimeout≤6秒

我的价值观(很好):

  • 间隔最小值= 15毫秒
  • 最大间隔= 30毫秒
  • 从属延迟= 4
  • 连接监督超时=〜5秒