Gibt es ein Portüberwachungstool, um die auf dem Port geschriebenen Pakete zu überwachen? Ich möchte vor allem prüfen, ob mein in Java geschriebenes Programm funktioniert. Daher benötige ich ein Tool, um festzustellen, ob meine kleine Anwendung die Nachrichten an den Port schreibt. Wie mache ich das?
linux
serial-port
Deepak
quelle
quelle
Antworten:
Ich habe Projekte namens Linux Serial Sniffer , jpnevulator und Moni gefunden . Die ersten beiden machen genau das, was Sie wollen. Der letzte nennt sich Monitor, sieht aber aus wie ein Standardprogramm für serielle Kommunikation.
quelle
socat ist ein Werkzeug, um (fast) alles mit (fast) allem zu verbinden, und tee kann Streams duplizieren.
In Ihrem Anwendungsfall können Sie Ihren seriellen Anschluss
/dev/ttyS0
mit einem PTY verbinden/tmp/ttyV0
, dann Ihre Anwendung auf den PTY richtentee
und die Ein- und Ausgänge an einer für Sie beobachtbaren Stelle ausgeben .Wenn Sie "socat serial port pty tee debug" googeln, werden Sie auf einige Beispiele hingewiesen, von denen eines ist:
Die Dateien
in.txt
undout.txt
enthalten dann die erfassten Daten.Dies wurde von Kommentatoren (@ogurets) als funktionierend bestätigt.
quelle
socat
Proxy-ioctl-Aufrufe können.Ich glaube nicht, dass der serielle Treiber über Tracing-Funktionen verfügt, mit denen Sie Pakete überwachen können. Sie können verwenden
strace
, um alle Lese- und Schreibvorgänge in Ihrer Anwendung zu beobachten:quelle
interceptty
erledigt diese Arbeit:oder mit einem netten Ausgabeformat und mit Konfiguration des Backend-Geräts und mit Zeilenpufferung:
und verbinden Sie sich dann mit Ihrem Programm zu
/dev/ttyDUMMY
.quelle
wget
da das Klicken auf die.tar.gz
Datei irgendwie beschädigt zu sein schien), installierengcc
undmake
dann ausführen./configure
undmake install
. Tut genau das, was der OP und ich wollen.Wenn ich die Interaktion meiner Anwendung mit einer seriellen Schnittstelle debugge , verwende ich moserial .
quelle
Versuche dies:
funktioniert bei mir.
quelle
Dies ist der Weg, den ich schließlich wähle
Dank Gilles Antwort !
Entschuldigung, ich werde erklären ...
ls -l /proc/[0-9]*/fd/* | grep ttyUSB0
stattdessen,lsof ttyUSB0
weil ich sie manchmal langsam gesehen habe.ttyUSB0
tty${1:-USB0}
Ermöglicht, als Skript verwendet, die Ausführung mit dem seriellen Gerätenamen als Argument:ttySniff USB0
oderttySniff S0
so weiter.unbackslash
Zeichenfolgen von protokolliertstrace
.Nota: Ich starte sie mit,
script -t
damit ich das Ganze nachvollziehen und Timing-Ausführungen verfolgen kann.quelle
Schauen Sie sich ttyUSBSpy an . Es ist auf der Alpha-Bühne, aber es funktioniert.
quelle
import pcopy
, die sogar Google aufgegeben hat, um zu finden.minicom
fehlt in der Liste der Tools zur Überwachung der seriellen Schnittstellen. Verwenden Sie es zum Beispiel, um ein Arduino-Gerät anzuhören:minicom --device /dev/ttyACM0 --baud 9600
quelle