Приложение для офлайн-анализа логов 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.pyPySide6— интерфейс и графика.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В проекте есть полноценный spec-файл и скрипт автоматической сборки:
can_csv_graph_viewer_qml.specbuild_release.pybuild_version.json
Команда сборки:
python build_release.pyЧто делает скрипт:
- запускает тесты;
- увеличивает номер билда в
build_version.json; - передает новую версию в spec-файл;
- собирает выходной файл с версией в имени.
Пример имени результата:
can_csv_graph_viewer_qml_v1.0.1.exe
- Если
xlsxне читается, проверьте установкуopenpyxl. - При больших файлах рекомендуется отключать лишние серии, чтобы ускорить перерисовку.