BREWエミュレータで位置情報を取得してみる

id:yellow_73:20060327 で通りすがりさんに、位置情報取得はBREWでできると教えてもらっていましたが、これまで放置していまして、やっと位置情報取得ができるかやってみました。
ただ、実機にアプレットをインストールできない状態ですので、BREWエミュレータでのGPSエミュレートで試してみたまでです。実機で思った通りに動作するかは不明。

テストデータを取ってくる

ということで、まずはデータを取りに行きました。ノートパソコンに、BREW SDK Tools を入れ、GPSを付けて、外に出て、NMEAlogger.exe を実行。このツールは、COMポートを素直に読んで、$GPGGAと$GPRMCのレコードだけ抽出してファイルに出すものだろうと思われます。

GPSを取得する方法

  1. ISHELL_CreateInstance で AEECLSID_POSDET のインスタンスを生成
  2. CALLBACK_Initで位置情報受信時コールバック、AEEGPSInfoへのポインタを設定したうえで IPOSDET_GetGPSInfo を実行
  3. 位置情報受信用コールバックでは、とりえあずAEEGPSInfoのメンバ dwLat, dwLon を取得
  4. dd(=degree,degree)を得るには、次のような計算が必要です。
    1. dwLat/33554432.0*180.0
    2. dwLon/67108864.0*360.0