バックナンバーはこちら。
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システム変数の追加方法を確認。
バックナンバーはこちら。
コメント