连接间隔蓝牙核心(Connection Interval Core Bluetooth)

2019-07-21 13:59发布

Is there any way to change connection interval through Core Bluetooth? I am transferring chunks of data to Peripheral and it's talking much time to transfer the data. I want to reduce this time.

Please let me know, if it is possible to write or update the connection interval from iOS using core bluetooth.

Thank You

Answer 1:

只有从外围到iOS发送连接参数的更新。 分钟:20毫秒(参数= 16)最大:40(参数= 32)根据CoreBluetooth是最好的法律参数。 其实你会得到与最小值= 10最大值= 20或30从CoreBluetooth将选择的,而不是30毫秒恼人的,我们不能把它近似20ms的更好的性能。



Answer 2:

[_manager setDesiredConnectionLatency:CBPeripheralManagerConnectionLatencyLow forCentral:_central];

我曾经在iOS应用外周血我创造了这个方法。 你仍然不能得到低于20ms的,虽然。 非常令人沮丧,因为我需要低于16毫秒。 不为寻找可能的,现在除非它是一个HID规范(它们允许11.25ms) - 但你不能创建从iOS设备上使用HID规范。

如果你有一个iOS设备上的智能蓝牙连接的另一端,苹果规定了最小连接间隔它自己的限制。 该数值为20ms,而不是蓝牙4.0规范最低7.5ms的官员。 苹果这样做是为了确保单个应用程序不会接管所有可用带宽的蓝牙硬件,和/或过于迅速杀灭电池。 有关此限制的详细信息,请参阅苹果蓝牙设计指南(PDF)的第18页上的连接参数部分。

需要注意的是iOS版不允许你从事物的iOS的结束设定或请求连接参数。 该CoreBluetooth CBCentralManager对象的connectPeripheral方法接受一个“选项”参数,但这并不包括连接参数。 取而代之的是,从设备必须连接之后请求与新的期望参数的连接更新,然后根据上述链接的设计指南文档中的标准,iOS将接受或拒绝它们。



Answer 3:

我认为,要做到这一点的方法是使用一个定时器。

请参阅: 我怎样写在Objective-C定时器吗?

现在,这就是我代表连接间隔。 您可以在您的函数中的回调使用: - (无效)周:(CBPeripheral *)外围didUpdateValueForCharacteristic:(CBCharacteristic *)特性误差:(NSError *)错误

此外,从框架Corebluetooth来看,目前没有从中央侧更新所述连接间隔的方式。

但是,我感兴趣的是如何您的信息的连接间隔,亨里克。



文章来源: Connection Interval Core Bluetooth