2012-07-18 13 views
11

Pracuję nad podstawową aplikacją Bluetooth iOS, mogę połączyć się z urządzeniem BLE za pomocą iPada3. Jestem w stanie dotrzeć do bloku didDiscoverServices, ale nie można kontynuować tutaj.Jak odczytać informacje z podstawowego urządzenia bluetooth

Moje pytania są;

  1. Jak mogę odczytać charakterystykę z urządzenia Bluetooth?
  2. Jak mogę odczytać inne informacje o urządzeniu Bluetooth?

Pomóż mi w tej sprawie lub przedstaw sugestię.

Dziękuję Wilhelmsen za odpowiedź.

mam następujący ze wspomnianego bloku:

[0] - Service : <CBConcreteService: 0x1769a0> UUID: Generic Attribute Profile 
[1] - Service : <CBConcreteService: 0x174470> UUID: Generic Access Profile 
[2] - Service : <CBConcreteService: 0x1744e0> UUID: Unknown (<00005301 00000041 4c505749 53450000>) 

Characteristic 

[0] - Characteristic : <CBConcreteCharacteristic: 0x15d410> UUID: Service Changed 

[0] - Characteristic : <CBConcreteCharacteristic: 0x1805b0> UUID: Device Name 
[1] - Characteristic : <CBConcreteCharacteristic: 0x1806a0> UUID: Appearence 

[0] - Characteristic : <CBConcreteCharacteristic: 0x183810> UUID: Unknown (<00004301 00000041 4c505749 53450000>) 
[1] - Characteristic : <CBConcreteCharacteristic: 0x1838a0> UUID: Unknown (<00004302 00000041 4c505749 53450000>) 

Teraz jak uzyskać dokładne wartości z tym charakterystyczne didUpdateValueForCharacteristic bloku?

+0

I edytowane moją odpowiedź, ale należy utworzyć nowe pytanie, kiedy stara się rozwiązać, a ja nie bardzo rozumiesz co chce zadać pytanie w sprawie zaktualizowanego – chwi

Odpowiedz

11

Dobrze odczytaj frameworka. jeśli doszedłeś tak daleko, nie powinieneś mieć problemu ze znalezieniem "discoverCharacteristics" i wywołania zwrotnego peryferyjnego delegata "didDiscoverCharacteristic". Musisz znać UUID usług i cech, które chcesz odkryć i zastosować je do tych metod.

Następnie można odczytać za pomocą "readValueForCharacteristic" i delegowanego wywołania zwrotnego "didUpdateValueForCharacteristic".

To jest wysyłane z mojego telefonu, więc może trochę zmienię po dotarciu do komputera. Nadzieję, że pomoże

Nowe pytanie:

[connectedPeripheral readValueForCharacteristic:wantedCharacteristic] 

i na delegata obwodowej

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

NSLog(@"Characteristic value : %@ with ID %@", characteristic.value, characteristic.UUID); 
[delegate characteristicValueRead:characteristic.value]; 
} 

działa na mnie

+0

dzięki za odpowiedź. :) –

+0

Edytowałem wpis, proszę, uświadomcie mi to teraz .... –

+0

Otrzymuję characteristic.value = <6fb51600 30cd660e 8c170800>. Jak mogę uzyskać od niego dokładną wartość? –

2

można uzyskać wartości charakterystycznej

NSString *value = [[NSString alloc] initWithData:characteristic.value encoding:NSUTF8StringEncoding]; 

NSLog(@"Value %@",value); 
0

Wystarczy użyj https://github.com/LGBluetooth/LGBluetooth

[LGUtils readDataFromCharactUUID:@"f045" 
          seriveUUID:@"5ec0" 
          peripheral:peripheral 
          completion:^(NSData *data, NSError *error) { 
           NSLog(@"Data : %s Error : %@", (char *)[data bytes], error); 
          }]; 
+0

możesz pomóc z LGBluetooth !!! Próbuję zapisać dane na charact. ale bez powodzenia zawsze jest napisane "zapisano dane z błędem: nieznany błąd" – Atrash

+0

spróbuj ustawić punkt przerwania w bloku zakończenia i wydrukuj obiekt błędu – l0gg3r

+0

dzięki, wysłałem dane w niewłaściwy sposób :) – Atrash

Powiązane problemy