この記事の内容
- (この記事で紹介)VSCodeのHexEditorを利用したバイナリデータの概要把握
- (次の記事で紹介)MATLABでバイナリデータからtable形式への変換
なぜ取り組んだのか?
車両運動のデータロガーとしてRaceLogic社のDriftBoxを愛用中。
取得したデータは.DBNという拡張子で保存され、通常ならば専用の解析ツールを使ってデータを確認することができるのだが、残念なことに解析ツールは私が使っているMacbookAir(M1)には非対応。せっかく取得したデータが見れないのは悲しい。
少し調べてみると公式サイトには.DBNはバイナリ形式であるとの記載を発見。バイナリ形式は今まで扱ったことがなかったが、「MATLABならできるはず。。」そんな思いで取り組んでみた。
バイナリデータを扱う専門の方ならもっといい方法でやってるのかもしれないが、そういった記事が見当たらなかったので誰かの参考になればと思って投稿しておく。
バイナリデータの構造把握
最初はMATLABで全て完結させようと取り組んだが、結局いい方法が見つけられなかった。
さまざまな拡張機能が充実している「VSCodeならできるはず。。」と思って調べてみると、Hex Editorというものを発見。
検索したら出てきた下記記事を参考にさせていただき、早速VScodeに拡張機能をインストールし実行。
バイナリファイルの編集?それ、VS Codeで出来るよ。 | 底辺プログラマーの戯言(新しいタブで開く)
設定をいじりながらデータを確認している画面がこちら。
バイナリ形式のファイルが16進数表記に表され、テキストにも変換されている。
最初はこれも見ても正直よくわからなかったが、この画面をしばらく眺めてデータの概要として想像したのは下記4点。
- データの453バイト目まではヘッダーであること。
- ヘッダーの文字コードはUTF-8であること。
- 各ヘッダーの()内の数字は、おそらく取得データのバイト数を示していること。
- 取得データの文字コードはUTF−8ではないこと。
これでデータの概要はある程度掴むことができた。
次回は想像したデータの概要があっているかを確認しつつ、MATLABを使ってtable形式に変換し、データを分析しやすい形にしていく。
DriftBoxのバイナリデータを読み解いた#2