Skip to content

Repository files navigation

Просмотрщик CAN-логов из CSV/XLSX (PySide6 + QML)

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

Что умеет программа

  • Загружает несколько файлов сразу.
  • Поддерживает форматы:
    • файл отдельного узла (0xNN.csv);
    • общий файл по всем узлам (all_nodes.csv);
    • Excel-файл общего формата (all_nodes.xlsx).
  • Работает в двух режимах отображения:
    • один выбранный узел;
    • все узлы одновременно.
  • Позволяет включать/выключать серии узлов и назначать цвет каждой серии отдельно.
  • Строит графики по температурной оси с управлением отображением:
    • сглаживание;
    • шаг сетки по X/Y;
    • диапазон отображаемых точек;
    • показ/скрытие подписей времени.
  • Показывает метрики по каждому узлу:
    • экстремумы;
    • дрейф;
    • диапазоны и статистику.

Для кого этот инструмент

  • Для инженера-испытателя, который анализирует логи температурной компенсации.
  • Для калибровщика, которому нужно сравнить несколько узлов на одном графике.
  • Для диагноста, который хочет быстро проверить качество данных до записи коэффициентов в МК.

Требования

  • Python 3.10+ (рекомендуется 3.11).
  • ОС: Windows/Linux (проверялся в Windows).

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

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

Зависимости

  • PySide6 — интерфейс и графика.
  • openpyxl — чтение xlsx.
  • pyinstaller — сборка exe.

Структура проекта

  • main.py — точка входа, настройка Qt.
  • backend.py — логика загрузки, фильтров, метрик и связи с QML.
  • app/csv_series_parser.py — парсинг CSV/XLSX в единые серии.
  • qml/Main.qml — основной интерфейс.
  • qml/components/TrendCanvas.qml — отрисовка графика.
  • tests/ — автотесты парсинга.

Тестирование

python -m unittest discover -s tests -v

Сборка EXE (PyInstaller)

В проекте есть полноценный spec-файл и скрипт автоматической сборки:

  • can_csv_graph_viewer_qml.spec
  • build_release.py
  • build_version.json

Команда сборки:

python build_release.py

Что делает скрипт:

  • запускает тесты;
  • увеличивает номер билда в build_version.json;
  • передает новую версию в spec-файл;
  • собирает выходной файл с версией в имени.

Пример имени результата: can_csv_graph_viewer_qml_v1.0.1.exe

Примечания

  • Если xlsx не читается, проверьте установку openpyxl.
  • При больших файлах рекомендуется отключать лишние серии, чтобы ускорить перерисовку.

About

GUI-инструмент на PySide6/QML для анализа CAN-логов из CSV/XLSX: графики, метрики по узлам и фильтры отображения.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages