WindowsなどではAH-G10 monitorなどを使ってグラフィカルに電波状態を監視できるわけだが,モバイル機器で電波状態を知りたいときもたまにあるかもしれない!?ということで,ちょうどシリアルコンソールのminicomの使い方をUNIX USER 9月号でにゃののんさんが紹介されていたりするらしいし,たむたむさんがcuのipkパッケージが出たりしているので,SL-ZaurusでATコマンドを利用する方法を書いておこうと思う.まぁ,こんなことをしたいと思う人は自分でなんとかできたりするものだが...(^^;
必要な環境
SL-Zaurusが必要というのはいうまでもない(笑)!現在発売されているSL-A300/SL-B500/SL-C700/SL-C750/SL-C760のどれでも問題ないと思われる.確認してないけど,大丈夫でしょ・・・.それから,当然カード端末もしくは電話型端末が必要で,電話型の場合は,SL-Zaurusと端末を接続するケーブルが必要となる.購入できるものでは,MasterのDPC-SLZやサン電子のi-Card typeF1(CS64CF)とAirH"PHONE用のケーブルがあるが,どちらもそれなりに高価である.また,自作するのであればtedmiyさんやcaitsithさんがKX-HA10などを利用して作成しているので参考にしてみてはいかがでしょう?
コンソールアプリケーションを扱うので,ターミナルが必要となる.SL-C700以前の機種はターミナルが標準でインストールされているので特に準備する必要はないが,はじめからインストールされているものよりもより使いやすいものが出回っているので,どうせならqpe-embeddedkonsole-jaをインストールするとよいかもしれない.SL-C750/760ははじめはインストールされていないので,qpe-embeddedkonsole-jaをインストールすることが必須である.いとしのlizaにてqpe-embeddedkonsole-ja(ワイド版)を手に入れる.SL-C7x0シリーズでは日本語入力欄付きワイド版パッケージがいいのではないかと思うが,QPOBoxを使っている人などお好みに合わせて使いやすいものをインストールしよう!
カード端末でサスペンド回避
音声端末などを直接シリアル接続している場合などにはすでに端末に電源が入っているので問題はないのですが,カードスロットを経由した場合のカード端末や音声端末用カードアダプタはカードを挿しただけでは‘サスペンド状態’になっています.よって,カードを有効化しなければなりません・・・.まず,カードを挿しただけのサスペンド状態でカードの状態を見ると以下のようにサスペンド状態なのがわかります.
bash-2.05$ cardctl status Socket 0: 3.3V 16-bit PC Card [suspended] Socket 1: no card
そこで,cardctlコマンドで引数にresumeを用いてカードを有効化します.その後,カードの状態を見るとreadyの文字が見え,カード端末などではLEDが点灯すると思います.そうなったら準備OKです.ちなみに,ATコマンドなどを調べたりして,作業が終わったら,きちんとcardctlコマンドで引数にsuspendを用いてカードをサスペンド状態に戻しておきましょう.慣れればステータスをいちいち確認しなくてもいいです.ついでに,ここに書いておきますがカードスロットは/dev/ttyS3が,USBでつなげられるポートは/dev/ttyS0が割り振られているようです.
bash-2.05$ cardctl resume bash-2.05$ cardctl status Socket 0: 3.3V 16-bit PC Card function 0: [ready], [bat dead], [bat low] Socket 1: no card
minicomを使う
読んでないので何とも言えないのだけど,minicom自体の使い方などはUNIX USER 9月号を見たほうがいいかもしれません(ぉ まず,Zaurus Software Indexにてminicomを手に入れる.いつの間にかminicom-2.1とかもあるようだが,なぜかminicomを立ち上げたりするとターミナルの画面が小さくなったりするので,旧バージョンのほうがいいかもしれない・・・.旧バージョンの場合は,zipの圧縮ファイルになっているので,unzipをインストールしておく必要がある.ここからの初期設定はsuでスーパーユーザになっておくと便利でしょう.unzip minicom.zip で解凍して,chmod 755 minicom でパーミッションを変えて,mv minicom /usr/bin で移動しておくくらいはやっておきたいですね・・・.で,touch /etc/minirc.dfl として空の設定ファイルを作っておく.minicom -s で立ち上げて,設定をする.Serial port setupでSerial Deviceをカード端末なら/dev/ttyS3にする.Bps/Par/Bitsなどは動けばいいので,動くものを(ぉ Save as dflで設定を保存して,Exit from minicomで終了する.ここまではインストールしたときだけやることってことで,minicom自体終わらせちゃいました・・・.
bash-2.05$ su # exec bash bash-2.05# unzip minicom.zip bash-2.05# chmod 755 minicom bash-2.05# mv minicom /usr/bin bash-2.05# touch /etc/minirc.dfl bash-2.05# minicom -s
cardctlで引数をresumeを用いてカードを有効化してから,改めてsuでスーパーユーザになって,minicomを起動するとATコマンドが使えます.Ctrl-Aを押してからZを押すとヘルプが出るので,そこでXを押すと終了できます.コントロールキーなどは標準状態のSL-ZaurusではないためminicomはATコマンドを使うくらいならあまりお勧めできないかもしれない.Ctrlキーを使うためにはKeyHelper Appletを使ったいするのがいいと思います.
bash-2.05$ cardctl resume bash-2.05$ su # exec bash bash-2.05# minicom
cuを使う
りなざうテクノウにてたむたむさんがcuのipkパッケージを配布されているのでそれをダウンロードしてインストールします.which cu をして,/usr/local/bin/cu などと表示されていれば問題ないです.使い方も簡単で,cardctl resumeでカードを有効化した後に,「cu -l [接続先デバイスファイル名(/dev/ttyS3など)] -s [接続速度(115200など)]」というふうにします.デバイスファイル名については先ほども書きましたが,CFカードスロットを利用する場合は/dev/ttyS3となります.接続速度は単にATコマンドを利用するだけなので遅くてもいいので9600とかでもいいのですが,カード端末とかでは115200でいいでしょう.Connected.が表示されて,ATコマンドをキーボードなどで入力できるようになったら利用可能です.終了するには~(チルダ)と.(ピリオド)を入力して,Enterを押します.Disconnected.が表示されて通常のコンソールに戻ります.
bash-2.05$ cu -l /dev/ttyS3 -s 115200 Connected. ati1 AirH" OK ati4 AH-N401C OK at@@lnk 3 OK ~. Disconnected. bash-2.05$
まとめ
cuのほうが楽だと思うのですが,丁度uucpにcuが入ってることがわかってクロスコンパイルしようとしていたところにたむたむさんがipkファイルを作ってくれたのでインストールついでにAirH"関連のコンテンツとしてATコマンドを利用するということで書いてみました.ATコマンドを利用するのは当然ながら端末で通信をしていない状態でなければなりません・・・.なので通信しながら現在の電波状態を調べるということはできないのはいまいち使い勝手はよくないのかもしれませんが,デバイスとして同時に2つの通信ができないのでしょうがないですね・・・.まぁ,これはWindowsだろうとなんだろうと同じなわけですし・・・.cuのソースとかを参考にすれば,AirMonitorZとかができるかしら!?まぁ,私の技術力じゃ当分無理です(笑)
(2003年8月28日)