5

Ich bin neu in iOS-Entwicklung, und studieren über Bluetooth Low Energy (BLE, Bluetooth 4.0) für IOS.Was bedeutet die benutzerdefinierte UUID für BLE in IOS Sample?

Ich studierte den Beispielcode dieser Verbindung BTLE Central Peripheral Transfer.

Und es ist eine andere ähnliche Probe in diesem Link iOS 7 SDK: Core Bluetooth - Practical Lesson

Die Anwendungen auf den beiden oben genannten Links reden über send and receive the text data zwischen zwei IOS Gerätebasis auf BLE. Die App kann wählen, um eine central oder Peripheral, und die central wird die Textdaten senden von der Peripheral.

Es definiert die UUID wie der folgende Code in header file.

#define TRANSFER_CHARACTERISTIC_UUID @"08590F7E-DB05-467E-8757-72F6FAEB13D4" 

Und nach der Central zumPeripheral verbinden, ist es das Merkmal aus Peripheral zu entdecken.

Wenn die UUID zu TRANSFER_CHARACTERISTIC_UUID gleich ist, dann abonnieren, indem setNotifyValue:YES wie der folgende Code verwenden.

- (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error 
{ 
    // Again, we loop through the array, just in case. 
    for (CBCharacteristic *characteristic in service.characteristics) { 

     // And check if it's the right one 
     if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:TRANSFER_CHARACTERISTIC_UUID]]) { 

      // If it is, subscribe to it 
      [peripheral setNotifyValue:YES forCharacteristic:characteristic]; 
     } 
    } 

    // Once this is complete, we just need to wait for the data to come in. 
} 

The question is like the following:

First Question:

ich diesen UUID:@"08590F7E-DB05-467E-8757-72F6FAEB13D4" in Bluetooth Development Portal nicht finden können. Ist das von uuidgen in terminal erstellen?

The second Question:

Wenn ich Central, und ich habe die von characteristic abonnieren setNotifyValue:YES wie die oben genannten Code.

wird der BLE sagt die Central von Peripheral durch folgenden Code senden, um neue Daten hat es, das richtige Konzept ist?

- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error

Ich bin neu in IOS Entwicklung und BLE.

Vielen Dank im Voraus.

+0

Für die erste Frage: Lange UUID sind benutzerdefinierte UUID (während Standard 4hex verwenden). Es bedeutet, dass sie keinen Standard respektieren, weil sie noch nicht existieren oder weil sie speziell/proprietär sind. – Larme

Antwort

7

Erste Frage:

  • Ja, Apfel schlägt sogar vor, diese UUIDs mit uuidgen in den verschiedenen WWDC Video zu erzeugen. Die 128-Bit-UUIDs sind nicht von der Bluetooth-SIG standardisiert und Sie können diese verwenden, um Ihre eigenen Profile auszuführen.

Zweite Frage:

  • Ja, Sie zuerst die Dienste entdecken, dann sind die Eigenschaften, dann setNotifyValue:YES. Von nun an erhalten Sie Benachrichtigungen von der Peripherie über [-CBPeripheralDelegate didUpdateValueForCharacteristic:error:]. Derselbe Callback wird aufgerufen, wenn Sie ein Merkmal manuell lesen (es gibt keine Möglichkeit, die Leseantwort von einer Benachrichtigung in Core Bluetooth zu unterscheiden).
+1

Danke für deine Erklärung !!! – Wun

+0

Auch, um durch die verschiedenen Arten von IDs verwirrt zu werden: https://devforums.apple.com/message/957469#957469 – Etan

Verwandte Themen