Мне нужно, чтобы приложение и монитор читали данные с одного и того же последовательного порта. Приложение будет единственной программой, которая сможет читать/писать данные в последовательный порт, а монитор сможет только читать.
Я надеюсь достичь этого:
/----->(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 &