Canplayer不会重播candump文件

Art*_*nes 6 can-bus socketcan canutils

我正在尝试使用canplayer重播一些candump文件,但没有成功.当我尝试运行canplayer时,它只是执行并返回,不知道发生了什么.

我到目前为止所做的尝试:

设置1

  • 设置vcan界面
  • 使用cansend和cangen将数据发送到vcan界面,并成功(使用candump验证).
  • 在运行cangen时从vcan0录制了一个candump文件.带有绝对时间戳(-ta)和不带时间戳的录制文件.
  • 尝试使用canplayer重现文件.尝试使用几个参数,无济于事.canplayer只是立即返回,没有任何投诉.如果我弄乱它抱怨的文件或参数.

设置2

  • 将2个PEAK CAN USB适配器设备连接到PC.
  • 使用120欧姆端接电缆将适配器相互连接
  • 开始cangen指向can0并使用candump验证消息到达can1
  • 从can0接口录制的candump文件.
  • 尝试使用canplayer重现文件.但没有成功.

我在两台运行Ubuntu 12.04的不同机器上尝试过这些测试,结果相同.

你知道它可能是什么原因吗?

Art*_*nes 11

我似乎以错误的方式记录了日志文件.

我的日志文件使用以下命令进行录制:

$ candump -ta vcan0 "log.candump"
Run Code Online (Sandbox Code Playgroud)

但是,该命令以人类可读的格式记录日志:

  vcan0  1B3   [8]  8E 02 74 22 55 70 49 30
  vcan0  658   [6]  27 48 2C 56 14 0A
  vcan0  1F8   [2]  77 99
  vcan0  7B7   [8]  33 A2 24 38 B2 78 86 72
  vcan0  43C   [8]  92 C6 81 2E FC 5E 38 35
  vcan0  7B0   [2]  2D 1B
Run Code Online (Sandbox Code Playgroud)

为了记录可以使用canplayer播放的日志文件,应使用其中任何一个来录制它们

$ candump -l vcan0
Run Code Online (Sandbox Code Playgroud)

要么

$ candump -L vcan0 > myfile.log
Run Code Online (Sandbox Code Playgroud)

录制的文件如下所示:

(1436509052.249713) vcan0 044#2A366C2BBA
(1436509052.449847) vcan0 0F6#7ADFE07BD2
(1436509052.650004) vcan0 236#C3406B09F4C88036
(1436509052.850131) vcan0 6F1#98508676A32734
(1436509053.050284) vcan0 17F#C7
(1436509053.250417) vcan0 25B#6EAAC56C77D15E27
(1436509053.450557) vcan0 56E#46F02E79A2B28C7C
(1436509053.650713) vcan0 19E#6FE1CB7DE2218456
(1436509053.850870) vcan0 1A0#9C20407F96EA167B
(1436509054.051025) vcan0 6DE#68FF147114D1
Run Code Online (Sandbox Code Playgroud)

可以使用以下命令在canplayer中重播该格式的文件:

$ canplayer -I candump-2015-07-10_081824.log
Run Code Online (Sandbox Code Playgroud)

要么

$ cat candump-2015-07-10_081824.log | canplayer
Run Code Online (Sandbox Code Playgroud)

这个答案的功劳归于Oliver Hartkopp.

  • @ArthurNunes我使用了"log2asc",它有效! (2认同)