2017-06-01 69 views
2

我试图让iOS应用程序将通过OBDII(BLE)与手机连接到汽车。如何从NSData的(OBDII)取第三个字节

我可以获得与模块的连接并询问有关RPM的问题,并将答案返回给零件。

第一 - 010C(数据用于获取RPM的)

然后 - 41 0C 0A 98 \n \n

阅读RPM的我只需要第三个和第四个字节(0A98)。我该怎么做?从代码

部分:

- (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); 
    } 
} 

回答

0

试试这个

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

当我试着使用的NSLog打印第三(@ “新的字节%d”,第三);结果是“新的字节0” – kajz3reczka