如何通过可可应用程序从USB GPS设备读取NMEA数据

时间:2012-02-27 09:17:35

标签: objective-c cocoa gps

我正在使用 USB GlobalSat(USG-MR350) GPS设备。我想从我的mac cocoa应用程序中的设备获取位置数据(纬度和经度)。想要运行 AMSerialPort 示例代码。它正在检测usb设备,但它在中提供输出不可读格式。如何将这些数据转换为可读格式。这是源代码的一部分:

- (void)serialPortReadData:(NSDictionary *)dataDictionary
{
    // this method is called if data arrives 
    // @"data" is the actual data, @"serialPort" is the sending port
    AMSerialPort *sendPort = [dataDictionary objectForKey:@"serialPort"];
    NSData *data = [dataDictionary objectForKey:@"data"];
    if ([data length] > 0) {
        NSString *text = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
        [outputTextView insertText:text];
        [text release];
        // continue listening
        [sendPort readDataInBackground];
    } else { // port closed
        [outputTextView insertText:@"port closed\r"];
    }
    [outputTextView setNeedsDisplay:YES];
    [outputTextView displayIfNeeded];
}

3 个答案:

答案 0 :(得分:0)

我认为Sirf接收器默认处于二进制模式,你必须把它放在NMEA mode explicitly中。

答案 1 :(得分:0)

尝试使用NSData通过description方法将自身打印为字节的能力。

  

[outputTextView insertText:[data description]];

答案 2 :(得分:0)

我没有看到您正在检查端口设置。

NMEA 在串口上的默认设置为speed:4800stopbit:1 parity:none

在设备上查看。