nella BusyBox
command per Linux esiste il comando microcom
per comunicare con un modem seriale:Redirecting AT per MICROCOM comando sotto Linux
BusyBox v1.13.2 (2012-05-10 17:13:08 CEST) multi-call binary
Usage: microcom [-d DELAY] [-t TIMEOUT] [-s SPEED] [-X] TTY
Copy bytes for stdin to TTY and from TTY to stdout
Options:
-d Wait up to DELAY ms for TTY output before sending every next byte to it
-t Exit if both stdin and TTY are silent for TIMEOUT ms
-s Set serial line to SPEED
-X Disable special meaning of NUL and Ctrl-X from stdin
Invece di usare stdin per digitare i comandi AT voglio metterli insise un file di testo e reindirizzare il contenuto di quel file come stdin per il comando precedente. Ad esempio, ho un file
/tmp/at.txt
con il comando AT AT
, che di solito viene confermata dal TTY con una OK
. Una sessione di serie con stdin assomiglia:
microcom -t 3000 -X /dev/ttyS5
at
OK
in cui la stringa di at
è stato immesso direttamente sulla tastiera. Per utilizzare il contenuto del file /tmp/at.txt
(contiene solo 'at \ n'). Per fare questo,. Ho provato le seguenti variazioni:
microcom -t 3000 -X /dev/ttyS5 < /tmp/at.txt
microcom -t 3000 /dev/ttyS5 < /tmp/at.txt
cat /tmp/at.txt | microcom -t 3000 /dev/ttyS5
tail -f /tmp/at.txt | microcom -t 3000 /dev/ttyS5
cat /tmp/at.txt | microcom -t 3000 /dev/ttyS5 -X
tail -f /tmp/at.txt | microcom -t 3000 /dev/ttyS5 -X
e nessuno di loro ha lavorato, cioè nessuno di questi comandi ha fatto tornare il testo 'OK' sullo schermo. Concludo pertanto che c'è qualche problema nel reindirizzare il contenuto del file /tmp/at.txt
come stdin per il comando microcom
. Forse ha a che fare con come viene interpretato il fine linea o la fine del file. Se qualcuno ha qualche idea, gradirei un aiuto.
Grazie,
Alex
Cosa guscio stai usando? – tMC