我正在尝试制作可通过OBDII(BLE)连接到带电话的汽车的iOS应用。
我可以与该模块建立连接,并询问有关RPM的信息,然后部分返回答案。
首先-010C
(用于获取RPM的数据)
然后-41 0C 0A 98 \n \n
要读取RPM,我只需要第三个和第四个字节(0A
和98
)。我该怎么做?
部分代码来自:
- (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);
}
}
最佳答案
试试这个
NSData *sensorData = [characteristic value];
const uint8_t* bytes = (const uint8_t*)[sensorData bytes];
uint8_t third = bytes[3];
关于ios - 如何从NSData(OBDII)获取第三个字节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44304621/