OGeek|极客世界-中国程序员成长平台

标题: ios - 如何从 NSData (OBDII) 中获取第三个字节 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 19:47
标题: ios - 如何从 NSData (OBDII) 中获取第三个字节

我正在尝试制作 iOS 应用程序,该应用程序将通过 OBDII (BLE) 连接到带有手机的汽车。

我可以与模块建立联系并询问有关 RPM 的信息,并且会部分返回答案。

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

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

要读取 RPM,我只需要第三个和第四个字节(0A98)。我该怎么做?

部分代码来自:

- (void)peripheralCBPeripheral *)peripheral didUpdateValueForCharacteristicCBCharacteristic *)characteristic errorNSError *)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);
    }
}



Best Answer-推荐答案


试试这个

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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4