Программы для canbus android

Обновлено: 04.07.2024

Эта фиксация не принадлежит ни к одной из веток в этом репозитории и может принадлежать ответвлению за пределами репозитория.

Последняя фиксация

Статистика Git

Файлы

Не удалось загрузить последнюю информацию о коммите.

README.first

Инструменты CAN BUS в Python 3.

    , KCD, SYM, ARXML 3&4 и анализ файлов CDD.
  • Кодирование и декодирование сообщений CAN.
  • Простое и расширенное мультиплексирование сигналов.
  • Диагностическое кодирование и декодирование DID.
  • выходной декодер candump.
  • Тестер узла.
  • Генератор исходного кода C.
  • Мониторинг шины CAN.
  • Графические графики сигналов.

Пример начинается с разбора небольшого файла DBC и вывода его сообщений и сигналов.

В примере продолжается кодирование сообщения и отправка его по шине CAN с помощью пакета python-can.

В качестве альтернативы сообщение можно закодировать с помощью метода encode_message() объекта базы данных.

Последняя часть примера получает и декодирует сообщение CAN.

Дополнительные примеры см. в примерах.

Инструмент командной строки

Подкоманда декодирования

Декодируйте кадры CAN, захваченные программой candump для Linux.

В качестве альтернативы расшифрованное сообщение можно напечатать в одной строке:

Подкоманда plot

Подкоманда plot аналогична подкоманде decode, но сообщения визуализируются с помощью библиотеки matplotlib, а не выводятся на стандартный вывод.

docs/plot-1.jpg

Если вы не хотите показывать все сигналы, вы можете выбрать нужные сигналы с помощью аргументов командной строки. * может обозначать любое количество любых символов, а ? ровно для одного произвольного символа. Сигналы, разделенные символом -, отображаются на отдельных подграфиках. При желании формат можно указать после сигнала, разделенного двоеточием.

docs/plot-2- subplots.jpg

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

docs/plot-2- axes.jpg

Matplotlib поставляется с различными предустановленными стилями, которые вы можете использовать:

docs/plot-seaborn.jpg

Вы можете попробовать все доступные стили

Дополнительную информацию см.

Обратите внимание, что по умолчанию matplotlib не устанавливается вместе с cantools. Но можно, указав при установке доп:

Подкоманда дампа

Дамп данной базы данных в удобочитаемом формате:

Подкоманда списка

Печатать всю информацию о данной базе данных в удобочитаемом формате. Это очень похоже на подкоманду "dump", но вывод менее красивый, немного более полный и его легче анализировать сценариями оболочки:

Подкоманда генерации исходного кода C

Сгенерировать исходный код C из заданной базы данных.

Сгенерированный код содержит:

  • Структуры сообщений.
  • Функции упаковки и распаковки сообщений.
  • Функции кодирования и декодирования сигнала.
  • Определяет идентификатор кадра, длину, тип, время цикла и выбор сигнала.
  • Максимальный размер сигнала – 64 бита, который на практике никогда не превышается.

Ниже приведен пример создания исходного кода C из базы данных. База данных — тесты/файлы/dbc/motohawk.dbc .

Содержимое созданных файлов см. на motohawk.h и motohawk.c.

В этом примере мы используем --use-float, поэтому числа с плавающей запятой в сгенерированном коде имеют одинарную точность ( float ), а не двойную точность ( double ).

В следующем примере мы используем --database-name, чтобы установить пользовательское пространство имен для всех сгенерированных типов, определений и функций. Эта опция также изменяет имена выходных файлов.

См. my_database_name.h и my_database_name.c для ознакомления с содержимым сгенерированных файлов.

В последнем примере мы используем --no-floating-point-numbers для генерации кода без типов с плавающей запятой, т. е. float и double .

Другие генераторы кода C:

Подкоманда монитора

Отслеживайте трафик шины CAN в текстовом пользовательском интерфейсе.

https://github.com/eerimoq/ cantools/raw/master/docs/monitor.jpg

Меню в нижней части монитора показывает доступные команды.

  • Выход: выход из монитора. Также можно использовать Ctrl-C.
  • Фильтр: отображать только сообщения, соответствующие заданному регулярному выражению. Нажмите, чтобы вернуться в меню из строки ввода фильтра.
  • Воспроизведение/пауза: переключение между воспроизведением и паузой (или запуском и остановкой).
  • Сброс: сброс монитора в исходное состояние.

Разветвить репозиторий.

Внедрить новую функцию или исправить ошибку.

