バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/
はじめに
ASAP2 Studioを使った読み書き可能変数定義をやる。
登場人物
博識フクロウのフクさん
イラスト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
ASAP2 Studio
今回はASAP2 Studioを使って変数定義をしていくよ。
ASAP2 Studioって大雑把言うとどんなもの?
A2Lファイル編集アプリ―ションだね。
前回、XCPのプロトコル設定だけが定義されたA2Lが出来ているんだけど、
ここに読み書きする変数を定義する。
具体的な必須パラメータは以下。
- 変数名
- アドレス
- 書き込み許可
- データ型
- バイト順
うーん、割とメンドーな感じだね。
本来であれば、mapファイルから自動抽出するんだけど、
今回はガチで設定する。
なので、普通は気にしなくて良い。
そうだねぇ。
今回のプロトタイプECUはソースコードからビルドしたりは無くて、
指定したアドレスへの読み書きの指示しかないから、
この方法しかないのかぁ。
まずはASAP2 Studioを開いてみよう。
CANapeの左にあるシンボルエクスプローラ内のshift.a2lってのを右クリックで
「データベースを開く」を選択。
お、なんか起動した。
変数定義
さっそく変数定義をしていこう。
ナビゲーションの変数を右クリックして
変数の生成→測定
を選ぶ。
「NewMeasurement」ってのが追加されたね。
このまま以下を編集してしまう。
- 変数名
- アドレス
- 書き込み許可
- データ型
- バイト順
inputって変数が符号なし1byteのアドレスが0x20000000みたいだよ。
入力してみるね。
よし、他の変数もあると思うが、
一旦このままASAP2 Studioを終了してA2Lに保存してしまおう。
ASAP2 Studio終了時に保存するか聞いてくるから
ちゃんと保存してね。
はいよ。
A2L内の変数定義
ここで、先ほどのinputって変数が
A2L内でどのように記載されているか確認してみる。
Bypassするのに必要?
うんにゃ。いらない。
ただ、最小構成のA2Lなんてめったに見られないんで、
後学のために見ておこう。って感じ
なるほど。
じゃあ確認してみよう。
A2Lをテキストエディタで開いたら、
「MEASUREMENT」で検索
以下の表記が見つかったけど、
これがA2Lに於いての変数定義?
/begin MEASUREMENT input ""
UBYTE NO_COMPU_METHOD 0 0 0 255
ECU_ADDRESS 0x20000000
READ_WRITE
/end MEASUREMENT
そうそう。これこれ。
それぞれの意味は?
UBYTE、ECU_ADDRESS、READ_WRITE
は名前通りだとは思うけど、
NO_COMPU_METHODとその後ろの数字はなに?
ちょっと書き方を変えてコメントを付けるよ。
ちなみにA2Lは空白文字でセパレートされるんだけど、
この空白文字は改行コードも含まれるんで、
UBYTEとNO_COMPU_METHODの間の半角スペースを改行コードにしても文法的には問題無い。
/begin MEASUREMENT
input /* ident Name */
"" /* LongIdentifier */
UBYTE /* Datatype */
NO_COMPU_METHOD /* Conversion:NO_COMPU_METHOD=変換無し */
0 /* Resolution(現在では無視されるパラメータ) */
0 /* Accuracy(現在では無視されるパラメータ) */
0 /* LowerLimit */
255 /* UpperLimit */
ECU_ADDRESS 0x20000000
READ_WRITE
/end MEASUREMENT
????
ResolutionとAccuracyは使われないパラメータなの??
現在はそうなってるね。
元々は変数の精度や誤差を定義するパラメータだったようだけど、
それを指定されても困るってことで、
MCツールとしては特にこのパラメータを見て何かをするってことは無いみたい。
なるほど。
これもそれなりに歴史のある標準仕様であるが故の話かぁ。
じゃ、こんな感じで次回までに他の変数埋めてきてね。
了解!
まとめ
まとめだよ。
- ASAP2 Studioで読み書き用の変数定義ができる。
- 本来はmapファイルから設定する。
- A2Lの中には使用されていないパラメータも存在する。
- ResolutionとAccuracy。
バックナンバーはこちら
コメント