【问题标题】:From Xcode, how do I read data from a text file that is constantly being updated?在 Xcode 中,如何从不断更新的文本文件中读取数据?
【发布时间】:2009-12-04 15:30:57
【问题描述】:

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

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

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

谢谢!!!

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-19
          • 2010-10-29
          • 2014-09-30
          • 2018-06-24
          • 2021-02-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多