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