バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/
はじめに
CANapeのXCP関連の設定が終わった段階のA2Lを見てみる。
登場人物
博識フクロウのフクさん
イラスト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
XCPの設定だけをもったA2Lファイル
ちょっとここで、CANapeが出力したA2Lを見てみよう。
あれ?
A2Lって変数情報のデータベースファイルじゃないの?
XCPは関係無くような?
A2Lは計測をするために必要な情報を内包していて、
XCP関連の情報もそこに含まれる。
ほぅ。
とりあえず、現状のA2LのXCPに関係したところを抜き出してみた。
ちなみに/* ~ */の部分はコメントで私が追記しておいた。
/begin IF_DATA XCP
/begin PROTOCOL_LAYER
0x0101 /* XCP version=1.1 */
0x07D0 /* T1 = 1000[ms](CMDに対してのRESタイムアウト値) */
0x2710 /* T2 = 10000[ms]エラー時のタイムアウト */
0x00
0x00
0x00
0x00
0x00
0xFF /* MAX_CTO */
0x05C2 /* MAX_DTO */
BYTE_ORDER_MSB_FIRST /* ByteOrderはMotorola形式 */
ADDRESS_GRANULARITY_BYTE /* アドレス単位は1byte */
/end PROTOCOL_LAYER
/begin DAQ
DYNAMIC /* DynamicDAQ */
0x00 /* MAX_DAQ */
0x01 /* MAX_EVENT_CHANNEL */
0x00 /* MIN_DAQ */
OPTIMISATION_TYPE_DEFAULT /* 最適化の型=デフォルト */
ADDRESS_EXTENSION_FREE /* アドレス拡張=未使用 */
IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD_ALIGNED /* 識別子フィールドタイプ=Relative_Word_Aigned */
GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE /* ODTエントリのサイズ単位=BYTE */
0xFF /* 最大ODTエントリ数 */
NO_OVERLOAD_INDICATION /* オーバーロード通知=なし */
PRESCALER_SUPPORTED /* プリスケーラサポート=あり */
/begin TIMESTAMP_SUPPORTED
0x01 /* タイムスタンプ精度=1 */
SIZE_DWORD /* タイムスタンプフィールドサイズ=DWORD */
UNIT_1US /* 単位=us */
TIMESTAMP_FIXED
/end TIMESTAMP_SUPPORTED
/begin EVENT
"T1M" /* イベント名称 */
"T1M" /* イベント名称(short name) */
0x00 /* EVENT_CHANNEL_NUMBER */
DAQ /* DAQのみ使用可能 */
0xFF /* MAX_DAQ_LIST */
0x01 /* EVENT_CHANNEL_TIME_CYCLE */
0x06 /* EVENT_CHANNEL_TIME_UNIT */
0x00 /* EVENT_CHANNEL_PRIORITY */
/end EVENT
/end DAQ
/begin PAG
0x00
/end PAG
/begin PGM
PGM_MODE_ABSOLUTE
0x00
0x00
/end PGM
/begin XCP_ON_UDP_IP
0x0101 /* XCP on UDP_IP version=1.1 */
0x1388 /* PORT=5000 */
ADDRESS "192.168.40.20" /* IP Address */
/end XCP_ON_UDP_IP
/end IF_DATA
なるほど。
CANapeで設定したものがテキスト形式で出力されているんだね。
つまり、CANapeのデータベースファイル選択でこれを選択すれば、
前回までにやってたXCP関連の設定はスキップできる。
な!
それで、A2Lが無いかしきりに聞いていたのか!!
そうそう。
A2Lがあれば、それをCANapeに読み込ませて終了だったんだよ。
うーん、本当にA2Lなかったのかなぁ。
まぁ実際はあったけど、
機密に相当する部分があるから出せないとかはあったのかもね。
A2Lがあれば・・・
他のMCツールでも?
ちなみに、このルールは他のMCツールも一緒だ。
あ、そうか。
A2L自体はASAMの標準仕様だから、MCツールであれば同じってことになるのか。
ん?
ということは・・・。
ETAS社製のINCAでも使えるってこと?
Yes。
それって、すごくない?
まぁそのための標準仕様だしね。
ただ、
各ベンダー毎の特殊な記述も組み込まれていることも多いんで、
無条件にできるかっていうとそうでもないが、
XCPに限定すれば大丈夫かな。
前回言ってた、変数定義とかもINCAで読める?
たぶん読める。
たぶんって・・・。
標準仕様に則ってるといっても標準仕様自体で定義しきれていない部分もあるんで、
改行コードの解釈とか、想定する文字コードが違うとかで読めないパターンはあるんだよね。
なので、CANape、INCA間のA2L移行は、
そのまま出来たら超ラッキー。
「文字コード変換だけ」または「改行コード変換だけ」で済めばまぁまぁラッキー。
程度に考え置いた方が無難かな。
それで、ツールを選ぶときは実績とかを重視した方が良いって言っていたのか。
途中で変えたりすると、移行コストがまぁまぁかかってしまいそうだもんね。
そういうこと。
まとめ
まとめだよ。
- XCP設定だけをもったA2Lを参照。
- このA2Lがあれば、XCP設定はスキップできる。
- このA2Lがあれば、CANapeからINCAへ移行も一応できる。
- 100%問題無いとは言い切れないが。
バックナンバーはこちら
コメント