このページは2005年に作成したパラグライダーのレース用ナビゲーションソフト「パラナビ(仮称)」について記載しています。このブログを記載したきっかけについては、以下をご参照ください。
─ 目次 ─
トラックログ変換ツール(gba2trk)
■ 使用方法
gba2trk.exeはカートリッジ内のFlashROMに保存されたトラックログを、 カシミール等で読み込み可能なtrk形式に変換するための ツールです。FlashROMのイメージファイルを引数にして実行すると、ファイル 内を走査して、検出したトラックデータをtrk形式で出力します。
usage: gba2trk.exe filename [segment_option]
【使用手順】
1. FlashROMのデータをPC上へアップロードします。
PCとGBAをシリアルケーブルで接続する場合はGetTrackを参照してください。
ブートケーブルを使用する場合は、devmanツールで「FLASH 8M」を選択して[読み出し]を行います。 トラックログが保存されたブロックのみを選択してファイルへ保存しても良いですが、 全イメージ(1MB)を吸い上げても5秒程度なので、一括して読み込む方が簡単です。
devmanツールではなくbtcons.exeを使用している場合は、 "fr"オプションで0x01f00000オフセットから1mサイズで読み出しを行います。
パラレル接続等の独自ケーブルを使用している場合は09f00000hアドレスから100000hサイズ(1MB)を吸い上げてください。
2. コマンドプロンプトから、1.で保存したファイル名を引数にgba2trk.exeを実行します。
実行例:
% gba2trk.exe track.gba 20060218-2357.trk: Track=8603 Segment=2 (1.19byte/trk) 20060219-1058.trk: Track=1966 Segment=1 (0.96byte/trk) 20060219-1418.trk: Track=1061 Segment=4 (1.37byte/trk) 20060219-1636.trk: Track=1690 Segment=1 (0.72byte/trk)
gba2trkは、ファイル分割フラグ(パラナビの電源を切ったりサスペンドしたときにセットされる) を検出してログを複数のファイルに分割して出力します。 また、セグメント分割フラグ(衛星ロスト、GPS通信タイムアウト、マニュアルセグメントにてセットされる) を検出して、ファイル内を複数のセグメントに分割します。 セグメント分割フラグを無視して、1つのセグメントに結合する場合は 第二引数に次のsegment_option値を16進表記の論理和で指定します。
・0: セグメント分割を行わない
・1: 衛星ロストしたポイントでセグメントを分割する
・2: GPS通信タイムアウトしたポイントでセグメント分割する
・4: マニュアルセグメントを実行したポイントでセグメント分割する
3. 生成されたファイルを カシミール3D 等で開くと、トラックを確認することができます。
■ ダウンロード
・トラックログ変換ツール 1.1版
・ソースコード
ツール、ソースコードとも、改変、再配布をして頂いて構いません。
ブートケーブルを使用している場合は、トラックログ変換ツールに含まれるTrackLog.batを使用すると、 ROMデータの吸い上げからトラックログの生成まで一括して行えます。 このバッチファイルを使用する場合は、 オプティマイズさんの サイトから、別途btcons_usb_v3541.exeを ダウンロードしてください。 TrackLog.bat, gba2trk.exe, btcons_usb_v3541.exeを同一フォルダにコピーしてTrackLog.batを 実行すると、トラックログが生成されます。
ログサイズ目安: ・パラ(サーマルコン): 1.4 byte/track_point ・パラ(穏やかコン): 1.1 byte/track_point ・自動車(街中): 1.2 byte/track_point ・自動車(高速道路): 1.1 byte/track_point ・自転車(川沿い): 1.0 byte/track_point ・徒歩(裏山): 1.3 byte/track_point
使用可能なFlashROMの空きブロックは、音声データを外すと750KB程度なので、 ログ記録を目的に使う場合には、60万トラックポイント(約一週間分)を保存できます。
KML変換ツール(gba2kml)
■ 使用方法
gba2kml.exeはカートリッジ内のFlashROMに保存されたトラックログを、 GoogleEarthやGoogleMaps等で読み込み可能なKML形式に変換するための ツールです。FlashROMのイメージファイルを引数にして実行すると、ファイル 内を走査して、検出したトラックデータをKML形式で出力します。
usage: gba2kml.exe filename [segment_option [omit]]
【使用手順】
1. FlashROMのデータをPC上へアップロードします。 (ROMのアップロード方法は、「gba2trk」と同じです。)
2. コマンドプロンプトから、1.で保存したファイル名を引数にgba2kml.exeを実行します。
実行例:
% gba2kml.exe track.gba 20060218-2357.kml: Track=8603 Segment=2 (1.19byte/trk) 20060219-1058.kml: Track=1966 Segment=1 (0.96byte/trk) 20060219-1418.kml: Track=1061 Segment=4 (1.37byte/trk) 20060219-1636.kml: Track=1690 Segment=1 (0.72byte/trk)
gba2kmlでは、gba2trkと同じsegment_option(ファイル分割フラグ)のほかに、 追加でomit(省略)パラメータを指定することができます。 デフォルトのomitは0(省略なし)ですが、omitを1にすると1つおきにトラックポイントを 出力し、omitを n にすると n トラックポイントおきに出力を行います。
GoogleMapsでは、トラックポイント数が多いと描画速度が顕著に低下しますが、 適度にトラックポイントを省略することでレスポンスを改善することができます。 (直線近似の誤差に応じて自動でトラックを引き直すのが良いかもしれません。 要望があればいつか…。)
3. 生成されたファイルを Google Earth 等で開くと、トラックを確認することができます。
■ ダウンロード
・KML変換ツール 1.1版
・ソースコード
ツール、ソースコードとも、改変、再配布をして頂いて構いません。
ブートケーブルを使用している場合は、KML変換ツールに含まれるKMLogUSB.batを使用すると、 ROMデータの吸い上げからKMLファイルの生成まで一括して行えます。 このバッチファイルを使用する場合は、 オプティマイズさんの サイトから、別途btcons_usb_v3541.exeを ダウンロードしてください。 KMLogUSB.bat, gba2kml.exe, btcons_usb_v3541.exeを同一フォルダにコピーしてKMLog.batを 実行すると、トラックログが生成されます。
トラックログ収集ツール(GetTrack)
■ 使用方法
GetTrack.exeは、シリアルケーブルを使用してGBAからPCへトラックログを吸い上げるためのツールです。 パラナビのメニューからトラックログのアップロードを行い、PC上でGetTrack.exeを実行すると、 トラックログデータ(圧縮形式)を収集して パソコンのファイルに出力します。なお、出力された圧縮形式のトラックデータはgba2trkや gba2kml を使用して他の形式に変換できます。
usage: GetTrack.exe port_name dest_file [baudrate]
【使用手順】
1. GBAとPCをPC接続ケーブルで接続します。
2. GBA上の[トラックログ]メニューから、[アップロード]を実行します。
3. COMポートを指定してGetTrack.exeを実行します。(2番と3番は逆の順番でも構いません)
4. GetTrack.exeはGBAと通信してトラックログを収集し、ファイルに出力します。
実行例:
% GetTrack.exe COM1: Log.bin 115200 GetTrack 1.0 GBA was connected. Baudrate 115200 Read 32768 bytes
■ ダウンロード
・トラックログ収集ツール 1.1版
・ソースコード
ツール、ソースコードとも、改変、再配布をして頂いて構いません。
トラックログ収集ツールに含まれているバッチファイルを使用すると、 ログデータの吸い上げから.trk/.kml形式のファイル生成まで一括して行えます。 なお、バッチファイルは"COM1:"ポートをデフォルトポートとして使用していますので、 お使いの環境に合わせてポートを変更してご使用ください。 ポート設定は、テキストエディタでバッチファイルを編集することで変更できます。
■ 備考
シリアルケーブルでのログ収集はスピードが遅く時間がかかるため、 有効なトラックログ領域のみを圧縮形式で転送 するようにしています。 ログが大きくなるとログ量に比例して転送時間がかかるため、 ログをアップロードした後は[トラックログ]メニューの[ログクリア]からログを削除しておくと 次回のログ転送時間が短縮されます。 またGetTrack.exeの第3引数のボーレートの指定で、通信エラーにならない範囲で、できるだけ高いボーレートを 指定すると転送時間が短縮されます。
128KB(約10万ポイント)のログ転送時間の目安は以下の通りです。
・115200bps: 11秒 ・ 57600bps: 22秒 ・ 38400bps: 33秒 ・ 9600bps: 133秒
トラックログ収集ツールは、通信中にデータロストやデータ化けが多少あっても、 パケットサイズを縮小しながら再転送を繰り返し試みます。 ただし、ケーブル品質やPC環境によってはリトライしても通信できない 場合がありますので、その場合はボーレートを下げて通信してください。
ツール変更履歴
■ トラックログ変換ツール
・1.1版: シリアルケーブルでのログ収集時に、最後の64KBのログを出力しない場合がある不具合を修正。
■ KML変換ツール
・1.1版: シリアルケーブルでのログ収集時に、最後の64KBのログを出力しない場合がある不具合を修正。
■ トラックログ収集ツール
・1.1版: ツール一式に含まれるトラックログ/KML変換ツールを1.1版に差し替え。