私はzte3gモデムを持っています。接続の確立には、キャリア提供のダイヤラを使用します。 ppp接続がアクティブになったら、いくつかのATコマンド(例:クエリ信号強度、AT+CSQ
)を送信したい)しかし、使用するダイヤラは、コマンドポートである/dev/ttyUSB0
ポートをロックしますモデムにATコマンドを送信します。接続がアクティブになったら、コマンドを送信する方法はありますか?
編集:追加のポート/ dev/ttyUSB1も試しました。しかし、ポートはモデムからのランダムなデータで流れています。サンプルを以下に示します。
T^PREFMODE??
^PREFMODE:8
OK
TC
^DSDORMANT:1
+CSQ:19, 99
OK
T^SYSINFO
^SYSINFO:2,3,0,4,255
OK
TT^SYSINFO?
^SYSINFO:2,3,0,4,255
コマンドを追加してみましたが、出力もありました。しかし、反応は非常に悪いです。ほとんどの場合、私のATコマンドは見過ごされていました。
デバイスがpppトラフィックに使用されている限り、ATコマンドを同時に実行することはできません。1。このため、最新のモデムはすべて、複数のシリアルインターフェイスを提供します。/dev/ttyUSB0および/ dev/ttyUSB1(または、Linux上のUSBCDCモデムの場合は/ dev/ttyACM0および/ dev/ttyACM1)。
電話機にRS-232互換コネクタ(おそらく追加のIrDAが付いている)があった時代に、3GPPは物理的な制限を克服するために多重化プロトコルを 7.1 として標準化しましたが、PCに特別なドライバが必要だったため、離陸した。今日、USBの固有の多重化機能により、複数のシリアルインターフェイスを提供しない理由はありません(通常は2つしかありません)。
したがって、コメントですでに述べたように、他のシリアルデバイスを使用する必要があります。 /dev/ttyUSB1
。
1 理論的には、モデムが+++
エスケープをサポートしている可能性があります。これにより、接続の進行中にATコマンドを実行できるようになりますが、何らかの方法で実行する必要があります。ダイヤラプログラムを変更して、それらを挿入し、応答を抽出します。