从Xcode,我如何从不断更新的文本文件中读取数据?

时间:2009-12-04 15:30:57

标签: objective-c cocoa xcode file serial-port

我正在使用GPS模块,该模块通过串行RS232到USB接口将数据传输到我的mac。我编写了一个objC程序,它接收原始数据并将其转换为有意义的信息。

使用名为goSerial的程序,我可以将所有传入的数据记录到文本文件中。我已经能够让我的程序读取文本文件并逐行处理数据。

我希望这个过程实时发生,即一旦收到数据,它就会被记录到文本文件中,我的程序会读取它。第一部分是自动发生的,即文本文件经常被附加(当未打开时)。是否可以监视文本文件以获取附加数据并仅读取新行?此外,这样做是否会影响新传入数据的保存能力?

感谢!!!

(另外,如果有人知道如何将串行数据直接发送到Xcode,请告诉我!)

3 个答案:

答案 0 :(得分:2)

您可以使用kqueue(可能使用UKKQueue等包装器)来监视文件的更改。

答案 1 :(得分:2)

我不确定串口到USB是如何影响的,但传统上,unix使用Device-File Mechanism访问串行设备,{{3}}将来自设备的输入视为要读取的文件。您可以使用NSFileHandle从Cocoa / Foundation读取文件。您可能想要查看IORegistryExplorer应用程序以查看您的设备如何显示。

答案 2 :(得分:0)

您应该能够创建一个unix域套接字,然后您可以打开goSerial应用程序(因为它看起来像fs上的普通文件)

然后在你的应用程序中从行的另一端读取。这可能是最简单的方法,或者可以看看GNU的coreutils中的尾部来源,特别是它的-f函数(尽管你可能想要看看FreeBSD实现是如何工作的,因为我相信GNU版本使用一些特定于linux的回调)