【问题标题】:Sniff multiple serial ports simultaneously with socat使用 socat 同时嗅探多个串口
【发布时间】:2019-01-20 12:17:42
【问题描述】:

我正在尝试同时记录多个串口,我可以一次记录一次,但是当我启动一个新的 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

【问题讨论】:

  • 如果你正在登录到文件,你为什么不从带有 tail 或类似内容的文件中读取?
  • 我不能,我只能运行 1 个 socat 实例,当我运行第二个实例时,第一个实例被终止

标签: linux serial-port sniffing sniffer socat


【解决方案1】:

显然是因为尝试通过 -lf 选项多次使用 /dev/stdout。相反,您必须使用 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 &

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    相关资源
    最近更新 更多