使用socat同时嗅探多个串行端口

时间:2018-08-13 17:46:29

标签: linux serial-port sniffing sniffer socat

我试图同时记录多个串行端口,一次只能登录一次,但是当我启动一个新的socat时,旧进程将终止。

这是我要执行的命令,只是一个简单的socat嗅探文件即可。

socat -lf /dev/stdout -x -s 2> USB1.log /dev/ttyUSB1,echo=0 - &
socat -lf /dev/stdout -x -s 2> USB2.log /dev/ttyUSB2,echo=0 - &
socat -lf /dev/stdout -x -s 2> USB3.log /dev/ttyUSB3,echo=0 - &

我可以使用jpnevulator同时读取所有内容,但是我相信这会干扰设备的通信,因为它们突然出现通信故障,并且当我关闭jpnevulator时,通信会得到改善。我尝试过的命令是jpnevulator --tty /dev/ttyUSB1 --read --timing-print

1 个答案:

答案 0 :(得分:0)

显然是因为尝试通过/dev/stdout选项多次使用-lf。相反,您必须使用PTY作为中介。

socat -xs /dev/ttyUSB1,raw  PTY,link=/tmp/USB1,raw,echo=0 2 >> USB1.log &
socat -xs /dev/ttyUSB2,raw  PTY,link=/tmp/USB2,raw,echo=0 2 >> USB2.log &
socat -xs /dev/ttyUSB3,raw  PTY,link=/tmp/USB3,raw,echo=0 2 >> USB3.log &