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 tee
que se divide stdin
em stdout
arquivos 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 &