最近、提供された/dev/ttyUSB2
デバイス ノードを使用してモデムにコマンドを送信し、出力を解析することで、Lua を使用して USB 3G モデムのリンク品質とネットワーク タイプを取得しようとしています。
残念ながら、当時私はこれらのデバイス ノードが
stty
コマンドで改ざんされる可能性があることを認識していませんでした。そのため、出力をキャプチャすることが非常に困難でした。インターフェイスに書き込まれたコマンドが含まれる場合もあれば、何も表示されない場合もあるからです。場合によっては、誤ったデータを送信することさえあります (おそらくキャリッジ リターンと改行の問題の結果です)。
次のコマンドを発行して、適切に設定することができました。
os.execute("stty -F ".. device ..
" time 1 -hupcl ignpar -opost -onlcr -isig -icanon -echo brkint -icrnl")
現在、送信AT+ZPAS?
とAT+CSQ
一貫性が得られているようですが、ノードに設定できるより便利な設定を誰かが知っているかどうか疑問に思っています。
頭に浮かぶことの 1 つは、デバイスからのio.read()
待機中に Lua がハングしEOF
、本質的にコードを永久に停止するという事実ですが、デバイス ノードを「コマンド応答」としてレンダリングできるコマンドがあれば、それは非常に素晴らしいことです。 1 つの特定のコマンドの出力全体を恐れることなく安全に読み取ることができました。
ありがとうございました!