Десктопное приложение для диагностики и сбора данных с устройств на базе Geehy APM32 по протоколам CAN / J1939 / UDS.
- подключается к CAN-адаптеру и управляет трассировкой;
- ведет CAN-журнал с фильтрацией по колонкам;
- автоопределяет кандидатов адресов устройств из входящего RX-потока J1939;
- позволяет настраивать UDS CAN идентификаторы (TX/RX) по полям J1939;
- поддерживает чтение/запись
Source Addressи выборByte Order; - опрашивает узлы по UDS DID в режиме Collector;
- записывает метрики в CSV (по узлам);
- отображает графики топлива/температуры и умеет подгружать CSV для сравнения.
Используются 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-файл (разделитель ;) с колонками:
ВремяПериодТемпература (°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.pypyinstaller main.specСборка появится в dist/tosun-geehy-can-uds-collector-tool/.
- Нажать
Сканировать, выбрать адаптер и подключиться. - Запустить трассировку CAN.
- Проверить автоопределение адресов в блоке автоопределения.
- При необходимости применить UDS ID и параметры протокола.
- Запустить Collector и запись CSV.
- Открыть графики, включить/выключить узлы и фильтры анализа.
- Адаптер не виден: проверьте драйвер, права и соответствие DLL разрядности Python.
- Нет данных в Collector: проверьте активную трассировку и корректность UDS TX/RX ID.
- Пустые графики: проверьте, что узел реально отвечает по DID
0x0018/0x0019. - Ошибки QML-стилей: используется
Fusion/Basic, задается вmain.py.