Как разделить одно последовательное соединение на два?

Как разделить одно последовательное соединение на два?

Мне нужно, чтобы приложение и монитор читали данные с одного и того же последовательного порта. Приложение будет единственной программой, которая сможет читать/писать данные в последовательный порт, а монитор сможет только читать.

Я надеюсь достичь этого:

                                      /----->(Application)
---(/dev/ttyUSB0 Serial connection)---
                                      \----->(Monitor)

Я слышал, что socat, возможно, сможет это сделать. Но я не уверен, как это сделать.

Как именно я могу это сделать? Это последовательное соединение, работающее на скорости 192K бод, и я запускаю его в системе Debian Linux.

решение1

Существует небольшая утилита, teeкоторая разделяет stdinпроизвольные stdoutфайлы, возможно, каналы, которые могут читаться двумя или более различными приложениями.

cat /dev/ttyUSB0 | tee somefile1.txt somefile2.txt | application &
tail -F somefile1.txt | monitor &
tail -F somefile2.txt | parser &

Связанный контент