5

Sono nuovo nello sviluppo di iOS e studio su Bluetooth Low Energy (BLE, Bluetooth 4.0) per IOS.Che cosa significa l'UUID personalizzato per BLE in IOS Sample?

Ho studiato il codice di esempio di questo collegamento BTLE Central Peripheral Transfer.

E c'è un altro campione simile a questo link iOS 7 SDK: Core Bluetooth - Practical Lesson

Le applicazioni su questi due collegamenti parlare send and receive the text data tra due IOS di base dispositivo BLE. L'app può essere impostata su central o Peripheral e lo central riceverà i dati di testo inviati dallo Peripheral.

Definisce lo UUID come il seguente codice in header file.

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

E dopo la Central connettersi al Peripheral, è scoprire la caratteristica da Peripheral.

Se il UUID è uguale a TRANSFER_CHARACTERISTIC_UUID, allora iscriviti esso utilizzando setNotifyValue:YES come il seguente codice.

- (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:

non riesco a trovare questo UUID:@"08590F7E-DB05-467E-8757-72F6FAEB13D4" in Bluetooth Development Portal. È quello creato da uuidgen in terminal?

The second Question:

Se io sono Central, e devo sottoscrivere il characteristic utilizzando setNotifyValue:YES come il codice di cui sopra.

Il BLE vi dirà la Central ci ha nuovi dati inviati da Peripheral dal seguente codice, è il concetto corretto?

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

Sono nuovo in fase di sviluppo IOS e BLE.

Grazie in anticipo.

+0

Per la prima domanda: UUID lunghi sono UUID personalizzati (mentre quelli standard utilizzano 4hex). Significa che non rispettano nessuno standard, perché non esistono ancora o perché sono particolari/propositivi. – Larme

risposta

7

Prima domanda:

  • Sì, Apple suggerisce anche la generazione di quei UUID utilizzando uuidgen in vari video WWDC. Gli UUID a 128 bit non sono standardizzati dal Bluetooth SIG e puoi usarli per eseguire i tuoi profili.

Seconda domanda:

  • Sì, per la prima volta scoprire i servizi, poi le caratteristiche, poi setNotifyValue:YES. D'ora in poi, riceverai le notifiche dalla periferica tramite [-CBPeripheralDelegate didUpdateValueForCharacteristic:error:]. La stessa callback sarà invocata quando si legge una caratteristica manualmente (non c'è modo di distinguere la risposta in lettura da una notifica in Core Bluetooth).
+1

Grazie per il tuo spiegazioni !!! – Wun

+0

Inoltre, per evitare di confondersi con tutti i diversi tipi di ID: https://devforums.apple.com/it/message/957469#957469 – Etan