en el BusyBox
command para Linux existe el comando microcom
para comunicarse con un módem serie:redireccionante comandos AT a MICROCOM de comandos en 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
En lugar de utilizar la entrada estándar para escribir los comandos AT quiero colocarlos insise un archivo de texto y redirigir el contenido de ese archivo como stdin para el comando anterior. Por ejemplo, tengo un archivo
/tmp/at.txt
con el comando AT AT
, que por lo general obtiene confirmado por el TTY con un OK
. Una sesión de serie con la entrada estándar se parece a:
microcom -t 3000 -X /dev/ttyS5
at
OK
en el que la cadena at
se introduce directamente en el teclado. Para usar el contenido del archivo /tmp/at.txt
(contiene solo 'at \ n'). Para hacer esto,. He probado las siguientes variaciones:
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
y ninguno de ellos trabajado, es decir, ninguno de esos comandos hizo devolver el texto 'OK' en la pantalla. Por lo tanto, concluyo que hay algún problema al redirigir el contenido del archivo /tmp/at.txt
como stdin para el comando microcom
. Quizás tiene que ver con cómo se interpreta el final de línea o el final de archivo. Si alguien tiene alguna idea, agradecería algo de ayuda.
Gracias,
Alex
Qué cáscara está usando? – tMC