是否可以创建一个"虚拟"通过"虚拟"发送数据的串行设备串行端口?我需要开发一些代码来与Arduino进行交互,但不要随身携带它。是否可以使用 socat 或一些写入dev/ttyXXX
文件的代码来完成?
答案 0 :(得分:6)
是的,您可以使用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.
最简单的选择是:
socat PTY,link=./virtual-tty,raw,echo=0 -
让您正在测试的应用程序打开virtual-tty
。你的输出
应用程序将打印到控制台。您输入的文字将发送给您
应用
如上所述,PTY地址类型创建了一个
peudo-terminal。 link
选项在伪终端和给定文件之间创建软链接。
您可以选择任何您想要的文件名。没有您需要的软链接
打开设备,很难确定正确的设备。 raw
将伪终端置于原始模式。你通常想要这个,因为你不想要
任何特殊的终端处理选项。 echo=0
禁用回显模式。
如果您拥有(或创建)模拟正在执行的代码的应用程序 Arduino,您也可以通过socat连接它。如果你的模拟器 通过stdin / stdout进行通信,然后使用以下命令:
socat PTY,link=./virtual-tty,raw,echo=0 EXEC:simulator-command
上面将simulator-command
的stdin / stdout连接到。{
伪终端。
如果您的模拟器也通过串口进行通信,则使用PTY 命令两次:
socat PTY,link=./arduino-sim,raw,echo=0 PTY,link=./virtual-tty,raw,echo=0
让你的模拟器打开arduino-sim
。