Ich habe ein serielles Portgerät, das ich mithilfe der Linux-Befehlszeile testen möchte.
Ich kann stty und echo verwenden, um Befehle an den seriellen Port zu senden, aber wenn das Gerät antwortet, kann ich nicht lesen, was vom seriellen Port kommt. Ich verwende
stty -F /dev/ttyS0 speed 9600 cs8 -cstopb -parenb && echo -n ^R^B > /dev/ttyS0
um einen Befehl an das Gerät zu senden. Das Gerät arbeitet und sendet innerhalb von 300 ms eine Antwort zurück. Wie drucke ich diese Antwort über die Befehlszeile auf der Konsole aus?
Antwort1
Dasselbe wie bei der Ausgabe. Beispiel:
cat /dev/ttyS0
Oder:
cat < /dev/ttyS0
Das erste Beispiel ist eine App, die den seriellen Port öffnet und das, was sie von ihm liest, an ihre stdout
(Ihre Konsole) weiterleitet. Das zweite ist die Shell, die den seriellen Port-Verkehr an eine beliebige App weiterleitet; diese bestimmte App leitet dann einfach ihren Datenverkehr stdin
an ihre weiter stdout
.
Um einen besseren Einblick in den Datenverkehr zu erhalten, bevorzugen Sie möglicherweise einen Hex-Dump:
od -x < /dev/ttyS0
Antwort2
Ich überwache die Ausgabe für Arduino Uno wie:
screen /dev/ttyUSB0 9600