Windows COM端口是否可以由同一台PC上运行的两个程序用于进程间通信?我们的最终目标是编写一个通过COM端口进行通信以控制硬件的程序。由于硬件不可用,我们希望在程序中模拟硬件,该程序从虚拟COM端口读取并响应。
一个简单的仿真器将是一个程序,它等待从COM端口读取字节并通过写入COM端口进行响应。首先,可以对这些消息的值进行硬编码。
所以我做的是我有两个用C / C ++编写的程序,使用windows给出的ReadFile
,WriteFile
函数来读写文件。由于访问冲突,这种方法不起作用。因此,我想知道我们对模拟器本身的方法是否错误。
我是基于Windows编程的新手,虽然我在其他领域有编程经验。任何帮助将不胜感激。
更新
解决方案:
答案 0 :(得分:2)
您可以使用共享参数打开一个文件,该参数允许两个进程读/写它。但这不是一个好的解决方案,因为读/写串口与读取和写入文件有很多不同。
相反,我建议获取虚拟COM端口驱动程序(如com0com.sourceforge.net,或从此处选择另一个en.wikipedia.org/wiki/COM_port_redirector)。安装它,创建两个COM端口并虚拟连接它们。这样你就可以确保你的程序也能在真正的COM端口上运行。
如果该解决方案不可接受,请考虑使用管道而不是文件