Wie kann ich eine serielle Verbindung in zwei aufteilen?

Wie kann ich eine serielle Verbindung in zwei aufteilen?

Ich muss eine Anwendung und einen Monitor dazu bringen, vom selben seriellen Port zu lesen. Die Anwendung soll das einzige Programm sein, das vom seriellen Port lesen/schreiben kann, und der Monitor soll nur lesen können.

Ich hoffe, dies zu erreichen:

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

Ich habe gehört, dass Socat das vielleicht kann. Aber ich bin mir nicht sicher, wie das geht.

Wie genau kann ich das machen? Es handelt sich um eine serielle Verbindung mit einer Baudrate von 192 K und ich verwende sie auf einem Debian-Linux-System.

Antwort1

Es gibt ein kleines Dienstprogramm namens „, das in beliebige Dateien, möglicherweise Pipes, teeaufteilt , die von zwei oder mehr verschiedenen Anwendungen gelesen werden können.stdinstdout

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

verwandte Informationen