代码之家  ›  专栏  ›  技术社区  ›  5axola

用socat同时监听多个串行端口

  •  0
  • 5axola  · 技术社区  · 6 年前

    我试图同时记录多个串行端口,我可以一次记录一次,但当我启动一个新的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 回复  |  直到 6 年前
        1
  •  1
  •   5axola    6 年前

    显然是因为 /dev/stdout 多次与 -lf

    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 &