【问题标题】:How can i emulate streaming data from a serial port?如何模拟来自串行端口的流数据?
【发布时间】:2015-04-28 00:31:57
【问题描述】:

我有一个包含 NMEA (GPS) 数据的文本文件,我希望将其回放到 COM 端口,以便我正在构建的应用程序可以读取它。

我考虑编写一个快速的 C# 控制台应用程序来循环文件,但我没有任何 COM 端口。这种方法需要一个虚拟 COM 端口,我不确定这会带来什么挑战。

我还查看了 GPSGate。不错的产品,但它似乎无法通过其中一个虚拟 COM 端口重播 NMEA 文件。

如何通过串行连接流式传输现有文本文件以模拟 GPS?我更喜欢串行端口,而不是模拟,以避免重做我正在开发的应用程序,并便于与其他使用 GPS 的应用程序一起使用,而不是我们没有源代码的串行端口。

更新 1 - 我下载了 Eltima 的 Virtual Serial Port Driver 试用版,在几分钟内有一些 C# 代码写入串行端口并出现在 Termite 中。是的,它有效,但 100 美元对于我想要完成的工作来说似乎过高了。开源或免费商业将是首选。

【问题讨论】:

    标签: gps nmea


    【解决方案1】:

    gpsfakegpsd project 的一部分

    gpsfake 是用于 gpsd 及其客户端的测试工具。它打开一个 pty(伪 TTY),启动一个认为 pty 的从端是其 GPS 设备的 gpsd 实例,并通过主端向 GPS 重复提供一个或多个测试日志文件的内容。如果有多个日志文件,它们中的语句将按照文件指定的顺序交错。

    您可以通过/usr/bin/gpspipe -r | socat - PTY,link=/tmp/gpsd.pty,raw 使用gpspipe 将输出移植到虚拟串口,同样来自gpsd 项目,您可以随意选择。

    它符合 POSIX。

    【讨论】:

      【解决方案2】:

      您需要一个虚拟串行端口,例如: http://sourceforge.net/projects/com0com/

      还有一个超级终端替代品.. 在 XP 和更早版本中,使用随附的超级终端副本非常容易,如下所述..

      您设置了一个虚拟空调制解调器连接

      • Null 调制解调器建立了 COM4 到 COM5 连接,因为 Null 调制解调器标准 gps 为 4800Baud
      • 到 COM5 的超级终端
      • COM4 应用

      将您的 NMEA 值复制粘贴到超级终端中,但这不像 GPS 那样是 1Hz。要启用 1Hz(或每秒 1 行),您需要找到与超级终端不同的应用程序以 1 秒的增量发送消息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 2013-06-19
        • 1970-01-01
        • 2014-02-04
        相关资源
        最近更新 更多