J'ai actuellement mon application OSX (centrale) envoyant une image 4Kb à mon application iOS (périphérique) à travers une caractéristique inscriptible en utilisant writeValue.Améliorer la vitesse de transfert de fichiers en utilisant CoreBluetooth
Parce que la taille de l'image dépasse la limite, j'utilise WriteValue plusieurs fois avec la fonction suivante:
func sendData() {
while (self.sendDataIndex < self.dataToSend.length) {
var amountToSend = self.dataToSend.length - self.sendDataIndex!
if (amountToSend > NOTIFY_MTU) {
amountToSend = NOTIFY_MTU
}
// Copy out the data we want
var chunk = self.dataToSend.subdataWithRange(NSMakeRange(self.sendDataIndex!, amountToSend))
// Send it
self.discoveredPeripheral?.writeValue(chunk, forCharacteristic: self.setupCharacteristic, type: CBCharacteristicWriteType.WithoutResponse)
// It did send, so update our index
self.sendDataIndex = self.sendDataIndex!+amountToSend;
}
self.discoveredPeripheral?.writeValue("EOM".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true), forCharacteristic: self.setupCharacteristic, type: CBCharacteristicWriteType.WithResponse)
}
Mon problème est que cela prend beaucoup plus longtemps que ce que je dois à environ 30 secondes. La chose étrange est, même si j'utilise CBCharacteristicWriteType.WithoutResponse lors de l'envoi de l'image, je reçois des réponses pour eux, je me demande si cela rend la lenteur.
Voilà comment j'ai ma configuration caractéristique sur le côté périphérique:
var cbProperties = CBCharacteristicProperties.Read|CBCharacteristicProperties.Write|CBCharacteristicProperties.Notify
var cbPermissions = CBAttributePermissions.Readable|CBAttributePermissions.Writeable
var transferCharacteristic = CBMutableCharacteristic(type: CBUUID.UUIDWithString(SETUP_CHARACTERISTIC_UUID), properties: cbProperties, value: nil, permissions: cbPermissions)
J'ai essayé différentes valeurs pour NOTIFY_MTU, allant de 20 à 900, mais plus il est élevé, moins de fois WriteValue est exécuté, mais plus chaque paquet prend de temps pour arriver.
J'ai vu des transferts effectuer beaucoup plus rapidement, des suggestions sur la façon de l'améliorer?
Merci
Merci qui m'a vraiment aidé! –