バックナンバーはこちら。
https://www.simulationroom999.com/blog/diagnostic-communication-backnumber/
はじめに
ISO-TPのシミュレーションをしよう。のシリーズ。
Pythonパッケージcan-isotpによる疑似ECU。のパラメータを弄ってみる回。
登場人物
博識フクロウのフクさん
イラスト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
can-isotpのパラメータ
前回、無事can-isotpのよるリクエストレスポンスができたわけなのだけど
ここらでFCのパラメータを弄ってみる。
FCのパラメータというと、BSとかSTmin?
そうだね。
割と簡単にいじれそうだからちょっと実験してみよう。
パラメータ変更
前々回、前回で使用したスクリプトの中に以下のパラメ―タ用のディクショナリがある。
isotp_params = {
'stmin' : 0,
'blocksize' : 0,
'wftmax' : 0,
'll_data_length' : 8,
'tx_padding' : 0xCC,
'rx_flowcontrol_timeout' : 1000,
'rx_consecutive_frame_timeout' : 1000,
'squash_stmin_requirement' : False,
'can_fd' : False,
'tx_data_min_length' : 8
}
もしかして、これを弄ればOK?
Yes。
というわけで、リクエスト側、レスポンス側の両方のBSとSTminを弄ってみる。
パラメータ変更後の動作
パラメータとしてはこんな感じで行く。
・リクエスト側:BS=3、STmin=1
・レスポンス側:BS=2、STmin=2
ざっと修正してざっと動かしたときのログがこれ。
Begin Triggerblock
0.000000 Start of measurement
0.000000 1 18DA10F1x Rx d 8 10 1E 01 02 03 04 05 06
0.001909 1 18DAF110x Rx d 8 30 02 02 CC CC CC CC CC
0.005915 1 18DA10F1x Rx d 8 21 07 08 09 10 01 02 03
0.008880 1 18DA10F1x Rx d 8 22 04 05 06 07 08 09 10
0.010953 1 18DAF110x Rx d 8 30 02 02 CC CC CC CC CC
0.016843 1 18DA10F1x Rx d 8 23 01 02 03 04 05 06 07
0.020881 1 18DA10F1x Rx d 8 24 08 09 10 55 55 55 55
0.036889 1 18DAF110x Rx d 8 10 1E 01 02 03 04 05 06
0.039780 1 18DA10F1x Rx d 8 30 03 01 55 55 55 55 55
0.058802 1 18DAF110x Rx d 8 21 07 08 09 10 01 02 03
0.072778 1 18DAF110x Rx d 8 22 04 05 06 07 08 09 10
0.078709 1 18DAF110x Rx d 8 23 01 02 03 04 05 06 07
0.079643 1 18DA10F1x Rx d 8 30 03 01 55 55 55 55 55
0.106660 1 18DAF110x Rx d 8 24 08 09 10 CC CC CC CC
End TriggerBlock
おー、ちゃんとFC待ちしてBS単位で受け付けているみたいだねー。
STminもちゃんと機能してるね。
というわけでcan-isotpの完成度はかなり高いと言える。
正直、車両診断通信をちょっとかじった人が実装されたものよりかは遥かに信頼できる。
なに?
過去に何かあったの???
いやー、診断通信って振る舞いだけで見ると
あまりレイヤとか意識しなくても、それっぽくは実装できちゃうんだよねー。
だけど、レイヤ無視の実装ってやっぱりどっかで破綻することが多くて、
破綻した車両診断通信を解析/修正することが多かったんだよね・・・。
コードがキレイとか以前に構造が破綻してるんで、そもそも修正と言えるのかってレベル。
なんか恐ろしい目にあったってことは分かった。
レイヤは意識することにするよ。
まとめ
まとめだよ。
- can-isotpのFCパラメータ変更実験をした。
- can-isotpの完成度は高い。
- 少なくとも、そこらの構造が破綻したヤッツケ車両診断通信よりかは遥かに良い。
バックナンバーはこちら。
コメント