バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はMDFのDT内のレコードについて説明した。
1レコードとCGが紐づいており、
DG内に複数のCGがあると、異なる構成のレコードが混在することとなる。
今回はこのレコードの混在の仕方に着目した話となる。
登場人物
博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
unsorted MDFとsorted MDF

ちなみにDGの中に複数のCGを入れるMDFのことをunsorted MDFと呼び
1個だけのCGを入れてるだけのMDFをsorted MDFと呼んだりする。

ほう?
そういう呼び方があるってことは、その違いによって扱いが変わるって事になるのかな?

中々察しが良いね。
基本的にはsorted MDFはデータ構造がシンプルでこっちの構成の方を推奨されていることが多い。
対してunsorted MDFは異なるレコードが非同期に混在するのでDT内がごちゃごちゃした状態になってしまう。

確かにそれは前回説明聞いたときにちょっと思った。
実際のツール達が生成MDFは?

現状のMCツール、
特に代表格のVetor社CANpaeとかETAS社INCAは必ずsorted MDFにしているはずだ。

あ、業界レベルでそうするような流れになっているんだ。

ちなみに非ASAM仕様であるMDF Version3なんかはDGという概念がなかったんで
無条件にunsorted MDFの構造と取らざるを得なかったというのはあるね。

なるほど。
そういう意味でもMDF version4且つsorted MDFにした方が良いってことになるのか。
MDFの内部構造を確認できないか?

MDFの基本的な構造はわかってきたけど、
これをバイナリエディタで追いかけると思うと大変そうだな―。

そうね。
結構大変だと思う。
というわけで便利なツールがVector社から無償で公開されてる。

おー!
そうなのかー!

「MDF Validator」というツールになる。
メール登録とか必要かもしれないが、以下から入手可能だ。

ちなみにASAM MDF仕様をDLした来た時に何個かサンプルMDFも入手できるんで、
それをMDF Validatorで解析させた様子が以下になる。


あ、MDF内部のデータ構造を分かりやすく表示してくれるんだ。

まぁ我々が今回MDFの中を直接読み書きすることは無い予定だが、
何かしらで生成したMDFが結果としてどういう構造になっているかを確認するにはもってこいのツールだ
まとめ

まとめだよ。
- MDFのDGに含まれるCGの数によってunsorted MDFとsorted MDFに分けられる。
- unsorted MDFが複数CG、sorted MDFが単一のCG。
- Version3は無条件でunsorted MDF相当になる。
- Vector MDF ValidatorでMDFの内部構造を参照できる。
バックナンバーはこちら。
コメント