是的,您可以使用socat来模拟串行端口.
您需要使用socat的PTY地址类型:
PTY: Generates a pseudo terminal (pty) and uses its master side. Another
process may open the pty's slave side using it like a serial line or
terminal.
Run Code Online (Sandbox Code Playgroud)
最简单的选择是:
socat PTY,link=./virtual-tty,raw,echo=0 -
Run Code Online (Sandbox Code Playgroud)
让您正在测试的应用程序打开virtual-tty.应用程序的输出将打印到控制台.您键入的文本将发送到您的应用程序.
如上所述,PTY地址类型创建了
peudo-terminal.该link
选项在伪终端和给定文件之间创建软链接.您可以选择任何您想要的文件名.如果没有软链接,您需要打开设备,很难确定正确的设备. raw
将伪终端置于原始模式.您通常需要这个,因为您不需要任何特殊的终端处理选项. echo=0禁用回显模式.
如果您拥有(或创建)模拟Arduino上执行代码的应用程序,您也可以通过socat连接它.如果您的模拟器通过stdin/stdout通信,则使用以下命令:
socat PTY,link=./virtual-tty,raw,echo=0 EXEC:simulator-command
Run Code Online (Sandbox Code Playgroud)
以上将stdin/stdout连接simulator-command到伪终端.
如果您的模拟器也通过串行端口进行通信,则使用PTY命令两次:
socat PTY,link=./arduino-sim,raw,echo=0 PTY,link=./virtual-tty,raw,echo=0
Run Code Online (Sandbox Code Playgroud)
让你的模拟器打开arduino-sim.