バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回は、PyXCPの各種VersionのCAN-FD対応状況の確認。
いろいろあって、最新版ではなく0.16.5を使用することとした。
今回から再度CAN-FD関連の動作確認をPyXCP Version0.16.5にて実施する。
登場人物
博識フクロウのフクさん
イラスト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
動作確認内容
PyXCPのVersionを変えて再度動作確認するわけだけど、
内容的には以前と一緒だね。
そうだね。
UPLOAD、DOWNLOAD、DAQ、STIMを確認すればOKだ。
コンフィグレーション用JSON記述
コンフィグレーション用JSON記述も変更しておく必要がある。
と言っても、SERIALのパラメータを削除するだけなんだけど。
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,
"BITRATE": 500000,
"FD":true,
"DATA_BITRATE": 2000000,
"APP_NAME": "PyXCP-CANFD"
}"""
CONF_JSON = StringIO(JSON)
CONF_JSON.name = "conf_can_vector.json"
CONFIG = readConfiguration(CONF_JSON)
SERIALのパラメータの謎
そういえば、なんでSERIALのパラメータがあるとダメなの?
ここは私もハッキリとは分かっていないのだが。
SERIALパラメータは本来、複数のVector社デバイス、例えばVN1610とかを接続している場合、製品シリアルNoを元にどのデバイスに対して処理を行うか。
ってのを指定するものっぽい。
で、今回はVirtual CAN Busなんで製品シリアルNoなんてものは存在しない。
よって、とりあえず0を指定していた。
この指定を元に該当デバイスを見て、このデバイスがCAN-FDに対応しているか。
ってのは判断して、CAN-FD未対応デバイスに対して、CAN-FDフレーム送出を指示するとXLドライバライブラリ側でエラーとして処理する。
で、Virtual CAN BusはCAN-FDに対応しているはずなので、CAN-FDフレームを指示しても問題無いのだが、
ここら辺の内部エラーハンドリングが一部食い違っているのかもしれない。
かもしれないって・・・。
まぁ無償で使わせてもらってるものだし、
Vector社に問い合わせるのもアレでしね・・・。
確かに問い合わせ難いよねぇ。
こんな半分遊びでやってるものにわざわざ対応してもらうのも悪いよねぇ。
(遊び・・・。まぁいいけど。確かに遊びだもん)
というわけで、ここはこれ以上掘り下げるのは困難なので、
「そういうもんだ」ってことにしよう。
まとめ
まとめだよ。
- PyXCP Version0.16.5にてCAN-FDの動作確認再開。
- まずはコンフィグレーション用JSON記述を修正。
- SERIALパラメータを削除。
- SERIALパラメータはデバイスの製品シリアルを指定するもの。
- CAN-FD対応有無を判断しているようで、この判定でCAN-FD不可側になってるように見える。
バックナンバーはこちら。
コメント