繁体   English   中英

连接间隔核心蓝牙

[英]Connection Interval Core Bluetooth

有什么办法可以通过Core Bluetooth更改连接间隔? 我正在将大量数据传输到Peripheral,这是在谈论很多时间来传输数据。 我想减少这个时间。

如果可以使用核心蓝牙从iOS编写或更新连接间隔,请告诉我。

谢谢

仅通过将连接参数更新从您的外围设备发送到iOS。 根据CoreBluetooth,最小:20ms(参数= 16)最大:40(参数= 32)是最佳合法参数。 实际上,当Min = 10 Max = 20或30时,您会获得更好的性能,CoreBluetooth将从中选择大约20ms而不是30ms。烦人的,我们无法设置。

[_manager setDesiredConnectionLatency:CBPeripheralManagerConnectionLatencyLow forCentral:_central];

我在创建的iOS外围设备应用程序中使用了此方法。 不过,您仍然不能低于20毫秒。 非常沮丧,因为我需要低于16ms。 除非它是HID配置文件(它们允许11.25ms),否则目前看来不可能。但是您不能从iOS设备创建HID配置文件。

如果您的Bluetooth Smart链接的另一端有iOS设备,Apple会对最小连接间隔施加自己的限制。 该值是20毫秒,而不是官方的蓝牙4.0规范最小值7.5毫秒。 Apple这样做是为了确保单个应用程序不会占用蓝牙硬件上的所有可用带宽,并且/或者过快地耗尽电池电量。 有关此限制的详细信息,请参阅《 Apple蓝牙设计指南》(PDF)第18页上的“连接参数”部分。

请注意,iOS不允许您从iOS终端设置或请求连接参数。 CoreBluetooth CBCentralManager对象的connectPeripheral方法采用“选项”参数,但是不包括连接参数。 相反,从属必须在连接后请求使用新的所需参数的连接更新,然后iOS会根据上面链接的“设计指南”文档中的条件接受或拒绝它们。

我相信这样做的方法是使用计时器。

请参阅: 如何在Objective-C中编写计时器?

现在,这就是我表示连接间隔的方式。 您可以在函数的回调中使用它:-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error

另外,从Corebluetooth框架来看,当前无法从中央端更新连接间隔。

但是,我对您的连接间隔信息henrik感兴趣。

暂无
暂无

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

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