Приложение на PySide6 для автоматизированной проверки спидометров/тахометров на аппаратном стенде. Проект объединяет работу со сканером штрих‑кодов, J-Link программатором и стендом, ведёт историю испытаний и хранит настройки в SQLite/JSON.
- Пошаговый сценарий тестов с подсказками и контролем статуса.
- Управление стендом (генератор, подсветка, кнопки, положение стрелки) через последовательный порт.
- Работа со сканером штрих‑кода и программатором J-Link.
- Локальная база SQLite для модификаций и результатов, JSON для пользовательских настроек.
- Логи испытаний и диагностики в
.cache/Logs.
- Python 3.10+ (рекомендуется 3.11).
- Зависимости из
requirement.txt. - Аппаратные устройства: стенд, сканер штрих‑кода, J-Link (драйверы должны быть установлены в ОС).
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirement.txt
python main.pyПри первом запуске создаются JSON‑файлы настроек в Database/JSON и база Database/SQLite/Database.db.
Сборка ведётся через спецификацию:
pyinstaller speedometer_stand.specЧто делает сборка:
- Автоматически выставляет версию
APP_VERSION. - Имя выходной папки:
speedometer_stand_<версия>. - Генерирует файл
BuildChanges/BuildChanges_<версия>.txt. - Подкладывает ресурсы (Images, resources, Database, Firmwares), а также
python*.dllиJLinkARM.dllпри наличии.
Используйте BuildChanges/BuildNotes.txt:
- Записывайте текущие изменения списком
- ...под заголовкомBuild notes. - При сборке эти пункты автоматически переносятся в секцию вида:
### <версия> <дата>внутри этого же файла. - Тот же список попадает в
BuildChanges/BuildChanges_<версия>.txt.
- Стенд:
Database/JSON/stand.json(порт/скорость). - Сканер:
Database/JSON/scanner.json. - Программатор:
Database/JSON/j_link.jsonиDatabase/JSON/firmware.json. Изменять настройки можно через соответствующие диалоги приложения или вручную в JSON.
- Подключите стенд, сканер и J-Link, проверьте параметры портов.
- В Welcome выберите серию/модификацию и начните тест.
- Следуйте подсказкам этапов (сканирование, кнопки, параметры, коррекция и т.д.).
- Результаты сохраняются в таблице
Summaryбазы SQLite.
main.py— точка входа.Widgets/— UI‑формы, стадии тестов, стили, контролы.Devices/— логика работы со стендом/сканером/программатором.Database/SQLite— модели таблиц (Modifications,Summary).Database/JSON— пользовательские настройки.Common/— общие утилиты, пути, настройки, версия.SerialInterface/— поток/обмен по COM‑порту.
Логи пишутся в .cache/Logs/All_<дата>.log. Уровень логирования — DEBUG для файла и INFO для консоли. Необработанные исключения также попадают в лог.
Тесты в проекте отсутствуют; для критичных изменений рекомендуется smoke‑проверка python main.py.
При проблемах приложите лог из .cache/Logs/... и опишите шаги воспроизведения.