バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はCANoe上のシミュレーション設定で指令器ノードをdisableとCAPLテストモジュールの追加を行った。
残りはCAPLによるXCP関連の処理の追加となる。
登場人物
博識フクロウのフクさん

イラスト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
CANoeでXCP関連の処理を追加する際の方針

次はやっとCAPLでXCPの処理を書いてくところになるのかー。

そうなんだけど、
少し方針を確認しておこう。

んー?
テストノードにXCPセットアップ、ネットワークノードにDAQ/STIM
なんじゃないの?

それぞれの役割としてはそうなんだけど、
処理のタイミングとかを気にする必要がある。
例えば、XCPセットアップが終わってないのでSTIMを送信してもだめなんで、
DAQ/STIMを処理する部分はXCPセットアップが終わっていることを知っている必要がある。

言われてみるとテストノードとネットワークノードって別ノードだからどうやって状況を知らせるんだ?

一番シンプルなのはCANoeのシステム変数で通知
ってやつだね。
なんとなくの構成図

イメージとしてはグローバル変数で通知。
みたいな感じ?

その認識でおおよそOKだ。
一応、関係性を図示してみた。


Daq_startってのがCANoeシステム変数で
この変数がノード横断で読み書きできるから、これを利用して各ノードの処理の動機をとる。
って感じか。

正解だ。
CANoeシステム変数追加方法

CANoeへシムテム変数の追加方法を説明しておこう。

あ、僕もそれは気になってた。
CAPL上で書けばOKってわけじゃないんだよなー。
って思ってた。

その予想はいい感じだ。
CANoeシステム変数は専用の「システム変数設定」という項目があって、
そこで追加してあげる必要がある。

ざっと図示するとこんな感じだな。


なるほど。
こうやって追加しておくのか。

このシステム変数。
CAPLから呼び出す際は変数名の先頭に「@」(アットマーク)を付けて呼び出すことになる。
が、ここらへんは実際にCAPLを触る時に改めて説明した方が良いな。

そうしてもらった方が良いかもー。
(たぶん今言われても忘れそうだし)
まとめ

まとめだよ。
- CANoeでXCP関連の処理を追加する際の方針を確認。
- 複数のノードにXCP関連処理を記載するので連携が必要。
- ノード間連携はCANoeシステム変数を使うのが最も手っ取り早い。
- CANoeシステム変数の追加方法を確認。
- CAPLからシステム変数にアクセスする際は変数名の目に「@」をつける。
- CANoeシステム変数の追加方法を確認。
バックナンバーはこちら。
コメント