繁体   English   中英

iOS BLE 连接参数是否也适用于 iOS Slave/Peripheral?

[英]Do iOS BLE Connection Parameters also apply to iOS Slave/Peripheral?

苹果对BLE连接参数的要求: https : //developer.apple.com/library/archive/qa/qa1931/_index.html

这些假设 iOS 设备处于主(中央)模式,还是也适用于从(外围)模式?

鉴于master最终定义了连接参数(即它可以拒绝来自slave的参数调整请求),如果非iOS master指定了“不兼容”的连接参数,iOS设备是否只是跳过/忽略主数据包/帧不合规? 如果 iOS BLE 堆栈是蓝牙认证的,我看不出这是怎么回事。 即,如果 iOS 设备以从属模式连接,则 iOS 似乎无法对 BLE 通信实施任何限制。


编辑:iOS 外围设备/从设备可能会违反规范的一个示例在 BT 规范 5.0 的第 6 卷 B 部分第 4.5.1 节中:“当 connSlaveLatency 设置为零时,从设备应在每个锚点侦听。如果在应用从设备延迟后,从设备没有从主设备接收到数据包,它应该在每个锚点监听,并且在收到来自主设备的数据包之前不应用从设备延迟。”

因此,无论从机延迟是零还是非零,从机都必须能够适应每个锚点的侦听。 因此,除非 iOS 外设拒绝进入与不兼容连接参数的 BLE 中心的连接(或者如果 BLE master 在连接中更改连接参数将终止连接),那么 iOS slave 必须遵守或不满足规格那么,如果不管用户应用程序的意愿如何,iOS BLE 外围设备/从设备堆栈都不会进入或结束连接,是否会被视为“符合规范”?

我们在生产中使用了一个产品(BLE 设备)很长一段时间,它与充当从设备的 iOS 设备进行通信。 我们的产品是主设备。 我们使用的连接参数超出了 Apple 的指导方针,到目前为止还没有发现任何问题。 根据蓝牙规范,从站不能拒绝主站指定的连接参数,因此它可以工作的事实是可以预料的。

Apple 唯一能做的就是断开链接(在连接设置后或连接参数更新后立即断开),但似乎他们还没有走那么远。 我认为他们永远不会那样做,因为那可能会有问题,而且会向 Apple 发出大量支持电话......

请注意,如果参数不可接受,蓝牙规范建议断开连接(但 Apple 似乎没有这样做):

如果请求或更新的连接参数对于中央或外设来说是不可接受的,那么它可能会以错误代码 0x3B(不可接受的连接参数)断开连接。 设备应该能够容忍远程设备提供给它们的连接参数。

Apple 对 BLE 规范制定了进一步的规定,并且符合 BLE 规范。 如果iOS设备成为Central(Master)设备,Central端有权接受连接间隔变化。 如果 iOS 设备不遵循 Apple 的规则,则它们似乎被实现为拒绝连接间隔请求。 我认为他们希望保护他们的产品,比如功耗。 我不知道iOS设备是外围角色的情况。 但是关注点/概念的根源是相同的,所以我认为当您的中央设备不遵循 Apple 的规则时,iOS 外围设备将断开您的中央设备。 你以前试过吗? 怎么样? 断线了??

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM