DATE : 2007/01/17 (Wed)
(前回の記事)
進行方向のみをエミュレーションする小技
進行方向のみを扱う場合は、以下のように GPRMC データを作ると簡単に進行方向をエミュレーションできます。(BREW シミュレータ Version 3.1.2.17 で確認しました)
- GPRMC の進行方向部分を任意の値に書き換える。
- 緯度・経度のどちらかの値を適当に変化させる。
例えば、10秒後に真東へ、20秒後は真北へ進んだ GPRMC データは次のようになります。(初めのデータは、「NMEA-0183 フォーマット」からの転載です)
$GPRMC,050945.00,A,3504.227794,N,13545.810149,E,000.0,57.1,140302,6.5,W,A*12 $GPRMC,050955.00,A,3504.227795,N,13545.810149,E,000.0,90.0,140302,6.5,W,A*12 $GPRMC,050965.00,A,3504.227794,N,13545.810149,E,000.0,0.0,140302,6.5,W,A*12
緯度・経度のどちらかを適当な値に変えるのがポイントです。緯度・経度の値が変わらない場合、BREW シミュレータの GPS エミュレータは進行方向も変化していないと見なすようです。実際、緯度・経度が変化しない場合は進行方向も変わらないので、そのような動作になっているのだと思います。上の例では、緯度を0.000001分刻みで増減させています。
(了)
DATE : 2007/01/14 (Sun)
GPRMC で取得できる方位は、携帯端末を向けている方向ではなく、進行方向だったことに今日気付きました orz
(;^ω^)つまり、北に携帯端末を向けながら東の方向へ進んだ場合、GPRMC には東の方位が出てきます。
というわけで、これまでの記事を修正しておきました。
ちなみに、電子コンパスを使った、携帯端末を向けている方向を表す方位は IPOSDET_GetOrientation 関数を使うと取得できます。
(;´Д`) ただし、電子コンパスのエミュレーションはできないようです。BREW シミュレータでは、IPOSDET_GetOrientation 関数が有効な値を返すのですが、電子コンパスのデータを表す HCHDG データを入力しても値に変化はありませんでした。
参考文献
DATE : 2007/01/12 (Fri)
(前回の記事)
緯度・経度・進行方向のみを扱う場合の小技
緯度・経度・進行方向のみを扱い高度を扱わない場合は、GPRMC データのみの BGP ファイルでもエミュレーションできます。(BREW シミュレータ Version 3.1.2.17 で確認しました)
例えば、前回の記事の例で、BREW アプレット内では緯度・経度・進行方向のみを扱う場合は、GPGGA データを削除できます。
BGP の例
$GPRMC,050945.00,A,3504.227794,N,13545.810149,E,000.0,57.1,140302,6.5,W,A*12 $GPGGA,050945.00,3504.227794,N,13545.810149,E,1,06,1.4,151.00,M,34.53,M,,*6A $GPRMC,050946.00,A,3504.327794,N,13545.810149,E,000.0,0.0,140302,6.5,W,A*12 $GPGGA,050946.00,3504.327794,N,13545.810149,E,1,06,1.4,151.00,M,34.53,M,,*6A $GPRMC,050947.00,A,3504.327794,N,13545.910149,E,000.0,90.0,140302,6.5,W,A*12 $GPGGA,050947.00,3504.327794,N,13545.910149,E,1,06,1.4,151.00,M,34.53,M,,*6A
緯度・経度・進行方向のみを扱う場合の例
$GPRMC,050945.00,A,3504.227794,N,13545.810149,E,000.0,57.1,140302,6.5,W,A*12 $GPRMC,050946.00,A,3504.327794,N,13545.810149,E,000.0,0.0,140302,6.5,W,A*12 $GPRMC,050947.00,A,3504.327794,N,13545.910149,E,000.0,90.0,140302,6.5,W,A*12
( ^ω^)GPGGA データを作る手間が省けるので、とても楽です
ただし、本来の BGP ファイルでは GPRMC, GPGGA 両方のデータが必要です。そのため、BREW シミュレータのバージョンによっては正しく動作しない場合があります。
(つづきます)
DATE : 2007/01/08 (Mon)
(前回の記事)
BGP ファイルの作成
位置情報として GPRMC と GPGGA データを並べて BGP ファイルを作成します。ここでは、以下の点に注意が必要です。
- 1つ分の位置情報は、GPRMC と GPGGA の組です。
- GPRMC が先で GPGGA が後です。
- GPRMC もしくは GPGGA データを1つ入力したら、改行(CR+LF)します。
(;^ω^)1, 2番目は見事にはまりました。
例えば、1秒後に真北へ0.1分、2秒後に真東へ0.1分進んだ場合の BGP ファイルの内容は次のようになります。(初めの GPRMC, GPGGA データは、 「NMEA-0183 フォーマット」の出力例からの転載です)
$GPRMC,050945.00,A,3504.227794,N,13545.810149,E,000.0,57.1,140302,6.5,W,A*12 $GPGGA,050945.00,3504.227794,N,13545.810149,E,1,06,1.4,151.00,M,34.53,M,,*6A $GPRMC,050946.00,A,3504.327794,N,13545.810149,E,000.0,0.0,140302,6.5,W,A*12 $GPGGA,050946.00,3504.327794,N,13545.810149,E,1,06,1.4,151.00,M,34.53,M,,*6A $GPRMC,050947.00,A,3504.327794,N,13545.910149,E,000.0,90.0,140302,6.5,W,A*12 $GPGGA,050947.00,3504.327794,N,13545.910149,E,1,06,1.4,151.00,M,34.53,M,,*6A
(つづきます)
参考文献
DATE : 2007/01/07 (Sun)
(前回の記事)
GPGGA
手入力用の雛形として、まず GPGGA の例をひとつコピーしてきます。(以下の例は、「NMEA-0183 フォーマット」からの転載です)
$GPGGA,050945.00,3504.227794,N,13545.810149,E,1,06,1.4,151.00,M,34.53,M,,*6A
このデータの中で重要な部分を示します。
$GPGGA,050945.00,3504.227794,N,13545.810149,E,1,06,1.4,151.00,M,34.53,M,,*6A
- 050945.00
- GPRMC の現在時刻と同じ値に設定します。
- 3504.227794,N
- GPRMC の緯度と同じ値に設定します。
- 13545.810149,E
- GPRMC の経度と同じ値に設定します。
- 151.00
- 海抜です。単位はメートルです。
高度を変えることで、任意の高度で GPS エミュレーションを行えます。
(つづきます)