バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はMDFのDT内のレコードについて説明した。
1レコードとCGが紐づいており、
DG内に複数のCGがあると、異なる構成のレコードが混在することとなる。
今回はこのレコードの混在の仕方に着目した話となる。
登場人物
博識フクロウのフクさん
![指差しフクロウ](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![技術者太郎](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
unsorted MDFとsorted MDF
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
ちなみにDGの中に複数のCGを入れるMDFのことをunsorted MDFと呼び
1個だけのCGを入れてるだけのMDFをsorted MDFと呼んだりする。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
ほう?
そういう呼び方があるってことは、その違いによって扱いが変わるって事になるのかな?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
中々察しが良いね。
基本的にはsorted MDFはデータ構造がシンプルでこっちの構成の方を推奨されていることが多い。
対してunsorted MDFは異なるレコードが非同期に混在するのでDT内がごちゃごちゃした状態になってしまう。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
確かにそれは前回説明聞いたときにちょっと思った。
実際のツール達が生成MDFは?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
現状のMCツール、
特に代表格のVetor社CANpaeとかETAS社INCAは必ずsorted MDFにしているはずだ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
あ、業界レベルでそうするような流れになっているんだ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
ちなみに非ASAM仕様であるMDF Version3なんかはDGという概念がなかったんで
無条件にunsorted MDFの構造と取らざるを得なかったというのはあるね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
なるほど。
そういう意味でもMDF version4且つsorted MDFにした方が良いってことになるのか。
MDFの内部構造を確認できないか?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
MDFの基本的な構造はわかってきたけど、
これをバイナリエディタで追いかけると思うと大変そうだな―。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
そうね。
結構大変だと思う。
というわけで便利なツールがVector社から無償で公開されてる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
おー!
そうなのかー!
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
「MDF Validator」というツールになる。
メール登録とか必要かもしれないが、以下から入手可能だ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
ちなみにASAM MDF仕様をDLした来た時に何個かサンプルMDFも入手できるんで、
それをMDF Validatorで解析させた様子が以下になる。
![MDF Validator動作状況、Vector MDF Validator、Vecot_CANape.MF4、ID Block、Header Block Description Value、Meta Data Block File path、File History 1 (ci = 0) A Length of file 25904、Data Group 1 File name Vector CANape MF 4、Data Block File path、Channel Group 1 Create time 2018-09-06 - 13:10:26、Text Block Last access time 2022-01-08 - 16:33:13、Text Block Last write time 2015-06-11 - 02:07:30、Sorted MDF file true、PWMFiltered、Data Group 2、Channel Group 1、Text Block、no information available for root、Source Information](https://www.simulationroom999.com/blog/wp-content/uploads/2022/02/02_MDF-Validator動作状況-1024x800.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
あ、MDF内部のデータ構造を分かりやすく表示してくれるんだ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
まぁ我々が今回MDFの中を直接読み書きすることは無い予定だが、
何かしらで生成したMDFが結果としてどういう構造になっているかを確認するにはもってこいのツールだ
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- MDFのDGに含まれるCGの数によってunsorted MDFとsorted MDFに分けられる。
- unsorted MDFが複数CG、sorted MDFが単一のCG。
- Version3は無条件でunsorted MDF相当になる。
- Vector MDF ValidatorでMDFの内部構造を参照できる。
バックナンバーはこちら。
コメント