【上流検証】最小構成のモデルベース開発事例 その47【Bypass⑬】

【上流検証】最小構成のモデルベース開発事例 その47【Bypass⑬】 事例

バックナンバーはこちら
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ってのを右クリックで
「データベースを開く」を選択。

CANape、シンボルエクスプローラ―、データベースを開く
太郎くん
太郎くん

お、なんか起動した。

ASAP2 Studio、CANape

変数定義

フクさん
フクさん

さっそく変数定義をしていこう。
ナビゲーションの変数を右クリックして
変数の生成→測定
を選ぶ。

CANape、ASAP2 Studio、ナビゲーション、変数、測定、変数の生成
太郎くん
太郎くん

「NewMeasurement」ってのが追加されたね。

CANape、ASAP2 Studio、変数、NewMeasurement
フクさん
フクさん

このまま以下を編集してしまう。

  • 変数名
  • アドレス
  • 書き込み許可
  • データ型
  • バイト順
太郎くん
太郎くん

inputって変数が符号なし1byteのアドレスが0x20000000みたいだよ。
入力してみるね。

CANape、ASAP2 Studio、変数、input
フクさん
フクさん

よし、他の変数もあると思うが、
一旦このまま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。

バックナンバーはこちら

コメント

タイトルとURLをコピーしました