2017-06-01 2 views
2

Ich versuche, iOS-App zu machen, die mit einem Auto mit dem Telefon über OBDII (BLE) verbinden wird.Wie nehme ich ein drittes Byte von NSData (OBDII)

Ich kann eine Verbindung mit dem Modul erhalten und nach RPMs fragen, und die Antworten werden in Teilen zurückgegeben.

Erste - 010C (Data verwendete Umdrehungen pro Minute zu bekommen)

dann - 41 0C 0A 98 \n \n

Umdrehungen pro Minute zu lesen Ich brauche nur den dritten und vierten Byte (0A und 98). Wie kann ich es tun?

Teil Code aus:

- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error 
{ 
    if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:@"BEF8D6C9-9C21-4C9E-B632-BD58C1009F9F"]]) 
    { 
     //NSLog(@"char %@", characteristic); 

     NSData *sensorData = [characteristic value]; 
     uint8_t *bodyData = (uint16_t *)[sensorData bytes]; 

     NSLog(@"data bytes %s", bodyData); 
    } 
} 

Antwort

0

Versuchen Sie, diese

NSData *sensorData = [characteristic value]; 
const uint8_t* bytes = (const uint8_t*)[sensorData bytes]; 
uint8_t third = bytes[3]; 
+0

Wenn ich versuche, Druck dritte mit NSLog (@ "neuen Bytes% d", dritte); Ergebnis ist "neue Bytes 0" – kajz3reczka