我想知道当“中央”和“外围”设置不同的参数时,参数协商如何工作。
我可能是错的,但根据我的理解,外围设备在连接时会发出更新请求,以设置连接的参数。然后中央决定是否批准。
我不明白的是如何决定这些参数是否获得批准。而且我还没有找到任何代码。
例如,如果我有以下设置(仅选择随机值):
Central:间隔 10ms,从机延迟 0,supervisortimeout 500
外设:间隔 50ms,从机延迟 10,supervisortimeout 3000
我如何确定我的外设参数将被使用或者它们获得批准的标准是什么?
如果有人可以给出一个很好的解释,我将非常感激。
Central 做它想做的事,Peripheral 必须遵守参数,或者断开连接。
外围设备可以请求中央指定的其他参数,但没有任何迹象表明它们必须得到批准。
中央的接受标准是一系列限制条件:
- 规范(这些是恒定的和全球性的),
- 具体实现,大多数时候,它们取决于外设类型/实现的服务(苹果明确定义了一些 https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf,例如(见 3.6)),
- 动态(如果 Central 同时管理多个连接,它可能更愿意以它们各自的间隔是公共基数的倍数的方式来调度它们。
在开发外设时,您无法判断是否会使用您喜欢的连接参数。你必须应对它。而且,有些中心会采用固定参数进行连接,连接后立即发出连接参数更新,然后枚举服务并做出决定,所以当连接参数更新不符合您的需求时,您不能盲目断开连接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)