5

Jestem nowy w rozwoju iOS i studiuję o Bluetooth Low Energy (BLE, Bluetooth 4.0) dla IOS.Co oznacza niestandardowy UUID dla BLE w IOS Sample?

Przeanalizowałem kod przykładowy tego linku: BTLE Central Peripheral Transfer.

I jest jeszcze inny podobny przykład w ten link iOS 7 SDK: Core Bluetooth - Practical Lesson

aplikacji na dwóch powyższych linków mówić o send and receive the text data między dwie bazy urządzeniu iOS na BLE. Aplikacja może być oznaczona jako central lub Peripheral, a central odbierze dane tekstowe wysłane z Peripheral.

Definiuje ona UUID podobny do następującego kodu w .

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

A po Central połączyć się z Peripheral, to odkryć cechy z Peripheral.

Jeśli UUID jest równa TRANSFER_CHARACTERISTIC_UUID, a następnie zapisz go za pomocą setNotifyValue:YES jak w poniższym kodzie.

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

nie mogę znaleźć tej UUID:@"08590F7E-DB05-467E-8757-72F6FAEB13D4" w Bluetooth Development Portal. Czy to jest utworzone przez uuidgen w terminal?

The second Question:

Jeśli jestem Central i mam subskrybować characteristic za pomocą setNotifyValue:YES jak powyższym kodzie.

BLE powie Central nastąpiło nowe dane wysyłane z Peripheral wykonując kod, jest koncepcja prawidłowe?

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

Jestem nowy w rozwoju iOS i BLE.

Z góry dziękuję.

+0

Pierwsze pytanie: Długi identyfikator UUID to niestandardowy identyfikator UUID (podczas gdy standardowe używają 4hex). Oznacza to, że nie respektują żadnego standardu, ponieważ nie istnieją jeszcze lub ponieważ są konkretne/propiertary. – Larme

Odpowiedz

7

Pierwsze pytanie:

  • Tak, Apple sugeruje nawet generując te UUID wykorzystaniem uuidgen w różnych WWDC wideo. 128-bitowe identyfikatory UUID nie są standaryzowane przez Bluetooth SIG i można ich używać do uruchamiania własnych profili.

Drugie pytanie:

  • Tak, trzeba najpierw odkryć usług, to cechy, potem setNotifyValue:YES. Od tej pory będziesz otrzymywać powiadomienia od urządzeń peryferyjnych przez [-CBPeripheralDelegate didUpdateValueForCharacteristic:error:]. To samo wywołanie zwrotne zostanie wywołane po ręcznym odczytaniu charakterystyki (nie ma możliwości odróżnienia odpowiedzi odczytu z powiadomienia w technologii Core Bluetooth).
+1

Dzięki za wyjaśnienie !!! – Wun

+0

Ponadto, aby uniknąć pomyłek z powodu różnych rodzajów identyfikatorów: https://devforums.apple.com/message/957469#957469 – Etan