バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回は指令器のCAN-FD対応について。
バス初期化とメッセージ構築部分だけを修正。
bitrate_switchのパラメータを有効にしないとDataRateに切り替わらないのが注意点となる。
今回から仮想HILS側の修正に入る。
まずはXCPプロトコルを隠蔽しているxcp_canクラスをCAN-FD対応する。
登場人物
博識フクロウのフクさん

イラスト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_canクラスのCAN-FDに関係する部分

そろそろ仮想HILS側の修正に入るのかな?

そうだね。
まずはXCPプロトコルの部分をCAN-FD対応するところになる。

つまりPyXCPの呼び出し部分を修正ってことになるのだろうけど、
PyXCPのCAN-FD対応ってのは良く分からないな。
Pyhton-canのCAN-FD対応だったら分かるけど・・・。

確かにそこは悩みどころだね。
Pyhton-canがCAN-FD対応していることは間違いないし、
修正方法もわかるんだけど、
PyXCPとしてどのように修正するかはPyXCPの仕様次第ってことになる。

まぁだいたい当たりはついてるんでしょ?
どこになるの?

コンフィグレーション用のJSON記述のところだけでたぶんOK。
PyXCPのCAN-FD対応方法

え?
それだけ?

たぶんそれだけ。

多分ってところが引っかかるなぁ・・・。

具体的なマニュアルがあるわけじゃないので、
ソースコードから追った結果に過ぎないんで私も確証が持てるレベルでは無いんだよね。
でも、まぁたぶん大丈夫だと思う。

そこは実際に試してみるしかないね。
JSON記述の変更

で、JSON記述をどう修正するの?

元々はこういう記述だった。
JSON = """{
"TRANSPORT": "CAN",
"CAN_DRIVER": "Vector",
"CAN_USE_DEFAULT_LISTENER": true,
"CHANNEL": "0",
"CAN_ID_MASTER": 2,
"CAN_ID_SLAVE": 1,
"CAN_ID_BROADCAST": 256,
"MAX_DLC_REQUIRED": false,
"CREATE_DAQ_TIMESTAMPS": true,
"SERIAL": 0,
"BITRATE": 500000,
"APP_NAME": "PyXCP-CAN"
}"""

上記がこれになる。
JSON = """{
"TRANSPORT": "CAN",
"CAN_DRIVER": "Vector",
"CAN_USE_DEFAULT_LISTENER": true,
"CHANNEL": "0",
"CAN_ID_MASTER": 2,
"CAN_ID_SLAVE": 1,
"CAN_ID_BROADCAST": 256,
"MAX_DLC_REQUIRED": false,
"CREATE_DAQ_TIMESTAMPS": true,
"SERIAL": 0,
"BITRATE": 500000,
"FD":true,
"DATA_BITRATE": 2000000,
"APP_NAME": "PyXCP-CANFD"
}"""

“FD”:true,
“DATA_BITRATE”: 2000000,
ってのが増えてるのか。

イキナリxcp_canクラスを修正するのもアリだが、
一旦JupyterNoteBookで動作確認した方が良いかもねー。

あ、それは僕もそう思った!
大丈夫か分からないまま修正ってのも精神衛生上キツいもんね。

というわけで、
次回はJupyterNoteBookでJSON記述を変えるだけで動作するか、
さっと確認してしまおう。
まとめ

まとめだよ。
- xcp_canクラスのCAN-FDに関係する部分を確認。
- 要はPyXCPをCAN-FD対応にする部分。
- コンフィグレーションのJSON記述を修正すればOKっぽい。
- ソースコードからのリバースエンジニアリングによる調査結果。
- 要はPyXCPをCAN-FD対応にする部分。
- 本当合ってるか不安なのでJupyterNoteBookで動作確認を先に実施予定。
バックナンバーはこちら。
コメント