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 и получил одинаковые результаты.

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


person Arthur Nunes    schedule 09.07.2015    source источник
comment
Canutils — это набор инструментов, которые используются для тестирования, регистрации и отладки приложений SocketCAN в среде Linux. Трудно найти информацию о программировании SocketCAN и использовании canutils в Интернете, единственное место, которое я нашел до сих пор, - это список рассылки (socket-can.996257.n3.nabble.com/Socket-CAN-Users-f3.html). Я считаю, что другим программистам, которые также работают с SocketCAN, было бы полезно использовать StackOverflow для обмена вопросами и ответами. Именно поэтому я решил опубликовать это здесь.   -  person Arthur Nunes    schedule 17.07.2015
comment
Достаточно честно, я рад, что спросил. Я бы по-прежнему призывал вас создавать хорошие вики для этих тегов, чтобы помочь другим понять, о чем они.   -  person Mogsdad    schedule 17.07.2015
comment
Я не знал о теге вики, я посмотрю на это, спасибо. Я также удалил один из новых тегов, я считаю, что достаточно одного тега canutils.   -  person Arthur Nunes    schedule 17.07.2015
comment
Прохладно. Когда вы наводите курсор на тег, ищите информационную ссылку. Это приведет вас к информации о теге, также известной как вики тегов. Взгляните на некоторые установленные теги, чтобы понять, какая информация имеет смысл (например, [google-apps-script< /а>]). Если вы отредактируете информацию тега, вы обнаружите, что она состоит из двух частей: выдержки или резюме и тела вики. Сводка отображается, когда люди вводят тег в вопросе, поэтому хорошо, если она будет короткой и по существу, чтобы люди могли ее прочитать и избежать использования неправильного тега.   -  person Mogsdad    schedule 18.07.2015


Ответы (2)


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

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

$ 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

or

$ 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

or

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

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

person Arthur Nunes    schedule 17.07.2015
comment
Знаете ли вы, есть ли утилита для преобразования уже записанных данных из одного формата в другой? - person Aras; 02.11.2016
comment
@Aras Существует приложение asc2log (см. github.com/linux-can/can-utils), но я никогда не использовал его. Если вы попробуете это, пожалуйста, дайте мне знать, если это работает. - person Arthur Nunes; 03.11.2016
comment
cat infile | awk '{print "(0.000000) "$1" "$2"#"$4$5$6$7$8$9$10$11 }' > outfile помог мне, однако все метки времени установлены на ноль. - person tillz; 10.02.2021

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

$ candump -l can0

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

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

person J.Sunderland    schedule 31.03.2017
comment
Эта ссылка уже мертва. Если вы все еще хотите получить доступ к содержимому, перейдите к заархивированному снимку по адресу https://web.archive.org/web/20170907045429/http://www.embeddedhobbyist.com/2015/09/linux-can.-development/ - person avra; 15.06.2021