どこから取得するか
MacintoshにはCheetahWatchというソフトウェアがあります。このソフトウェアを使うと、イーモバイルの7.2Mbps対応USBモデムD02HWの電波強度をリアルタイムに取得する事が出来ます。
これと同じ事をWindowsでもしたいと思って調べてみると、hwhack: メモ:D02HW解析にあった。
なのでCOMnを開いて読み書きすればよさそう。しかし当たり前だけど、PPP通信中はデバイスドライバがCOMnを握ってしまうので、それを奪うことは不可能。
が、探してみれば手はあるもので、E-Mobile Utilityをインストールしたフォルダの下のLog以下を調べてみると、ATRecord.txtに制御用のATコマンドが全てダンプされていた。なので、これを読めばよさそうな感じ。幸いにして、接続中は定期的にAT^ANQUERY?をデバイスドライバが投げてくれるらしいので、その出力を拾っていけば、電波強度の取得は出来そう。
出力フォーマット
しかし、ここで問題になるのが、AT^ANQUERY?コマンドの出力の意味。
^ANQUERY:68,46,69,4
というフォーマットで出力されているのだけれども、このそれぞれの数の意味は何だろう。電波強度をdBで表した物だと考えても、それっぽい数値がいくつかあるし。このあたりあまりよく分からない。
まとめ
- 制御用インターフェースに対して、AT^ANQUERY?コマンドを投げると電波強度が得られる。
- だけどCOMnは握れないので、Log\ATRecord.txtから読み出す。
- ^ANQUERY?の出力値は不明
今のところ、こんな感じ。