2012-07-18 22 views
11

Estoy trabajando en una aplicación Bluetooth del núcleo de iOS, puedo conectarme con el dispositivo BLE usando iPad3. Puedo llegar al bloque didDiscoverServices, pero no puedo continuar desde aquí.Cómo leer información del dispositivo bluetooth del núcleo

Mis preguntas son;

  1. ¿Cómo puedo leer las características del dispositivo Bluetooth?
  2. ¿Cómo puedo leer otra información del dispositivo Bluetooth?

Ayuda para esto o para proporcionar cualquier sugerencia.

Gracias Wilhelmsen por la respuesta.

me dio la siguiente desde el bloque mencionado:

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

Ahora cómo obtener los valores exactos de esta característica en el bloque didUpdateValueForCharacteristic?

+0

he editado mi respuesta, pero debe crear una nueva pregunta cuando el viejo se resuelve, y yo no entiendo mucho de lo que usted está tratando de preguntar sobre la cuestión actualizada – chwi

Respuesta

11

Dale una buena lectura a través del marco. si ha llegado hasta aquí, no debería tener ningún problema para encontrar 'discoverCharacteristics' y la devolución de llamada del delegado periférico 'didDiscoverCharacteristic'. Necesita conocer el UUID de los servicios y características que desea descubrir y aplicarlo a esos métodos.

Luego puede leer con 'readValueForCharacteristic' y la devolución de llamada delegada 'didUpdateValueForCharacteristic'.

Esto se envía desde mi teléfono, por lo que quizás edite un poco cuando llegue a una computadora. Espero que ayuda

Nueva pregunta:

[connectedPeripheral readValueForCharacteristic:wantedCharacteristic] 

y al delegado periférica

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

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

funciona para mí

+0

Gracias por su respuesta. :) –

+0

He editado la publicación, por favor, avísenme sobre esto ahora ... –

+0

Me aparece characteristic.value = <6fb51600 30cd660e 8c170800>. ¿Cómo puedo obtener el valor exacto de esto? –

2

Usted puede obtener valor de una característica

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

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

Justo usar 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

puede ayudar con LGBluetooth !!! Estoy tratando de escribir datos en charact. pero sin suerte, siempre dice "escribió datos con error: Error desconocido" – Atrash

+0

intente establecer un punto de interrupción en el bloque de finalización e imprimir el objeto de error – l0gg3r

+0

gracias, estaba enviando los datos de manera incorrecta :) – Atrash

Cuestiones relacionadas