Внедрите тестовые примеры, чтобы гарантировать, что будущие изменения не нарушат устаревшее.

RND_ASH интегрировал головное устройство Android в шину CAN своего Mercedes, чтобы контролировать все системы автомобиля и считывать их данные.

Стандартное головное стереоустройство в большинстве старых автомобилей представляло собой отдельное устройство, которое не взаимодействовало ни с чем другим в автомобиле. Это позволило очень легко заменить стереосистему, не затрагивая остальную часть автомобиля. Но новые автомобили часто имеют информационно-развлекательные системы, тесно интегрированные с остальной электроникой автомобиля. Например, информационно-развлекательный экран вашего автомобиля может содержать элементы управления системой климат-контроля. На рулевом колесе также могут быть кнопки для управления музыкой. Это означает, что установка вторичной стереосистемы может повлиять на многие другие функции. Чтобы обойти это, RND_ASH интегрировал головное устройство Android в шину CAN своего старого Mercedes .

Все современные автомобили оснащены шиной локальной сети контроллеров (CAN), которая позволяет всем различным электронным системам автомобиля взаимодействовать друг с другом. Как правило, все, от блока управления двигателем до управления стеклоподъемниками, подключено к шине CAN. В более старой машине ваши поворотники, вероятно, были подключены непосредственно к подрулевому переключателю через реле. Сегодня выключатель на складе может быть просто частью CAN-шины, которая затем отправляет сообщение о включении индикатора. Если вы можете подключиться к этой CAN-шине и понять протокол обмена сообщениями, вы сможете читать данные, отправляемые между системами, а также вводить свои собственные команды.

В этом случае RND_ASH одновременно считывает и отправляет данные по шине CAN. Его головное устройство Android обычно не способно на это, поэтому он подключил Arduino Uno к паре экранов CAN-шины. После много программирования он смог успешно читать сообщения с шины CAN. Затем он разработал специальный интерфейс для головного устройства Android для отображения этих данных. Например, он может отображать текущую температуру двигателя, обороты, расход топлива, настройки климат-контроля и даже положение окон.

Для управления системами автомобиля через головное устройство Android требовалось вводить сообщения в шину CAN. Во-первых, RND_ASH пришлось проделать большой обратный инжиниринг, чтобы расшифровать способ кодирования сообщений. Затем он смог отправлять свои собственные сообщения через этот экран Arduino и шины CAN. Это дало ему полный контроль над каждой системой, подключенной к шине CAN автомобиля. Например, он создал «световое шоу», включив и выключив внешнее освещение по шаблону. Последним шагом стала интеграция элементов управления мультимедиа на рулевом колесе и экрана состояния в центре приборной панели. Раньше этот экран даже не работал, а теперь, после всего этого взлома, он может показывать на дисплее все, что хочет. Специфика будет сильно различаться в зависимости от конкретной модели автомобиля, но работа RND_ASH — отличный пример того, что вы можете делать с шиной CAN.

Я сразу к делу. У меня есть VW Golf MK5 и Pumpkin MTCC/B HU с подключенным кабелем canbus.
Есть приложение Vehicle, которое предоставляет довольно интересную информацию о бензобаке, оборотах в минуту и ​​т. д. Вся эта информация предоставляется декодером canbus.

Я подумал, что если эту информацию можно будет предоставить, может появиться приложение с интересными функциями, такими как анимированные датчики и т. д.

Возможно, вы знаете какие-то приложения для этого, поэтому я и спрашиваю. Я был бы очень заинтересован в них, как и, вероятно, многие люди (даже если они еще не знают об этом), так что заранее спасибо.

Хорошего дня

ПС. Нет подключения ODB2, только кабель Canbus (тот, который можно использовать с кнопками на рулевом колесе)

ЛейзДК

Старший участник

Здравствуйте, дорогие друзья,

Я сразу к делу. У меня есть VW Golf MK5 и Pumpkin MTCC/B HU с подключенным кабелем canbus.
Есть приложение Vehicle, которое предоставляет довольно интересную информацию о бензобаке, оборотах в минуту и ​​т. д. Вся эта информация предоставляется декодером canbus.

Я подумал, что если эту информацию можно будет предоставить, может появиться приложение с интересными функциями, такими как анимированные датчики и т. д.

Возможно, вы знаете какие-то приложения для этого, поэтому я и спрашиваю. Я был бы очень заинтересован в них, как и, вероятно, многие люди (даже если они еще не знают об этом), так что заранее спасибо.

Хорошего дня

