
Ich habe ein Problem mit der Überwachung von Daten, die über TCP zwischen 3D-Drucker und Software übertragen werden.
Ich habe einen 3D-Drucker, der über ein USB-Kabel mit Raspberry Pi verbunden ist. Ich verwende ser2net in Raspberry, um die seriellen Daten vom Drucker über TCP an meinen Laptop weiterzuleiten, auf dem ich die Druckersoftware ausführe und der sich im selben Netzwerk wie Raspberry befindet. Auf meinem Laptop verwende ich socat, um einen virtuellen seriellen Port (ttyACM1) zu mounten, der die Daten vom weitergeleiteten seriellen Port in Raspberry abhört. Bisher funktioniert das ziemlich gut und ich kann Software auf meinem Laptop verwenden, um den Drucker aus der Ferne zu verwenden.
Aber jetzt habe ich ein Problem, wenn ich versuche, die Daten zu überwachen, die ich von der Software an den Drucker sende. Ich habe versucht, mit verschiedenen Softwareprogrammen serielle Portdaten abzuhören, aber jedes Mal, wenn ich diese Software ausführe, wird die Verbindung zwischen Druckersoftware und virtuellem seriellen Port getrennt.
Wie kann ich also gleichzeitig Software verwenden und die Daten abfangen, die ich von der Software an den Drucker sende, ohne die Verbindung zwischen dem virtuellen Port und der Software abzubrechen?
Hier sind die Befehle und Software, die ich in diesem Setup verwende:
InHimbeereDrucker ist an ttyACM0 angeschlossen
*ser2net.conf:
3333:raw:0:/dev/ttyACM0:115200,8DATABITS,NONE,1STOPBIT,XONXOFF,RTSCTS
In meinemLaptop:
$sudo socat pty,raw,echo=0,link=/dev/ttyACM1 tcp:10.1.1.107:3333
(in /dev/ ist jetzt ttyACM1->/dev/pts/30 erschienen)
Und wenn ich zum Beispiel Interceptty versuche:
$sudo interceptty /dev/ttyACM1
um Daten abzufangen, wenn die Druckersoftware läuft, wird angezeigt, dass die Verbindung zum Drucker getrennt ist. Ich kann die Daten mit Interceptty immer noch vom ttyACM1 lesen. Und wenn ich Interceptty schließe, wird der Drucker wieder gefunden.
Gibt es eine Möglichkeit, die Daten während der Verwendung des Druckers abzufangen?