Hallo
wie kann ich mir jedes byte, welches durch eine bestimmte Schnittstelle wandert, (sowohl in als auch out) anzeigen lassen(realtime).
gruss felix
Am Dienstag, 19. April 2005 18:32 schrieb Felix Kurth:
Hallo
wie kann ich mir jedes byte, welches durch eine bestimmte Schnittstelle wandert, (sowohl in als auch out) anzeigen lassen(realtime).
gruss felix
1.) Durch die Hardware-Kopplung auf eine 2. / 3. serielle Schnittstelle.
2.) Durch Einbau von Debug-Meldungen im Programm (Vorteil von open source, gestattet auch timing-Analyse etc).
Da wir hier eine LUG sind: der Zugriff auf eine Ressource ist einmalig. Wenn ein Byte gelesen oder gesendet wurde, ist es weg für alle anderen Applikationen. Man kann theoretisch die Ein- & Ausgaben in ein anderes Programmm umleiten, das dann seinerseits die serielle Schnittstelle bedient und dabei protokolliert. Das ist aber problematisch, da serielle Schnittstellen neben I/O auch noch Steuerfunktionen (ioctl's, fnctl's) haben, die dabei zu beachten sind.
Klartext: tee funktioniert nicht, named pipes etc übertragen keine ioctl's, cat und dd "verunstalten" das Verhalten der Schnittstelle und lesen exklusiv (das eigentliche Programm empfängt nichts mehr).
Bernhard
wie kann ich mir jedes byte, welches durch eine bestimmte Schnittstelle wandert, (sowohl in als auch out) anzeigen lassen(realtime).
snooper?
ist auch ein gleichnamiges debianpackage.
Nutze ich immer um das automatische Zurücksenden von empfangegen Bytes, was die serielle Schnittstelle standardmäßig macht, vor dem Aufruf eines eigenen bash-skriptes zur Kommunikation mit meinem Taschenrechner zu unterbinden. Dabei schießt sich bei meinem Aufruf snooper sogar selber mit einem segfault ab, was in diesem Fall sogar ganz nützlich ist ;)
lug-dd@mailman.schlittermann.de