バックナンバーはこちら。
https://www.simulationroom999.com/blog/diagnostic-communication-backnumber/
はじめに
python-canでCAN-FDのシミュレーション。
今回こそcan.playerで再生、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でCAN-FD再生方法
よし、勝手に拡張したんで、
使用方法をおさらいついでに説明する。
うん。CAN-FD用に勝手に拡張したもんね。
can.player(CAN-FDモード)の使用法は以下。
> python -m can.player -i vector -c 0 --fd canfd.asc
-m:動作モジュール指定
-i:インターフェース指定
-c:チャンネル指定
–fd:CAN-FD対応オプション(今回追加)
オプション無しで再生ファイル指定
4つ目の”–fd”オプションが勝手に追加したヤツね。
can.loggerでCAN-FD収録方法
そしてcan.loggerの方。
> python -m can.logger -i vector -c 0 --fd -f canfdlog.asc
-m:動作モジュール指定
-i:インターフェース指定
-c:チャンネル指定
–fd:CAN-FD対応オプション(今回追加)
-f:収録ファイル指定
※ 拡張子によってフォーマットが変化
asc、blf、csv等
こっちも4つ目の”–fd”オプションが勝手に追加したヤツだね。
というわけで、使い方についてはほとんど変わらないってことになるね。
再生&収録結果
そして、動作結果
こっちが再生したasc
Begin Triggerblock
0.000000 Start of measurement
0.000000 CANFD 1 Rx 111 1 1 d 8 11 22 33 44 55 66 77 88
0.001000 CANFD 1 Rx 222 1 1 d 64 21 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79
0.002000 CANFD 1 Rx 333 1 1 d 64 22 7A 7B 7C 7D 7E 7F 01 0A 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36
0.010000 1 111 Rx d 8 11 22 33 44 55 66 77 88
0.011000 1 222 Rx d 8 11 22 33 44 55 66 77 88
0.012000 1 333 Rx d 8 11 22 33 44 55 66 77 88
0.020000 CANFD 1 Rx 111 1 1 d 8 11 22 33 44 55 66 77 88
0.021000 CANFD 1 Rx 222 1 1 d 64 21 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79
0.022000 CANFD 1 Rx 333 1 1 d 64 22 7A 7B 7C 7D 7E 7F 01 0A 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36
0.030000 1 111 Rx d 8 11 22 33 44 55 66 77 88
0.031000 1 222 Rx d 8 11 22 33 44 55 66 77 88
0.032000 1 333 Rx d 8 11 22 33 44 55 66 77 88
End TriggerBlock
こっちが収録したasc
Begin Triggerblock
0.000000 Start of measurement
0.000000 1 111 Rx d 8 11 22 33 44 55 66 77 88
0.000991 1 222 Rx d 64 21 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79
0.001991 1 333 Rx d 64 22 7A 7B 7C 7D 7E 7F 01 0A 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36
0.008987 1 111 Rx d 8 11 22 33 44 55 66 77 88
0.009953 1 222 Rx d 8 11 22 33 44 55 66 77 88
0.011977 1 333 Rx d 8 11 22 33 44 55 66 77 88
0.018932 1 111 Rx d 8 11 22 33 44 55 66 77 88
0.020980 1 222 Rx d 64 21 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79
0.022970 1 333 Rx d 64 22 7A 7B 7C 7D 7E 7F 01 0A 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36
0.028934 1 111 Rx d 8 11 22 33 44 55 66 77 88
0.030917 1 222 Rx d 8 11 22 33 44 55 66 77 88
0.032907 1 333 Rx d 8 11 22 33 44 55 66 77 88
End TriggerBlock
おー。バッチリ取れてるね!
と、思ったのだけど、
can.loggerの結果がCAN-FDじゃなくて、CANのログのフォーマットになってない?
そーなんだよねー。
これが前回いってたcan.loggerの問題点。
can.loggerの問題点
察するに、can.loggerでCAN-FDの収録はできるけど、
フォーマットがCAN-FDにならないってことになるのかな?
そうだね。
can.player、can.loggerに内包する形でascreaderとascwriterというモジュールがあるんだけど、
- ascreaderはCAN-FDに対応している。
- ascwriterはCAN-FDに対応していない。
って状態になってる。
※ 本記事執筆時点のversionが3.3.3なんで、それより後のversionでは対応されてるかもしれない。
でも、まぁDLCを見ればわかるからあんまり問題にはならないのかなー?
うーん、DLCが8以下だとCANかCAN-FDか見分けがつかないことになるけど、
今回のシミュレーションに於いては目をつむるしかないねー。
まとめ
まとめだよ。
- 改造版のcan.playerとcan.loggerの使用方法説明。
- ともに”–fd”というオプションを追加しただけ。
- can.player、can.loggerで再生&収録した。
- can.loggerが内包しているascwriterがCAN-FDフォーマットに対応していないためCANとCAN-FDの区別がつかない。
- とりあえず、シミュレーションする上では気にしない方針。
バックナンバーはこちら。
コメント