バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-network-backnumber/
はじめに
Vector社BLF仕様詳細の回。
登場人物
博識フクロウのフクさん
イラスト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
オブジェクトヘッダ
まずは、BLF内のすべてのオブジェクトが保有しているオブジェクトヘッダについて。
どんな構造になってるの?
表にするとこんなんだね。
察するに、mObjectTypeってのでオブジェクト種別が分かったり、
mObjectSizeってのでオブジェクトの大きさが分かる感じか。
そうだね。
恐らくだけど、mObjectSizeでオブジェクトの大きさが分かるんで、
自分の知らないオブジェクトにぶち当たった際はスキップするってことも可能だと思うよ。
おーなるほど。
今回欲しい情報はEthernetFrameだから、それ以外はスキップしてしまうってやり方もありかも。
CANオブジェクト
今回のターゲットはEthernetだけど、
CANも調べておこう。
先頭のmHeaderはさっきのオブジェクトヘッダの事だね。
どのオブジェクトも必ず先頭に配置されてる感じかな?
そうだね。
そこらへんは共通のルールとなっているようだ。
パラメータもDLCとか見覚えのあるものだからイメージ湧きやすいね。
Ehternetオブジェクト
そして、Ethernetのオブジェクトはこれ。
Ethernetの構成はあんまり知らないけど、
まぁそれっぽいパラメータが埋まってる感じ・・・かな?
ん?
mFrameDataって長さはどうなるの?
恐らく、mFrameLengthで決定されるんだと思うよ。
って、ことは可変長ってことになるの?
そうだね。
CANの場合は最大8byteなんで、最大長固定を想定したオブジェクトで良かったと思うのだけど、
EthernetFrameは最大が1500byteになるんで、可変にしないと
ファイルがどんどん大きくなっちゃうからね。
うーん、メンドクサイ仕様だけど、仕方がないと言えば仕方ないかー。
じゃー次回は実際にBLFの中を見て行こう。
まとめ
まとめだよ。
- BLFのオブジェクトヘッダの説明。
- CANオブジェクトの説明。
- Ethernetオブジェクトの説明。
バックナンバーはこちら。
コメント