簡體   English   中英

在iOS 8中使用藍牙發送到外圍設備的數據量

[英]Amount of data to be sent to peripheral using bluetooth in ios 8

我正在使用藍牙將數據從BLE設備傳輸到外圍硬件。 我想從二進制文件中分塊寫入數據,因為總數據長度為143233。我發現一行“ iOS 7設備的最大MTU為132字節,iOS 6設備的最大MTU為20 B”,但是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開銷)。

顯然,是否接受這些值或返回較低的值將取決於其他設備。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM