2012-07-18 12 views
11

Sto lavorando a un'applicazione Bluetooth principale iOS, sono in grado di connettermi con il dispositivo BLE utilizzando iPad3. Sono in grado di raggiungere il blocco didDiscoverServices, ma non posso procedere da qui.Come leggere le informazioni dal dispositivo bluetooth principale

Le mie domande sono;

  1. Come è possibile leggere le caratteristiche dal dispositivo Bluetooth?
  2. Come posso leggere altre informazioni del dispositivo Bluetooth?

Aiutatemi su questo o fornire qualsiasi suggerimento.

Grazie Wilhelmsen per la risposta.

ho ottenuto le seguenti dal blocco menzionato:

[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>) 

Ora come ottenere i valori esatti da questa caratteristica nel blocco didUpdateValueForCharacteristic?

+0

Ho modificato la mia risposta, ma è necessario creare una nuova domanda quando il vecchio è risolto, e io non capisco molto di quello che si sta cercando di porre la questione aggiornato – chwi

risposta

11

Fai una buona lettura attraverso il framework. se sei arrivato così lontano non dovresti avere problemi a trovare "discoverCharacteristics" e il callback dei delegati periferici "didDiscoverCharacteristic". È necessario conoscere l'UUID dei servizi e delle caratteristiche che si desidera scoprire e applicarlo a tali metodi.

Quindi è possibile leggere con 'readValueForCharacteristic' e il callback delegato 'didUpdateValueForCharacteristic'.

Questo viene inviato dal mio telefono, quindi potrò forse modificare un po 'quando arrivo al computer. Speranza che aiuta

nuova domanda:

[connectedPeripheral readValueForCharacteristic:wantedCharacteristic] 

e al delegato periferica

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

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

funziona per me

+0

Grazie per la risposta. :) –

+0

Ho modificato il post per favore fammi sapere su questo ora .... –

+0

Sto diventando caratteristico.valore = <6fb51600 30cd660e 8c170800>. Come posso ottenere il valore esatto da esso? –

2

È possibile ottenere il valore di una caratteristica

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

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

Proprio usare 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

puoi aiutare con LGBluetooth !!! sto cercando di scrivere dati su charact. ma senza fortuna si dice sempre "ha scritto dati con errore: errore sconosciuto" – Atrash

+0

prova a impostare un punto di interruzione nel blocco di completamento e stampa l'oggetto errore – l0gg3r

+0

grazie, stavo inviando i dati in modo sbagliato :) – Atrash

Problemi correlati