• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

ぱららのブログ一覧

2009年12月30日 イイね!

[連載]Androidでパフォ箱データ解析 その6:Logデータのフォーマット解析

ゲ~ロゲロ、もう今年も終わりかと物思いにふけるぱららです。

さて、いよいよLogデータを解析するのであります!
まぁこれが出来ないと話にならんのであります。

使ったツールは
 Binary Editor BZ
であります。
このバイナリエディタは、構造をファイルに定義しておくと、その構造にあわせた表示をしてくれるし、繰り返し表示するときも簡単に次のレコードに移動してくれるので重宝するんですヨ。

パフォーマンスボックスのログデータはDBOX_XXX.DBNというファイル名で記録されるのであります。
XXXは001から順番に番号がカウントされていく感じ~。

まずは秀丸でファイルを開いてみると、テキストとバイナリが混在してました。
PerformaceToolでVBOフォーマットで保存すると、テキストデータで保存されマッスル!
が、現地でPCを使わずにデータを見るのが目的なので、このバイナリデータが見れないと
目的が達成できません!
まぁでも親切に構造が書いてあったのでw簡単に分析完了しましたよヽ(´ー`)ノ
---------------------------------
File created on 2008/12/23 at 14:37:02

[HEADER]
SATS(1)
TIME(3)
LATITUDE(4)
LONGITUDE(4)
VELOCITY(2)
HEADING(2)
HEIGHT(4)
YAW__(2)
YAW_(2)
YAW(2)
SLIP(2)
CHKSUM(2)

[COMMENTS]
Firmware Version 01.00 Build 0048
Serial Number -------

[DATA]
$・ 愠・
,6・m ・ 裕
$・ 惲テ2
j6」j ・ 4ワ
$・ 愑・
ゥ6クg ・ #
$・ 愷^2
・スZ ・ チミ
$・ 愰)2
$6・T ・ 塚
$・ 愰・
b6タY ・ D
---------------------------------

●解析結果
1つのデータレコード長は33Byte。バイトの並びはビックエンディアン。
ヘッダは”$”の文字(0x24)から始まる。
以後はHeaderに書いてある順番とカッコ内のバイト数で構成されている。
SATS(1):捕捉した衛星の数。筑波だと5~10くらいの衛星数が入っていますね。
TIME(3):グリニッジ標準時で、1970年1月1日0時0分0秒からの経過時間が10msec単位で記録されている。
 ただし、3バイトしかないので、下3バイトのみとなる。GPSの計測周期が10Hzなので100msec毎に
 カウントアップされる。ロガーとしては相対時間がわかればいいので、これでいいが、プログラムで
 計算するときはちょうど桁上がりが発生したときの処理を忘れないようにしないとネ。
LATITUDE(4):緯度(北緯)。百分率表記で単位は分であわせている模様。変換してGoogleMAPで表示させた ら、筑波サーキットのコントロールラインと思われるところが表示されたので問題ないだろう。
 今回はGoogleMapなとどの連携もないし、相対位置がわかればいいだけなので、さらに無問題。
LONGITUDE(4):経度(東経だがマイナスなし)
VELOCITY(2):速度。単位はkm/h。100倍された値が記録されているので、表示するときは100で割る。
HEADING(2):進行方向を360度を100倍だったかかな。。。示している。今回は使わない。
HEIGHT(4):高度。何倍かして記録されている。メモがどっかいったので何倍かわからん。もち使わない。
YAW__(2):記録されてない。常に0.DriftBox用と思われ。
YAW_(2):同上
YAW(2):同上
SLIP(2):同上
CHKSUM(2):なんのチェックサム方式かは不明。使わない。

●Javaで実装上の注意
簡単なファイル読み込みプログラムを作ってバイナリデータを読み込んでみた。
C++と違ってJavaにはunsignedの整数型がないので注意。
また、Byteデータをビットシフトしてint型などに入れるときも注意。Javaでは必ずint方に
キャストして(符号拡張して)から代入される。
例えば
 short int a に Byte b[2]を入れるとき
 a = b[0]<<8 + b[1];
だと、バグりました(´・ω・`)
正しくは
 a = (b[0]&0xff)<<8 + b[1]&0xff;
のように0xffのANDをとる必要がありました。
JavaのByte型はCのchar型と同じでsignedです。
つまり
b[1]が0xff(-1)はintに符号拡張されて0xffffffffとなり、255を足したいのに-1引くことになるです。
b[1]が0xff(-1)はintに符号拡張されて0xffffffffとなり、0xffとANDをとると、下位8ビットのみ有効と
なって0x000000ffを足すので正しく255を加算できます。
ちゃんとJavaの言語仕様読まないとはまりそうだけど、今回は遊びだからね(汗
このまま進めマッスルw

明日は、Start/Finish/Splitラインのデータファイル(DBOX.DSF)の解析を行うのであります。
Posted at 2009/12/31 00:03:37 | コメント(2) | トラックバック(0) | パフォ箱ツール | 日記

プロフィール

「みんカラ:【MICHELIN X-ICE SNOW/X-ICE SNOW SUV 5名様】 http://cvw.jp/b/123549/44416817/
何シテル?   09/23 17:25
「ぱらら」です。 最近、RX-8でサーキット走行がマイブームです。 さて、いつまで続くやら。。。
みんカラ新規会員登録

ユーザー内検索

<< 2009/12 >>

  123 4 5
678910 1112
13 1415 16 171819
20212223 24 25 26
27 28 29 30 31  

リンク・クリップ

225CUP2017の予定とレギュレーションを決めたぜ! 
カテゴリ:その他(カテゴリ未設定)
2017/08/05 21:39:35
[いも日記]元気な芽がでてきてほしいな 
カテゴリ:その他(カテゴリ未設定)
2016/03/21 20:45:40
3連休中日なのにー!! 
カテゴリ:その他(カテゴリ未設定)
2014/03/22 23:31:54

愛車一覧

マツダ RX-8 マツダ RX-8
パワーアップのためにTypeSに箱替え ・RX-8 TypeS 6MT ・Revolu ...
日産 キューブキュービック 日産 キューブキュービック
主に家内が使ってます。 家族で出かけるときや、ちょっと近所に買い物行くときに運転してます ...
日産 パルサー 日産 パルサー
大学生時代、免許を取ったら車が欲しくなって・・・ 結局親の車という名目の元買ってもらった ...
日産 シルビア 日産 シルビア
大ヒットしたS13のマイナーチェンジモデル SR20DET搭載のK"s 5MT パープリ ...
ヘルプ利用規約サイトマップ
© LY Corporation