Skip to content

MaksRe/tosun-geehy-can-uds-collector-tool

Repository files navigation

tosun-geehy-can-uds-collector-tool

Десктопное приложение для диагностики и сбора данных с устройств на базе Geehy APM32 по протоколам CAN / J1939 / UDS.

Что делает приложение

  • подключается к CAN-адаптеру и управляет трассировкой;
  • ведет CAN-журнал с фильтрацией по колонкам;
  • автоопределяет кандидатов адресов устройств из входящего RX-потока J1939;
  • позволяет настраивать UDS CAN идентификаторы (TX/RX) по полям J1939;
  • поддерживает чтение/запись Source Address и выбор Byte Order;
  • опрашивает узлы по UDS DID в режиме Collector;
  • записывает метрики в CSV (по узлам);
  • отображает графики топлива/температуры и умеет подгружать CSV для сравнения.

Опрос DID в Collector

Используются DID:

  • 0x0014 (curr_fuel_tank) — период;
  • 0x0018 (raw_fuel_level) — уровень топлива в формате 0.1% (целое 0..1000);
  • 0x0019 (raw_temperature) — температура.

Опрос выполняется циклически по узлам с настраиваемыми интервалами. В UI и CSV значение 0x0018 делится на 10 и отображается как 0.0..100.0 %.

Формат CSV

Для каждого узла создается отдельный CSV-файл (разделитель ;) с колонками:

  • Время
  • Период
  • Температура (°C)
  • Топливо (%)

Дробные значения сохраняются с запятой.

Стек

  • Python 3.11+
  • PySide6 (QML/Qt Quick Controls 2)
  • CAN / J1939 / UDS / ISO-TP
  • libTSCANAPI (Windows DLL)

Архитектура

.
├─ app_can/                         # работа с CAN-адаптером
├─ j1939/                           # разбор J1939 идентификатора
├─ uds/                             # UDS сервисы, DID, идентификаторы
├─ libTSCANAPI/                     # нативные библиотеки адаптера
├─ ui/qml/
│  ├─ Main.qml                      # главный QML-экран
│  ├─ app_controller.py             # основной backend-контроллер
│  ├─ app_controller_parts/         # вынесенные модули логики
│  │  ├─ can_traffic.py             # CAN-журнал, фильтры, автоопределение
│  │  └─ collector.py               # collector, тренды, CSV, опрос
│  ├─ collector_csv_manager.py      # запись CSV
│  └─ components/                   # карточки и виджеты интерфейса
├─ main.py                          # точка входа
└─ main.spec                        # сборка через PyInstaller

Требования

  • Windows 10/11 x64;
  • установленный драйвер/SDK для CAN-адаптера;
  • доступный libTSCAN.dll в libTSCANAPI/windows/x64;
  • Python 3.11+.

Установка и запуск

python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
.venv\Scripts\python main.py

Сборка EXE

pyinstaller main.spec

Сборка появится в dist/tosun-geehy-can-uds-collector-tool/.

Типовой сценарий работы

  1. Нажать Сканировать, выбрать адаптер и подключиться.
  2. Запустить трассировку CAN.
  3. Проверить автоопределение адресов в блоке автоопределения.
  4. При необходимости применить UDS ID и параметры протокола.
  5. Запустить Collector и запись CSV.
  6. Открыть графики, включить/выключить узлы и фильтры анализа.

Диагностика проблем

  • Адаптер не виден: проверьте драйвер, права и соответствие DLL разрядности Python.
  • Нет данных в Collector: проверьте активную трассировку и корректность UDS TX/RX ID.
  • Пустые графики: проверьте, что узел реально отвечает по DID 0x0018/0x0019.
  • Ошибки QML-стилей: используется Fusion/Basic, задается в main.py.

About

CAN/J1939/UDS Collector Tool для Geehy APM32: автоопределение узлов, мониторинг параметров, графики и экспорт CSV.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors