[英]Transfer Data to multiple peripheral simultaneously ios BLE
能夠通過藍牙連接到多個iOS設備,作為1個主設備和4個從設備。
通過以下代碼將數據從中央傳輸到外圍設備
[peripheral.peripheral writeValue:currentData forCharacteristic:peripheral.characteristic type:CBCharacteristicWriteWithoutResponse];
但是,這可以防止數據丟失,但是速度更快。
然后嘗試使用以下代碼不丟失數據
[peripheral.peripheral writeValue:currentData forCharacteristic:peripheral.characteristic type:CBCharacteristicWriteWithResponse];
嘗試同時(同時)將數據傳輸到多個外圍設備
for (Peripheral * peripheral in self.connectedPeripherals) {
[peripheral.peripheral writeValue:currentData forCharacteristic:peripheral.characteristic type:CBCharacteristicWriteWithResponse];
}
一旦第一個外設接收到數據,然后第二個外設獲取數據並繼續進行,數據就好像延遲了一個接一個的傳送。
要同時傳輸數據並同時反映到所有外圍設備。
當您傳送帶有響應的數據時,每次發送數據包時都必須等待其收據的確認。 當您傳輸數據而沒有響應時,不會發送回確認,因此吞吐量更高。 但是,正如您正確指出的那樣,當傳輸數據而沒有響應時,可能會丟失數據。 發生此數據丟失的原因是內部iOS緩沖區的溢出,該緩沖區保存在您對- writeValue:forCharacteristic:type:
調用與實際調用之間的數據。 如果要防止數據丟失,可以執行以下任一操作。
- writeValue:forCharacteristic:type:
,則肯定會面臨數據丟失的情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.