0

Windows COM 端口可以被同一台 PC 上运行的两个程序用于进程间通信吗?我们的最终目标是编写一个通过 COM 端口通信来控制硬件的程序。由于硬件不可用,我们希望在程序中模拟硬件,该程序从虚拟 COM 端口读取并响应。

一个普通的仿真器是一个等待从 COM 端口读取字节并通过写入 COM 端口来响应的程序。首先,可以对这些消息的值进行硬编码。

所以我要做的是我有两个用 C/C++ 编写的程序,使用 windows 提供的ReadFile函数WriteFile来读取和写入文件。由于访问冲突,此方法将不起作用。因此,我想知道我们对模拟器本身的方法是否错误。

尽管我在其他领域有编程经验,但我是基于 Windows 的编程的新手。任何帮助将不胜感激。

更新:

解决方案:

  • 安装了 Eltima Software 的 Virtual Serial Port Driver 7.1(试用版)
  • 添加了一对虚拟端口(例如 COM1 和 COM2)
  • 控制器程序通过 COM1 通信
  • 仿真器程序通过 COM2 进行通信
  • Eltima 软件负责在两个端口之间传输数据
4

1 回答 1

2

您可以使用允许两个进程读取/写入的共享参数打开文件。但这不是一个好的解决方案,因为读取/写入串行端口与读取和写入文件有许多不同之处。

相反,我建议获取一个虚拟 COM 端口驱动程序(如 com0com.sourceforge.net,或从此处 en.wikipedia.org/wiki/COM_port_redirector 选择另一个)。安装它,创建两个 COM 端口并虚拟连接它们。这样您就可以确保您的程序也可以在真实的 COM 端口上运行。

如果该解决方案不可接受,请查看使用管道而不是文件

于 2012-04-21T15:29:02.833 回答