2017-10-30 5 views
0

私は、シリアルポート経由でモデムに接続し、ATコマンドの送信方法を理解し、出力に応じて条件を追加しようとしています。私はは/ dev/ttyAMA0へscreenまたはminicomを使用して接続してATコマンドを送信し、応答OKを受けるが、私はBash Serial Scripting

echo -en "AT" >/dev/ttyAMA0 && cat /dev/ttyAMA0 

を使用したとき、私は私だけが響いていますかを見ることができ、応答がありません何。 ATコマンドを送信し、出力がOKかERRORかを確認し、その応答に基づいて何か違うことをすることができるようにする必要があります。シリアルデバイスから何の応答も得られないのはなぜですか?

モデムに接続してテキストメッセージを送信できるbashスクリプトを作成しようとしていますが、動作していると仮定してエラーが発生しているかどうかを知る必要があります。これを達成するより良い方法はありますか?

答えて

0

エコー後、単にデバイスファイルをキャッチすることはできません。あなたはリスニングループを開始する必要があります。ターミナルのようなポートを介して、ダイアログのスクリプト

while read -r str < /dev/ttyAMA0; do 
    # $str will contain a line of text returned from modem. 
done 
+0

なぜ私はデバイスをキャッチすることができないのですか?私が2つの端末で開いていると、 'cat/dev/ttyAMA0'が走っている端末2の端末1に入れたすべてのATコマンドを見ることができます。このループで、私は何もread変数に返されませんでした。 – Alan

+0

私はこの方法を使いました。申し訳ありませんが、これはすべての場合に普遍的ではありません。そしてあなたは$ str変数をチェックする必要があります –