我有一个 Linux 应用程序(我可以访问其代码),它必须通过串行端口与 Windows 应用程序(第三方,无法访问代码)进行通信。Windows 应用程序在 Wine 中运行,因此我想将 Wine 的 com1 设置为某个值,并使我的软件从那里读取和写入。我想最好的方法是使用伪终端,是这样吗?

有没有办法在 Linux 中简单地从命令行创建伪终端对?我已经知道如何使用 API 执行此操作,但是有没有办法从 bash 执行此操作?

也许用 socat 或类似的东西?

有帮助吗?

解决方案

您也许可以使用这样的东西(未经测试):

socat PTY,link=$HOME/.wine/dosdevices/com1,raw,echo=0 PTY,link=$HOME/tmp/dev/myserial,raw,echo=0

这将创建两个背靠背的 PTY,这有点过分了,但 socat 会在它们之间复制数据。wine 程序将打开链接的一侧作为 COM1,并且您的程序将打开 $HOME/tmp/dev/myserial 来与 COM1 通信。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top