J'utilise une carte BLE Arduino plume et tente de créer une application iOS qui peut envoyer des données au tableau via BLE. Je peux me connecter mais je ne peux pas avoir accès au txCharacteristiciOS Bluetooth Low Energy (BLE) ne découvrant pas la caractéristique TX
func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) {
guard let characteristics = service.characteristics else {
return
}
for characteristic in characteristics {
if characteristic.properties.contains(.write) || characteristic.properties.contains(.writeWithoutResponse) {
writableCharacteristic = characteristic
}
// if(characteristic.uuid == CBUUID(string: "6e400002-b5a3-f393-e0a9-e50e24dcca9e"))
// {
// txCharacteristic = characteristic
// }
var txUUID = CBUUID(string: "6e400002-b5a3-f393-e0a9-e50e24dcca9e")
let temp = characteristic.uuid.uuidString;
switch characteristic.uuid {
case txUUID:
txCharacteristic = characteristic;
break;
default:
break;
}
peripheral.setNotifyValue(true, for: characteristic)
}
}
Ce code fonctionne, mais ne les découvre UUID suivantes:
temp String "00001532-1212-EFDE-1523-785FEABCD123"
temp String "00001531-1212-EFDE-1523-785FEABCD123"
temp String "00001534-1212-EFDE-1523-785FEABCD123"
J'ai compris que ces UUID sont DFU UUID. Comment puis-je découvrir le txCharacteristic à la place?
Ajouté pour plus d'informations comment je fais appel discoverCharacteristics():
extension SimpleBluetoothIO: CBPeripheralDelegate {
func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?) {
guard let services = peripheral.services else {
return
}
targetService = services.first
if let service = services.first {
targetService = service
peripheral.discoverCharacteristics(nil, for: service)
}
}
Êtes-vous sûr que ce le bon service sur le bon appareil? Avez-vous appelé 'discoverServices' et' discoverCharacteristics' avec les bons arguments? Essayez de télécharger un navigateur BLE et vérifiez ce qu'il voit. – Kevin
Bonjour, et merci pour votre aide. J'ai appelé discoverServices (nil) qui devrait découvrir tous les services. Et j'ai ajouté le code pour appeler discoverCharacteristics() à ma question ci-dessus. – Megan