能够通过蓝牙连接到多个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];
}
数据一个接一个地传输,一旦第一个外设收到数据就会出现延迟,然后第二个外设获取数据并继续。
想要同时传输数据并同时反映到所有外围设备。
答案 0 :(得分:0)
当您使用响应传输数据时,每次发送数据包时都必须等待确认收据。在没有响应的情况下传输数据时,不会发回确认,因此吞吐量更高。但是,正如您正确指出的那样,在没有响应的情况下传输数据时,可能会丢失数据。发生此数据丢失的原因是内部iOS缓冲区溢出,该缓冲区在您对- writeValue:forCharacteristic:type:
的调用与其实际离开之间保存数据。如果要防止数据丢失,可以执行以下任一操作。
- writeValue:forCharacteristic:type:
来执行此操作,您肯定会面临数据丢失。