用于IPC的Windows COM端口

时间:2012-04-21 15:15:31

标签: windows ipc hardware-interface

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

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

所以我做的是我有两个用C / C ++编写的程序,使用windows给出的ReadFileWriteFile函数来读写文件。由于访问冲突,这种方法不起作用。因此,我想知道我们对模拟器本身的方法是否错误。

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

更新

解决方案:

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

1 个答案:

答案 0 :(得分:2)

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

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

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