Skip to content

MaksRe/speedometer_stand

Repository files navigation

SpeedStand

Приложение на 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)

Сборка ведётся через спецификацию:

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.

Основные сценарии

  1. Подключите стенд, сканер и J-Link, проверьте параметры портов.
  2. В Welcome выберите серию/модификацию и начните тест.
  3. Следуйте подсказкам этапов (сканирование, кнопки, параметры, коррекция и т.д.).
  4. Результаты сохраняются в таблице 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/... и опишите шаги воспроизведения.

About

Прикладная программа под Windows для конфигурации, настройки и юстировки прибора "спидометр"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages