【发布时间】:2015-07-05 16:34:12
【问题描述】:
有没有一种方法可以将两个驱动程序连接到同一个 COM 设备,一个能够向设备发送数据并同时接收传入的数据?
更详细: 两个驱动程序还希望向设备发送数据,如果两者都具有对设备的写访问权限,则会导致问题。因此,指向虚拟 COM 端口的符号链接根本没有帮助。
所以我想最好的选择是将设备的所有传入数据镜像到虚拟 COM 端口。一个驱动程序连接到真实设备(因此也能够向设备发送数据)。另一个只连接到虚拟 COM 端口,因此该程序发送的所有数据都应该以 /dev/null 结束。
有没有办法做到这一点,或者有更好的解决方案?
编辑:目前的一些方法:
-
使用 socat
sudo socat pty,link=/dev/modem0,raw,waitslave file:/dev/ttyACM0,nonblock因为它是一个符号链接所以不起作用。
-
使用三通
sudo cat /dev/ttyACM0 | tee 1.txt 2.txt /dev/modem0无法写入(虚拟)COM 端口(/dev/modem0 失败)并且我没有直接连接,也无法将数据发送到 ttyACM0
使用 slsnif(与当前内核不兼容)
-
使用拦截
sudo interceptty /dev/ttyACM0 -o "1.txt"只能嗅探ASCII字符,所有二进制数据都丢失在日志文件中。
【问题讨论】:
标签: linux serial-port virtual-serial-port