バックナンバーはこちら
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。
バックナンバーはこちら
コメント