Como posso dividir uma conexão serial em duas?

Como posso dividir uma conexão serial em duas?

Preciso que um aplicativo e um monitor leiam na mesma porta serial, o aplicativo será o único programa que poderá ler/gravar na porta serial e o monitor só poderá ler.

Espero conseguir isso:

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

Ouvi dizer que socat pode ser capaz de fazer isso. Mas não tenho certeza de como fazer isso.

Como exatamente posso fazer isso? É uma conexão serial rodando a uma taxa de transmissão de 192K e estou executando-a em um sistema Debian Linux.

Responder1

Existe um pequeno utilitário chamado teeque se divide stdinem stdoutarquivos arbitrários, possivelmente pipes, que podem ser usados ​​por dois ou mais aplicativos diferentes.

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

informação relacionada