w BusyBox
command dla Linuksa istnieje polecenie microcom
komunikowania się z szeregowego Modem:Przekierowywanie AT Microcom polecenia pod Linuksem
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
Zamiast stdin do wpisywania komend AT Chcę umieścić je insise plik tekstowy i przekierować zawartość tego pliku jako stdin dla powyższego polecenia. Na przykład mam pliku
/tmp/at.txt
z poleceniem AT AT
, które zwykle pobiera potwierdzona przez TTY z OK
. Standardowa sesja z stdin wygląda następująco:
microcom -t 3000 -X /dev/ttyS5
at
OK
w którym ciąg at
został wpisany bezpośrednio na klawiaturze. Aby użyć zawartości pliku /tmp/at.txt
(zawiera tylko 'at \ n'). Aby to zrobić. Próbowałem następujące warianty:
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
i żaden z nich nie pracował, to żaden z tych poleceń nie zwróci tekst „OK” na ekranie. Wnioskuję zatem, że istnieje pewien problem przekierowujący zawartość pliku /tmp/at.txt
jako stdin dla polecenia microcom
. Może ma to związek z interpretacją końca linii lub końcem pliku. Jeśli ktoś ma jakiś pomysł, byłbym wdzięczny za pomoc.
Dzięki,
Alex
Co powłoki używasz? – tMC