我正在使用 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];
}
答案 0 :(得分:0)
我认为Sirf接收器默认处于二进制模式,你必须把它放在NMEA mode explicitly中。
答案 1 :(得分:0)
尝试使用NSData通过description方法将自身打印为字节的能力。
[outputTextView insertText:[data description]];
答案 2 :(得分:0)
我没有看到您正在检查端口设置。
NMEA 在串口上的默认设置为speed:4800stopbit:1 parity:none
。
在设备上查看。