ПС. Нет подключения ODB2, только кабель Canbus (тот, который можно использовать с кнопками на рулевом колесе)

двоичный1

Старший участник

Вам нужен адаптер odb2 (Bluetooth или Wi-Fi), подключенный к порту odb2 вашего автомобиля, после чего вы можете использовать такие приложения, как крутящий момент, чтобы передавать данные о двигателе в режиме реального времени с помощью циферблатов. Если у вас есть передняя камера, вы можете использовать caroo pro, которая также предоставляет данные в режиме реального времени, а также запись с диска.

Отправлено с моего HTC One M9 с помощью Tapatalk

Зафод-Библброкс

Старший участник

Здравствуйте, дорогие друзья,

Я сразу к делу. У меня есть VW Golf MK5 и Pumpkin MTCC/B HU с подключенным кабелем canbus.
Есть приложение Vehicle, которое предоставляет довольно интересную информацию о бензобаке, оборотах в минуту и ​​т. д. Вся эта информация предоставляется декодером canbus.

Я подумал, что если эту информацию можно будет предоставить, может появиться приложение с интересными функциями, такими как анимированные датчики и т. д.

Возможно, вы знаете какие-то приложения для этого, поэтому я и спрашиваю. Я был бы очень заинтересован в них, как и, вероятно, многие люди (даже если они еще не знают об этом), так что заранее спасибо.

Хорошего дня

ПС. Нет подключения ODB2, только кабель Canbus (тот, который можно использовать с кнопками на рулевом колесе)

Я не знаком с этим конкретным устройством, но одной из наиболее общих частей архитектуры для всех этих Android-радиостанций является использование платы MCU для управления вещами, внешними по отношению к Android-боксу (например, блоком питания, резервной камерой и т. д.). аналоговое радио, bluetooth HFP и т. д.). Эти элементы на самом деле не «видимы» для системы Android каким-либо «нормальным» способом.
Приставка Android взаимодействует с MCU посредством модификаций ядра (как правило, некоторого типа виртуального последовательного порта/канала) и через «родные» приложения на головном устройстве. К сожалению, ни один из производителей не открыл свой код, поэтому, кроме взлома smali, вы вряд ли получите доступ к чему-либо из этого.

И даже если вы вытащите APK-файл с этой функцией, он не будет работать ни на одном другом радио, кроме вселенной MTC.

Мати1231

Член

Конечно. Он во вложении.

Я не знаком с этим конкретным устройством, но одной из наиболее общих частей архитектуры для всех этих Android-радиостанций является использование платы MCU для управления вещами, внешними по отношению к Android-боксу (например, блоком питания, резервной камерой и т. д.). аналоговое радио, bluetooth HFP и т. д.). Эти элементы на самом деле не «видимы» для системы Android каким-либо «нормальным» способом.
Приставка Android взаимодействует с MCU посредством модификаций ядра (как правило, некоторого типа виртуального последовательного порта/канала) и через «родные» приложения на головном устройстве. К сожалению, ни один из производителей не открыл свой код, поэтому, кроме взлома smali, вы вряд ли получите доступ к чему-либо из этого.

И даже если вы вытащите APK-файл с этой функцией, он не будет работать ни на одном другом радио, кроме вселенной MTC.


Это точно. Тем не менее, могут быть еще приложения, которые общаются с этими сигналами. Это было моим настоящим желанием найти их.
Но если моя просьба выглядит безнадежной, я хочу поблагодарить вас за ответы.

Вложения

Кирттттт

Старший участник

Хотелось бы это знать! Я хочу считать пробег и уровень масла и отправить их в веб-интерфейс.

Кирттттт

Старший участник

Я сам поискал. Я попытался считать последовательные порты с помощью Busybox Microcom.

Я получил этот текст. В этот журнал добавляется около 10 строк в секунду:

Я не смог найти свой пробег или что-то полезное. Кто-нибудь знает, что делать с этим кодом? Может он закодирован?

Кирттттт

Старший участник

Хорошо, нужно расшифровать это. Похоже, это необработанные данные GPS. Так что это не ttyS3. Что бы это могло быть?
В журнале Dmesg есть несколько строк, говорящих о CAN. Может ли это быть?
[ 5917.664861] --mtc @@@ f 101700
[ 5917.725016] -mtc can --> 2e 41 02 01 a0 1b
[ 5917.741483] --mtc @@@ seek_chk 184 20
[ 5917.761485] --mtc @@@ seek_chk 184 20
[ 5917.781570] --mtc @@@ seek_chk 184 20
[ 5917.801476] --mtc @@@ seek_chk 184 20
[ 5917.821748] --mtc @@@ seek_chk 183 19
[ 5917.841474] --mtc @@@ seek_chk 184 20
[ 5917.844962] -mtc can --> 2e 24 02 00 00 d9< /p>

