使用CoreBluetooth提高文件传输速度

李·安德鲁

我目前有我的OSX应用程序(中央)通过writeValue通过可写特性将4Kb图像发送到我的iOS应用程序(外围)。

因为图像大小超出了限制,所以我通过以下函数多次使用writeValue:

func sendData() {
    while (self.sendDataIndex < self.dataToSend.length) {
        var amountToSend = self.dataToSend.length - self.sendDataIndex!

        if (amountToSend > NOTIFY_MTU) {
            amountToSend = NOTIFY_MTU
        }

        // Copy out the data we want
        var chunk = self.dataToSend.subdataWithRange(NSMakeRange(self.sendDataIndex!, amountToSend))

        // Send it
        self.discoveredPeripheral?.writeValue(chunk, forCharacteristic: self.setupCharacteristic, type: CBCharacteristicWriteType.WithoutResponse)

        // It did send, so update our index
        self.sendDataIndex = self.sendDataIndex!+amountToSend;

    }
    self.discoveredPeripheral?.writeValue("EOM".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true), forCharacteristic: self.setupCharacteristic, type: CBCharacteristicWriteType.WithResponse)
}

我的问题是,它花费的时间比我需要的要长得多,大约需要30秒。

奇怪的是,即使我在发送图像时使用CBCharacteristicWriteType.WithoutResponse,却得到了它们的响应,我想知道这是否会使它变慢。

这就是我在外围设备上进行特征设置的方式:

var cbProperties = CBCharacteristicProperties.Read|CBCharacteristicProperties.Write|CBCharacteristicProperties.Notify
var cbPermissions = CBAttributePermissions.Readable|CBAttributePermissions.Writeable
var transferCharacteristic = CBMutableCharacteristic(type: CBUUID.UUIDWithString(SETUP_CHARACTERISTIC_UUID), properties: cbProperties, value: nil, permissions: cbPermissions)

我已经为NOTIFY_MTU尝试了不同的值,范围从20到900,但是它越高,执行writeValue的次数就越少,但是每个包到达所花费的时间就越长。

我已经看到转帐的执行速度更快,关于如何改善转帐的任何建议?

谢谢

李·安德鲁

通过将CBCharacteristicProperties更改为WriteWithoutResponse,我可以将其降低到3秒。

程序包的传输速度非常快,但是我不知道何时交付了响应,所以我不得不执行自己的响应才能知道传输何时完成。

除此之外,它的运行非常棒!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用CoreBluetooth提高文件传输速度

来自分类Dev

使用Python提高UDP传输速度的最佳方法?

来自分类Dev

如何提高硬盘传输速度

来自分类Dev

提高外部硬盘的传输速度

来自分类Dev

修复/提高局域网传输速度

来自分类Dev

提高流式传输大(1-10 gb)文件.Net Core的速度

来自分类Dev

通过硬线局域网传输文件以提高速度;电脑也已连接WiFi

来自分类Dev

复制粘贴大量数据时,可以通过应用程序提高文件传输速度吗?

来自分类Dev

我必须使用哪些选项来提高文件的下载速度?

来自分类Dev

我必须使用哪些选项来提高文件的下载速度?

来自分类Dev

使用ipv6可以加快文件传输速度吗?

来自分类Dev

韩国的文件传输速度很慢

来自分类Dev

提高使用余数的功能速度:

来自分类Dev

提高使用余数的功能速度:

来自分类Dev

使用下载速度提高上传速度的算法

来自分类Dev

cakephp htaccess文件,可提高网站速度

来自分类Dev

如何提高或保持复制文件的开始速度

来自分类Dev

提高加载文件的for循环速度

来自分类Dev

cakephp htaccess文件,可提高网站速度

来自分类Dev

Maya 文件格式以提高播放速度

来自分类Dev

使用分布式文件系统时如何提高读写速度?

来自分类Dev

ADB传输文件的速度非常慢

来自分类Dev

android模拟器文件传输速度

来自分类Dev

共享文件传输速度取决于什么?

来自分类Dev

如何使用RallyAPIForJava提高速度

来自分类Dev

如何提高使用MySQL的PHP脚本的速度?

来自分类Dev

使用CloudFront如何提高上传速度?

来自分类Dev

如何使用RallyAPIForJava提高速度

来自分类Dev

使用proc info来提高PC的速度

Related 相关文章

热门标签

归档