Linux(Ubuntu)では、ATコマンドを/dev/ttyACM0
のモデムに送信しようとしています。次のようにしてみました。
Sudo socat - /dev/ttyACM0
しかし、何かを入力すると、このコマンドを繰り返す行が表示されます(OK
が必要です)。
私がする時
Sudo minicom modem1
それは動作するようです。 AT
と入力してOK
を取得します。がらくたを入力すると、ERROR
が表示されます。
Minicomのmodem1
は/dev/ttyACM0
でモデムを使用するように設定されているようです。
ATコマンドを送信するためにsocatをどのように使用できますか?何かを構成する必要がありますか?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
socat - /dev/ttyUSB2,crnl
をお試しください
これは、socatに改行だけでなくキャリッジリターンも送信するように指示します。
明確化-これは、電動タイプライターの暗い時代に戻ります。キャリッジをページの0の位置にロールバックするように指示する必要があります-エルゴ、キャリッジリターン用紙を1行上に移動します。
LinuxのモデムにATコマンドを送信する最良の方法は、送信することのみを目的として記述されたプログラム atinout を使用することです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コマンドを使用する他のすべてのもの。
私はあなたが何を望んでいるかを示すこのChromiumプロジェクトの投稿に出くわしました。タイトルは 携帯電話モデムのデバッグ です。
そのページからの抜粋
ATコマンドセットを使用してモデムと直接通信する
ほとんどのモデムは、ATモデムを制御して情報を照会するコマンドをサポートしています。開発者モードが有効なChromium OSデバイスでは、socatコマンドを使用してモデムと通信できます。Chromiumが必要ですテストイメージがインストールされたOSデバイス(または、開発サーバーに精通している場合は、gmerge socatを使用できます)例:
- CTRL + ALT + Tを入力して、Crosshシェルに入ります。
- Shellと入力して、bashシェルに入ります。
- 使用するUSBデバイスを特定します:ls/dev/ttyACM */dev/ttyUSB *
- 実行中の場合はモデムマネージャを停止します。sudostop 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コマンド、たとえば「AT + CGMI」、「AT + CGSN」などを試すことができます。