Hallo, ich kann Befehle über
screen /dev/ttyUSB0
an ein USB LTE Modem schicken. Mit diesen Befehlen kann man Signalwerte auslesen und Verbindungen herstellen. Ich möchte diese Befehle zur Signalauswertung in einem sh Skript einsetzen. Das klappe mit "echo" soweit, jedoch möchte ich die Signale auch auswerten und müsste die Reaktionen des Modems in eine Datei umleiten.
Ich habe zum Test zwei Terminals geöffnet. Über ein Terminal setze ich die echo Befehle ab. im 2ten Fenster kontrollieren ich mit "screen /dev/ttyUSB0" die Eingaben und erhalte die Reaktionen des Befehls. Folgende Echo Eingabe sendet den gewünschten Befehl "AT^HFREQINFO?" an /dev/ttyUSB0. Die Reaktion kann ich prompt im "screen /dev/ttyUSB0" Fenster sehen. Der 2te Teil mit der Pipe funktioniert jedoch nicht. Egal mit bzw. ohne "tee" oder mit ">" anstelle der pipe, die screen Ausgabe die ich am Bildschirm beobachten kann, wird nicht in die Datei umgeleitet. Ohne "tee" erhalte ich eine "permission denied" Fehlermeldung.
1 | echo -e -n 'AT^HFREQINFO?\015' > /dev/ttyUSB0 2>&1 | /tmp/screen.log |
Möglicherweise wird der Schreibprozess zu schnell beendet. Die Ausgabe im screen Fenster braucht eine halbe Sekunde. Kann man die pipe des Schreibens irgendwie verzögern bzw eine Zeitspanne lang offen halten?
Alternativ kann ich mit "gcom" arbeiten. "gcom" mit einer passenden config- Datei erzeugt entsprechende txt Dateien mit dem gewünschten Bildschirminhalt. Diese Method eignet sich nicht für Skripte in denen flexibel auf "wenn und aber" reagiert werden soll.
Ziel wäre es, über "/dev/ttyUSB0" oder "/dev/ttyUSB1" einen Befehl an mein LTE Modem zu schicken, und dessen Reaktion in einer Datei zu speichern, welche ich mit "awk" näher untersuchen würde. (ttyUSB1 oder ttyUSB0 bewirken dasselbe) Hat jemand eine Idee?