мигелито62

Член

Последовательный интерфейс, используемый для интеграции CAN, — ttyV0. По крайней мере, на моем устройстве MTCD - sofia3gr_car_64 (имхо на базе процессора Intel).

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

Анализ системного приложения MTCCanbus моего устройства показал, что оно открывает ttyV0 со скоростью 38,4 кБод. Очевидно, для связи с аппаратным уровнем CAN (реализованным в MCU).

Следующий шаг – прослушивание этого порта на наличие протокола интерфейса между ЦП (Android) и MCU (насколько я где-то узнал, MCU является производным от 8051?).

Мне интересно, соответствует ли интерпретация CANopen, т.е. какие идентификаторы COB, какой функциональности находится в MCU или в ЦП:
Это либо MCU должен знать все, что зависит от транспортного средства (потому что все COB ни в коем случае не стандартизированы среди производителей!) и сообщает ЦП уже метаинформацию, такую ​​​​как «Условие ВОЗДУХА установлено на 21 градус C» через последовательный интерфейс.
ИЛИ MCU собирает только кадры CAN и пересылает их в ЦП через последовательный интерфейс. И ЦП выполняет интерпретацию в зависимости от транспортного средства.

Во втором случае мы могли бы легко реализовать все виды пользовательских вещей. Например: мне особенно интересно отображать информацию об оригинальном радио, поскольку мое головное устройство Android заменяет только оригинальный ЖК-дисплей, тогда как оригинальное радио остается в автомобиле.
В первом случае мы зависим от реализации MCU, т. е. какие сообщения CAN (идентификаторы) отфильтровываются MCU, а какие передаются ЦП.

Но из очень краткого взгляда на реализацию приложения CANBus у меня возникло ощущение, что MCU делает все, что зависит от транспортного средства..

калуна

Член

Интеграция с CAN

Последовательный интерфейс, используемый для интеграции CAN, — ttyV0. По крайней мере, на моем устройстве MTCD - sofia3gr_car_64 (имхо на базе процессора Intel).

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

Анализ системного приложения MTCCanbus моего устройства показал, что оно открывает ttyV0 со скоростью 38,4 кБод. Очевидно, для связи с аппаратным уровнем CAN (реализованным в MCU).

Следующий шаг – прослушивание этого порта на наличие протокола интерфейса между ЦП (Android) и MCU (насколько я где-то узнал, MCU является производным от 8051?).

Мне интересно, соответствует ли интерпретация CANopen, т.е. какие идентификаторы COB, какой функциональности находится в MCU или в ЦП:
Это либо MCU должен знать все, что зависит от транспортного средства (потому что все COB ни в коем случае не стандартизированы среди производителей!) и сообщает ЦП уже метаинформацию, такую ​​​​как «Условие ВОЗДУХА установлено на 21 градус C» через последовательный интерфейс.
ИЛИ MCU собирает только кадры CAN и пересылает их в ЦП через последовательный интерфейс. И ЦП выполняет интерпретацию в зависимости от транспортного средства.

Во втором случае мы могли бы легко реализовать все виды пользовательских вещей. Например: мне особенно интересно отображать информацию об оригинальном радио, поскольку мое головное устройство Android заменяет только оригинальный ЖК-дисплей, тогда как оригинальное радио остается в автомобиле.
В первом случае мы зависим от реализации MCU, т. е. какие сообщения CAN (идентификаторы) отфильтровываются MCU, а какие передаются ЦП.

Но из очень краткого взгляда на реализацию приложения CANBus у меня возникло ощущение, что MCU делает все, что зависит от транспортного средства..

Я надеюсь, что вы или другие члены этого сообщества разработаете приложение, способное отображать информацию CANBUS на головном устройстве без использования порта OBD2. Если RoadNav S160 с Android 4.4.4 способен на это, я уверен, что нынешние разработчики смогут получить ту же информацию из CANBUS и отобразить ее на головном устройстве PX5.

Нет товаров в корзине.

Нет товаров в корзине.

Коммерчески поддерживаемое программное обеспечение

Передовые инструменты для управления технологиями Prohelion и системами на основе шины CAN.


Профинити

