Linux のコマンドには、シリアル モデムと通信するためのコマンドが存在しBusyBox
ますmicrocom
。
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
stdin を使用して AT コマンドを入力する代わりに、それらをテキスト ファイルに配置し、そのファイルの内容を上記のコマンドの stdin としてリダイレクトします。たとえば、ファイルがあります
/tmp/at.txt
AT コマンドAT
を使用します。これは通常、TTY でOK
. stdin を使用した標準セッションは次のようになります。
microcom -t 3000 -X /dev/ttyS5
at
OK
文字列at
がキーボードで直接入力されたもの。ファイルの内容を使用するため/tmp/at.txt
('at\n' のみを含む)。これをする、。次のバリエーションを試しました。
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
つまり、これらのコマンドのいずれも、画面に「OK」というテキストを返しませんでした。/tmp/at.txt
したがって、ファイルの内容をコマンドの標準入力としてリダイレクトする際に問題があると結論付けていますmicrocom
。おそらく、行末がどのように解釈されるか、またはファイルの終わりに関係しているのでしょう。誰かが何か考えを持っているなら、私は助けていただければ幸いです。
ありがとう、
アレックス