Canplayer не будет воспроизводить файлы Candump

Я пытаюсь использовать canplayer для воспроизведения некоторых файлов Candump, но безуспешно. Когда я пытаюсь запустить canplayer, он просто запускается и возвращается, не давая понять, что происходит.

Что я пробовал до сих пор:

Настройка 1

  • Настройте интерфейс VCAN
  • С успехом отправил данные в интерфейс vcan, используя cansend и cangen (проверено с помощью Candump).
  • Записал файл Candump из vcan0 при запуске cangen. Записанные файлы с абсолютными метками времени (-t a) и без.
  • Пробовал использовать canplayer для воспроизведения файла. Пробовал с использованием нескольких аргументов, безрезультатно. canplayer просто возвращается немедленно без каких-либо жалоб. Если я испорчу файл или аргументы, он жалуется.

Настройка 2

  • Подключено 2 USB-адаптера PEAK CAN к ПК.
  • Подключите адаптеры друг к другу с помощью кабеля на 120 Ом.
  • Запустил cangen, указывающий на can0 и проверил, что сообщения дошли до can1 с помощью Candump
  • Записанные файлы Candump из интерфейса can0.
  • Пробовал использовать canplayer для воспроизведения файла., Но безуспешно.

Я пробовал эти тесты на двух разных машинах, на обоих работает Ubuntu 12.04, с одинаковыми результатами.

Вы знаете, что может быть причиной этого?

3 ответа

Решение

Кажется, я записал файлы журнала в неправильном порядке.

Мои файлы журналов, где производится запись, используют следующую команду:

$ candump -ta vcan0 "log.candump"

Эта команда, однако, записывает журнал в удобочитаемом формате:

  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

Для записи файлов журнала, которые могут быть воспроизведены с помощью canplayer, они должны быть записаны с использованием

$ candump -l vcan0

или же

$ candump -L vcan0 > myfile.log

Записанный файл будет выглядеть так:

(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

Файлы в этом формате можно воспроизвести в canplayer с помощью следующих команд:

$ canplayer -I candump-2015-07-10_081824.log

или же

$ cat candump-2015-07-10_081824.log | canplayer

Кредиты для этого ответа идут на Оливер Харткопп.

Я нашел эту статью с отличной информацией об использовании can и vcan. После записи журнала физической шины CAN с использованием Candump

$ candump -l can0

как указано в предыдущем ответе. Я использовал следующее, чтобы воспроизвести его через виртуальную шину CAN.

$ canplayer vcan0=can0 -I candump-may-14-2015.log

Вот:

      cat input | awk '{print $1" "$2" "$3"#"$5$6$7$8$9$10$11$12}' > output.log
Другие вопросы по тегам