LinuxでモデムにATコマンドを送信するには?

LinuxでモデムにATコマンドを送信するには?

Linux(Ubuntu)では、にあるモデムにATコマンドを送信しようとします/dev/ttyACM0。私はこれを試みます:

sudo socat - /dev/ttyACM0

しかし、何でも入力すると、このコマンドを繰り返す行が表示されます(予想したコマンドですOK)。

私がするとき

sudo minicom modem1

うまくいくようです。私はanを入力してAT取得しますOK。私はいくつかのゴミを入力して取得しますERROR

modem1ミニコムは何とか​​モデムを使用するように設定されているようです/dev/ttyACM0

socatを使ってATコマンドを送信するには?何かを構成する必要がありますか?たぶんminicomの設定を使用できますかmodem1? (この設定を見つけるかどうかわかりません)

追加情報

与えられたsocatコマンドは正しいですか?試すべきいくつかのオプションがありますか?その-vオプションを使用すると、次のものが表示されます。

AT
> 2013/10/23 17:10:28.917413  length=3 from=0 to=2
AT
< 2013/10/23 17:10:28.921598  length=3 from=0 to=2
AT
AT
ksjdhfjdgfhjkdfh
> 2013/10/23 17:10:30.244923  length=17 from=3 to=19
ksjdhfjdgfhjkdfh
< 2013/10/23 17:10:30.251383  length=29 from=3 to=31
ksjdhfjdgfhjk\b \bd\b \bf\b \bh\b \b
ksjdhfjdgfhj 

次のdmesg出力を介してデバイス自体を見つけます。

[5983726.808063] usb 2-1: USB disconnect, device number 3
[5983730.800021] usb 2-1: new full-speed USB device number 4 using uhci_hcd
[5983730.920014] usb 2-1: device descriptor read/64, error -71
[5983733.629524] usb 2-1: New USB device found, idVendor=0572, idProduct=1329
[5983733.629533] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[5983733.629539] usb 2-1: Product: USB Modem
[5983733.629544] usb 2-1: Manufacturer: Conexant
[5983733.629549] usb 2-1: SerialNumber: 24680246
[5983733.632673] cdc_acm 2-1:1.0: ttyACM0: USB ACM device

tty 構成は次のとおりです。

speed 57600 baud; line = 0;
eof = ^A; min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -echo -echoe

答え1

努力するsocat - /dev/ttyUSB2,crnl

これはsocatにキャリッジリターンと改行を送るように指示します。

説明 - これは電気タイプライターの暗黒機にさかのぼります。そこでは、キャリッジをページのゼロ位置に戻すように指示しなければなりませんでした。入力する- そして、紙を1行上に移動するように指示します。

答え2

LinuxでモデムにATコマンドを送信する最善の方法は、このプログラムを使用することです。アーティヌートこれは、コマンドラインからモデムにATコマンドを送信するためにのみ書かれています。

あなたはそれを使用することができますモデムが動作しているかどうかをテストします。、バックアップ登録簿:

$ atinout - /dev/ttyACM0 ten_first_phonebook_entries.txt <<EOF
at+cscs="UTF-8"
at+cpbs="SM"; +cpbr=1,10
at+cpbs="ME"; +cpbr=1,10
EOF
$

または、ATコマンドを使用して実行する他の操作。

答え3

あなたが望むものを示すこのChromiumプロジェクトの投稿を見つけました。タイトルは次のとおりです。セルラーモデムのデバッグ

このページから抜粋

ATコマンドセットを使用してモデムと直接通信

ほとんどのモデムは、モデムとクエリ情報を制御するATコマンドをサポートしています。開発者モードが有効なChromium OSデバイスでは、socatコマンドを使用してモデムと通信できます。テストイメージがインストールされているChromium OSデバイスが必要です(または開発サーバーに精通している場合はgmerge socatを使用できます)。たとえば、

  • Crosh シェルを起動するには、CTRL+ALT+T と入力します。
  • bash シェルに入るには、シェルを入力します。
  • 使用する USB デバイスの決定: ls /dev/ttyACM* /dev/ttyUSB*
  • モデムマネージャが実行中の場合は停止します。 sudo stop modemmanager
  • sudo socat - /dev/ttyACM1,crnl または sudo socat - /dev/ttyUSB0 と入力してモデムと通信します。
  • 「AT+CFUN=1」を使用してモデムが有効になっていることを確認してください。

たとえば、

    crosh> shell
    chronos@localhost ~ $ sudo stop modemmanager
    chronos@localhost ~ $ ls /dev/ttyACM* /dev/ttyUSB*
    /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2
    chronos@localhost ~ $ socat - /dev/ttyUSB1
    ATZ
    OK
    AT+CFUN=1
    OK
    ATI
    Manufacturer: Qualcomm Incorporated
    Model: ......
    Revision:....
    ESN: 0x80d...
    +GCAP: +CIS707A, ....

    chronos@localhost ~ $ 

モデムに応じて、「AT + CGMI」、「AT + CGSN」などのさまざまなATコマンドを試すことができます。

答え4

#TIL この目的に使用できますscreen。努力する

screen /dev/ttyACM0 57600,cs8,-parenb,-cstopb,-hupcl

~からhttps://apple.stackexchange.com/a/318280/84497

関連情報