![](/img/trans.png)
[英]BLE: image transfer between 2 ios devices using CoreBluetooth
[英]Transfer large binary string to BLE device from ios app using corebluetooth
我想從我的 ios 應用程序(中央設備)向 BLE 設備(外圍設備)發送大二進制字符串。 它對小字符串工作正常,但是當我嘗試發送大字符串時,它沒有接收並且連接自動斷開。 我讀過我們需要將大數據分成多個塊才能發送。 但我沒有找到任何工作樣本。
請看代碼發送字符串
let stringToSend = "0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000@"
.
let data : NSData = stringToSend.dataUsingEncoding(NSUTF8StringEncoding)!
if positionCharacteristic != nil {
self.polarH7HRMPeripheral.writeValue(data, forCharacteristic: positionCharacteristic, type: .WithoutResponse)
self.polarH7HRMPeripheral.setNotifyValue(true, forCharacteristic: positionCharacteristic)
}
提前致謝
某些設備寄存器的大小有限。 它們不能包含超過 X 個字節進行處理。 讓我們假設所述 BLE 設備需要一些短命令格式的長命令。 我們還假設所述設備也能夠接收短命令。 設備如何知道短命令和部分長命令之間的區別? 使用說明命令類型的命令格式。 例如:一個命令將包含 1 個頭字節、6 個內容字節、1 個命令類型字節。 部分長命令的命令類型為 11111111,最后一部分為 11111110。短命令的命令類型為 00000000。
這就是我為設備的差異命令“定義”一個簡單協議的方式。
我建議您在該設備的開發人員手冊中查找該協議
有些設備最多接受 20 個字節,所以你必須吐出你的字符串。
for strMsgPart in stringToSend.split(by: 20) {
if positionCharacteristic != nil {
self.polarH7HRMPeripheral.writeValue(strMsgPart, forCharacteristic: positionCharacteristic, type: .WithoutResponse)
self.polarH7HRMPeripheral.setNotifyValue(true, forCharacteristic: positionCharacteristic)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.