ATコマンドをモデム(Huawei e171)にループで送信する必要があります。次のスクリプト(ファイルscript.txt)を試してみます。
start:
send AT+CSQ
sleep 2
goto start
minicom -S script.txt
を介して実行しましたが、何も表示されませんでした。空のミニコム画面が開きました。 ただし、単一のコマンドを使用したスクリプトは適切に機能します。
start:
send AT+CSQ
私が間違っているのは何ですか?
PS:私はこのスクリプトを試します:
start:
send AT+CSQ
send AT+CSQ
send AT+CSQ
しかし、モデムからの回答は3つではなく1つだけです。
コマンドの後に必要な期待される結果を持つソリューションexpect
キーワードが見つかりました:
start:
send AT+CSQ
expect "OK"
sleep 2
goto start
「expect」は回避策であり、完全ではありませんが、期待値を確認した後にのみシリアルポート出力を出力できるため、expectedキーワードが表示されない場合は、シリアルポート出力に関係なく何も出力されないことに同意します。
以下の例では、「help」を2秒ごとに送信し、20秒続きます。「help」コマンドへの応答で「kann>」を予期し、「help」の前に「kann>」を含めてすべての文字を出力します。
debian@bbb:~$ cat minicomscript.txt
verbose on
timeout 20
loop:
send help
expect "kann>"
sleep 2
goto loop
debian@bbb:~$ minicom -S minicomscript.txt