Profinity – это современный набор инструментов для управления шиной CAN и батареями, разработанный для поддержки сложных архитектур шины CAN. Написанный с нуля для удовлетворения потребностей профессионалов CAN-шины, Profinity обеспечивает простой, но мощный мониторинг, регистрацию, управление и поддержку DBC для общих сетей CAN-шины, а также инструменты управления для всех основных технологий Prohelion.

Дополнительную информацию см. в документации Profinity.

Программное обеспечение Tritium

Prohelion постоянно интегрирует новые продукты и функции в экосистему Profinity. Однако мы также предоставляем доступ к некоторым программным инструментам Tritium, которые больше недоступны на веб-сайте Tritium.

CAN Ethernet Bridge

Инструмент настройки CanBridge

Инструмент конфигурации CanBridge позволяет обнаруживать и изменять настройки встроенного ПО на Ethernet-мосте CAN.

Контроллер двигателя WaveSculptor22

Инструмент настройки WaveSculptor

Инструмент настройки WaveSculptor обеспечивает возможность мониторинга, управления и настройки контроллера двигателя WaveSculptor22.

Программное обеспечение с открытым исходным кодом

Prohelion предоставляет программные решения для гонок на электромобилях, включая решения для стратегии и телеметрии, решения для управления батареями, инструменты CAN-Bus и приложение для планшета Android для управления автомобилем. Эти программные решения предоставляются по лицензии с открытым исходным кодом.


Телеметрия ArrowPoint

Решение ArrowPoint Telemetry Solution предназначено для сбора данных телеметрии и управления данными для управления гоночным автомобилем.

Стандартная реализация предназначена для использования в гоночных автомобилях на солнечной или электрической энергии, использующих технологии Prohelion или Tritium. Это решение было первоначально разработано TeamArrow и используется в гоночных средах с 2013 года. TeamArrow продолжает использовать это приложение в качестве основы своих решений для телеметрии и управления стратегией.

Решение собирает и сохраняет все данные телеметрии в среде гонки и использовалось для сбора более 60 000 000 точек данных в предыдущих событиях и тестировании, а также может управлять, отслеживать и хранить около 400 точек данных в секунду при работе на ноутбуке i7. Он предоставляет отчеты (через Splunk) по полным наборам данных через веб-интерфейс и позволяет командам создавать и отслеживать массивные наборы данных с помощью информационных панелей и динамически изменяемых поисковых запросов.

Дополнительную информацию см. в документации по телеметрии ArrowPoint.


Стрелка для Android

Решение ArrowPoint для Android – это приложение для Android, предназначенное для получения и отображения данных телеметрии от точки доступа Wi-Fi в режиме реального времени. Это очень полезный инструмент в условиях гонок, так как каждый член команды может установить копию на свой телефон или планшет и мгновенно получать информацию о характеристиках автомобиля.

Приложение предоставляет

  • Панель управления водителем, показывающая всю ключевую информацию о водителе (мы используем ее в качестве приборной панели автомобиля в Arrow1)
  • Панель мониторинга солнечной энергии, показывающая основные данные о солнечной энергии и информацию об аккумуляторе, которые можно использовать для оповещения команды или водителя о выходе систем из зоны действия или отключении для связи между автопарками, для которой не требуется радио.
  • Графическая панель, которую можно использовать для отображения информации во времени.

Приложение совместимо с

  • Аккумуляторы Prohelion
  • Tritium WaveSculpters
  • Тритиевые BMU и CMU

Дополнительную информацию см. на странице документации ArrowPoint Android.


Инструменты CAN-шины ArrowPoint

ArrowPoint CANbus Tools — это платформа на базе Windows, предназначенная для получения и отображения телеметрической информации от точки доступа WiFi в режиме реального времени.

Стандартная реализация предназначена для использования в гоночных автомобилях на солнечной или электрической энергии, использующих технологии Prohelion или Tritium. Это решение было первоначально разработано TeamArrow и используется в гоночных средах с 2015 года.

Приложение предоставляет

  • Возможность просмотра и передачи пакетов CANbus
  • Возможность регистрировать пакеты CANbus и воспроизводить их
  • Имитация контроллера драйвера
  • Смоделируйте контроллер мотора

Приложение совместимо с

  • Аккумуляторы Prohelion
  • Контроллеры драйверов Prohelion и Tritium
  • Tritium WaveSculpters
  • Тритиевые BMU и CMU

Дополнительную информацию см. на странице документации инструментов ArrowPoint CANBus.

Читайте также: