【CanTp】車両診断通信 その19【シミュレーション⑥】

【CanTp】車両診断通信 その19【シミュレーション⑥】 車両診断通信

バックナンバーはこちら。
https://www.simulationroom999.com/blog/diagnostic-communication-backnumber/

はじめに

ISO-TPのシミュレーションをしよう。のシリーズ。
pyton-canのcan.playerによるCANログ再生&can.loggerによる収録。

登場人物

博識フクロウのフクさん

イラスト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.playerでログ再生して、BusMasterでそれを収録したわけなんだけど。

太郎くん
太郎くん

確かそうだったね。

フクさん
フクさん

今回はこんな構成にする。

太郎くん
太郎くん

ん?
can.logger
これもpython-canのモジュールの一種?

フクさん
フクさん

Yes。

太郎くん
太郎くん

察すると、BusMasterみたいに収録してくれるものなのかな?

フクさん
フクさん

それもYes。
なかなか鋭くなったね。

太郎くん
太郎くん

まぁ前回はpthon-canの送信の確認は取れたことにはなったと思うけど、
受信の確認は取れてないよね?
だから今回はそれの確認かなって思って。

フクさん
フクさん

おー。成長しておる。

can.playerで再生

フクさん
フクさん

流れとしては以下になるね。
①Anaconda Promptを2つ起動(1つ目をPrompt1、2つ目をPrompt2とする。)
②Prompt1でcan.logger起動
③Prompt2でcan.player起動
これで、can.playerが再生したCANフレームをcan.loggerが収録する。

太郎くん
太郎くん

なるほど。
先にcan.loggerを起動しておかないとダメってことだね。

フクさん
フクさん

再生するのは前回作ったascファイル。

Begin Triggerblock 
 0.000000 Start of measurement
 0.000000 1  111       Rx   d 3 01 02 03
 0.001000 1  222       Rx   d 4 0A 0B 0C 0D
 0.002000 1  333       Rx   d 8 11 22 33 44 55 66 77 88
 0.010000 1  111       Rx   d 3 01 02 03
 0.011000 1  222       Rx   d 4 0A 0B 0C 0D
 0.012000 1  333       Rx   d 8 11 22 33 44 55 66 77 88
 0.020000 1  111       Rx   d 3 01 02 03
 0.021000 1  222       Rx   d 4 0A 0B 0C 0D
 0.022000 1  333       Rx   d 8 11 22 33 44 55 66 77 88
 0.030000 1  111       Rx   d 3 01 02 03
 0.031000 1  222       Rx   d 4 0A 0B 0C 0D
 0.032000 1  333       Rx   d 8 11 22 33 44 55 66 77 88
 0.040000 1  111       Rx   d 3 01 02 03
 0.041000 1  222       Rx   d 4 0A 0B 0C 0D
 0.042000 1  333       Rx   d 8 11 22 33 44 55 66 77 88
End TriggerBlock
フクさん
フクさん

can.playerとcan.loggerの起動は以下のコマンドになる。

> python -m can.player -i vector -c 0 canlog.asc
> python -m can.logger -i vector -c 0 -f canlog2.asc

-m:動作モジュール指定
-i:インターフェース指定
-c:チャンネル指定
-f:収録ファイル指定

太郎くん
太郎くん

よし!動かした!

フクさん
フクさん

じゃ、can.loggerで収録したascを確認してみよう。

can.loggerで受けてみる

Begin Triggerblock 
 0.000000 Start of measurement
 0.000000 1  111             Rx   d 3 01 02 03
 0.002097 1  222             Rx   d 4 0A 0B 0C 0D
 0.003940 1  333             Rx   d 8 11 22 33 44 55 66 77 88
 0.009920 1  111             Rx   d 3 01 02 03
 0.011952 1  222             Rx   d 4 0A 0B 0C 0D
 0.013984 1  333             Rx   d 8 11 22 33 44 55 66 77 88
 0.018071 1  111             Rx   d 3 01 02 03
 0.020078 1  222             Rx   d 4 0A 0B 0C 0D
 0.021930 1  333             Rx   d 8 11 22 33 44 55 66 77 88
 0.029016 1  111             Rx   d 3 01 02 03
 0.031089 1  222             Rx   d 4 0A 0B 0C 0D
 0.033030 1  333             Rx   d 8 11 22 33 44 55 66 77 88
 0.038912 1  111             Rx   d 3 01 02 03
 0.041058 1  222             Rx   d 4 0A 0B 0C 0D
 0.041927 1  333             Rx   d 8 11 22 33 44 55 66 77 88
End TriggerBlock
太郎くん
太郎くん

おー、ちゃんと取れてるね!

太郎くん
太郎くん

んー、やっぱり精度はBusMasterで確認したときと一緒か。
でも、can.loggerはascファイルフォーマットなんだ。

フクさん
フクさん

実際はファイル指定した時の拡張子でフォーマットが決定するね。
以下が選べるようだよ。

  • asc
  • blf
  • csv
太郎くん
太郎くん

blfってなんだっけ?
これも見たことあるような?

フクさん
フクさん

これもVectorのCANログフォーマットの一つ。
ascがテキスト形式に対して、blfはバイナリ形式になる。
よって、テキストエディタで開いても何が書いてるかは分からない。

太郎くん
太郎くん

だったら、ascの方が良くない?

フクさん
フクさん

blfの方がファイルサイズが小さくなるのと、
収録負荷が下がるという利点はあるかな。
ただ、中身を見るにはCANoeかCANalyzerが必要になるけど。

太郎くん
太郎くん

CANoeかCANalyzerがあるんだったら、そっち使うんじゃない?

フクさん
フクさん

まぁそうだろうねぇ。
あり得る状況としては、
can.loogerをPythonベースの自動計測システムに組み込んで収録。
収録データは後でまとめてCANoeで確認。
とか。

太郎くん
太郎くん

まぁある得るかどうかだとあり得るのかなぁ。

フクさん
フクさん

まぁそういう機能があって、そういう選択肢があるってことだけ覚えておけば良いと思うよ。

太郎くん
太郎くん

そーだね。選択肢として知っとくってのも良いね。

まとめ

フクさん
フクさん

まとめだよ。

  • can.playerで再生してcan.loggerで収録した。
  • can.loggerの収録ファイルフォーマットは3種類。
    • asc、blf、csv。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました