在ios 8中使用蓝牙发送到外设的数据量
问题描述:
我正在使用蓝牙从BLE设备向外设硬件进行数据传输。我想以二进制文件的块形式写入数据,因为总数据长度为143233.我发现一行“最大MTU为iOS 7设备为132字节,iOS 6为20 B”,但iOS 8如何? iOS 8的最大区块大小是多少?这是我使用的代码,我不知道我是否正确的方式,所以帮助我,并指导我,如果我错了。提前致谢。在ios 8中使用蓝牙发送到外设的数据量
var count:Int = 0
var counter:Int = 0
var str:NSString = NSBundle.mainBundle().pathForResource("spp", ofType: "bin")!
println("string value is \(str)")
var dataFile:NSString = NSString.stringWithContentsOfFile(str, encoding: NSASCIIStringEncoding, error: nil)
data = dataFile.dataUsingEncoding(NSUTF8StringEncoding)
println(data!.length)
println(dataFile.length)
var dataLen:Int = data!.length
if (dataLen > 132)
{
while(count < dataLen && dataLen - count > 132)
{
peripheral.writeValue(data!.subdataWithRange(NSMakeRange(count, 132)), forCharacteristic: arrCharacteristics!.objectAtIndex(1) as CBCharacteristic , type: CBCharacteristicWriteType.WithResponse)
NSThread.sleepForTimeInterval(0.005)
println("Write performed \(counter++)")
count += 132
}
} if (count < dataLen)
{
peripheral.writeValue(data!.subdataWithRange(NSMakeRange(count, dataLen - count)), forCharacteristic: arrCharacteristics!.objectAtIndex(1) as CBCharacteristic , type: CBCharacteristicWriteType.WithResponse)
}
答
我在猜测Jalek找到了他的答案,但对于其他人寻找数字。
iOS 7请求135字节MTU(132字节数据+ 3开销)。
iOS 8请求158字节的MTU(155字节数据+ 3开销)。
显然,它将取决于其他设备是否接受这些值或返回较低的值。
我可以在iOS 9.2上验证mtu是158以及 – 2016-01-18 23:11:02
这些数字的任何来源? – yageek 2016-11-02 17:26:03