バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はMDF conversion仕様のtabularについて説明を実施。
一言で言うとテーブル変換ではあるが、
線形補間仕様の有無で挙動が大きく変わる点が注意。
今回も引き続き変換仕様の話でvalue to textについて
登場人物
博識フクロウのフクさん
イラスト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
MDF conversion仕様 value to text
そして次はvalue to text。
?
名前的には「値をテキストへ」?
そう。
正解。
正解。
って言われても、具体的な利用シーンが思う浮かばないなー。
value to textの利用シーン
利用シーンかー。
状態と紐づくようなものに使用されることが多いだろうね。
たとえばシフトとか。
シフトと言うと、
Neutral、1st、2nd、・・・。
みたいな感じ?
そうそう。
0だったら’Neutral’
1だったら’1st’
2だったら’2nd’
って文字列を表示させたい場合が代表的な利用シーン。
なるほど!
イメージは分かった!
AsamMdfでのvalue to textの設定方法
AsamMdfでvalue to textを設定するには以下の書き方をする。
conversion=dict()
conversion['val_0']=0
conversion['val_1']=1
conversion['val_2']=2
conversion['val_3']=3
conversion['val_4']=4
conversion['val_5']=5
conversion['text_0']='Neutral'
conversion['text_1']='1st'
conversion['text_2']='2nd'
conversion['text_3']='3rd'
conversion['text_4']='Top'
conversion['text_5']='OverTop'
該当する値がない場合のdefault case時の文字列を設定したい場合は以下も追加する。
ここでは空文字にしているが、好きな文字列を設定可能だ。
conversion['default'] = ''
なるほど。
これで数値と文字列の対応表を指定してる感じだね。
ふと思ったんだけど、
0だったら’Neutral’が表示されるんだろうけど、
例えば0.1だったらどうなるの?
そこはViewerの仕様次第な面もあるが、
0.1は0では無いのでdefault caseの空白になるという考え方が仕様としては正しそうだな。
ちなみにAsamMdf付属Viewerだとこんな感じの見え方になるで、
該当の数値のみの置き換えでそれ以外の途中の数値はdefault caseの空白になってる。
まじかー。
まぁECU内変数としては整数型になってるだろうから、計測結果が0.1になることはあり得ない状況の方が多い。
よって、太郎くんの懸念は起きないと思っても良いとは思うけどね。
あと、次々回くらいに説明することになると思うけど、
太郎くんが期待する動作はvalue range to textの仕様で実現可能だ。
あ、なんだ。
ちゃんとそれっぽい仕様もあるのか。
安心した。
まとめ
まとめだよ。
- MDF conversion仕様 value to textについて説明。
- 利用シーンとしては状態名の表示。
- シフトなどが代表的。
- 利用シーンとしては状態名の表示。
- AsamMdfでのvalue to textの設定方法について説明。
- 辞書型に対してval_、text_のテーブルを設定。
- 指定外の数値だとdefault caseになる。
バックナンバーはこちら。
コメント