Danil Iarosh 35c9693740 fix: stabilize OTA updates in v2.0.2
- Исправлен перезапуск приложения после замены файлов и добавлено подтверждение запуска новой версии.
- Обеспечены откат при ошибке и корректное завершение фоновых задач.
- Исключены посторонние DLL из Windows-сборки, обновлены тесты и инструкция ручного перехода с v2.0.1.
2026-09-17 10:30:18 +03:00

13 KiB
Raw Permalink Blame History

Plate Config App

Приложение для настройки и тестирования аппаратных плат через COM-порт. Позволяет подключаться к плате, проходить авторизацию, отправлять команды, тестировать входы, выходы и подсветку, обновлять прошивку и назначать роли.


Содержание


Системные требования

  • Windows 10 / 11
  • Debian 13 x86_64 (для Linux-сборки и запуска Linux-пакета)
  • COM-порт (физический или виртуальный), к которому подключена плата

Для запуска из собранного EXE дополнительных зависимостей не требуется.


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

Из готовой сборки

  1. Скопируйте сборку для своей платформы в каталог с папками ресурсов.
  2. На Windows запустите plate_config_app-windows-x86_64.exe.
  3. На Debian запустите ./plate_config_app-linux-x86_64.

Файл настроек settings.json создается автоматически рядом с EXE при первом изменении настроек.

Из исходников (для разработки)

См. DEVELOPMENT.md.

Для Debian 13 x86_64 используйте build_linux.sh; подробности сборки приведены в BUILD_EXE.md.


Обновление приложения

При запуске приложение в фоне переходит по адресу https://git.robotail.pro/Robotail/plate-config-app/releases/latest и сравнивает тег последнего релиза с текущей версией. Кнопка «Скачать обновление» появляется под настройками только тогда, когда удалённый тег формата vX.Y.Z численно новее: сначала сравнивается major, затем minor и patch.

Приложение скачивает ZIP-пакет текущей платформы, проверяет его целостность и безопасность, завершает старый процесс, заменяет бинарник и все каталоги из пакета, а затем запускается заново. Перед заменой создаётся резервная копия; она удаляется только после подтверждения запуска новой версии. Если запуск не удался, предыдущая версия восстанавливается, а сообщение записывается в update-error.log. Файл settings.json и другие файлы, которых нет в архиве, сохраняются. Для работы проверки релизы репозитория должны быть доступны без авторизации.

Имена release-артефактов:

  • Windows x86_64: plate_config_app-windows-x86_64.zip;
  • Linux x86_64: plate_config_app-linux-x86_64.zip.

Для перехода с уже установленной v2.0.1 на v2.0.2 обновите приложение вручную: закройте его, скачайте ZIP-пакет своей платформы и распакуйте содержимое в каталог приложения с заменой прежних файлов. settings.json удалять не нужно. Начиная с v2.0.2 последующие обновления можно устанавливать кнопкой в приложении.


Интерфейс приложения

Главная страница

При запуске отображается стартовый экран с кнопками:

  • Новое соединение -- открывает вкладку настройки COM-порта.
  • Команды платы -- справочник поддерживаемых команд платы с поиском.
  • Настройки приложения -- выбор цветовой темы (светлая / темная, зеленый / синий акцент).
  • Скачать обновление -- появляется под настройками, если версия последнего релиза формата vX.Y.Z новее версии запущенного приложения.

Приложение поддерживает несколько одновременных подключений: каждое соединение открывается в отдельной вкладке.

Подключение к плате

Во вкладке соединения выберите параметры:

Параметр Значение по умолчанию
Port (первый доступный)
Baud rate 115200
Data bits 8
Stop bits 1
Parity None
Flow control None

Нажмите OK для подключения. Кнопка Обновить порты обновляет список доступных COM-портов.

Панель управления

После подключения открывается панель с двумя режимами работы:

Базовый режим

В базовом режиме доступны встроенные секции, организованные в сворачиваемые группы:

Секция Описание
Обновление прошивки Загрузка файла и OTA-обновление с прогрессом
Тест цвета Управление светодиодами и режимами подсветки
Тест ввода Мониторинг входов, джойстик, калибровка, ADC
Тест оплаты и призов Монетоприёмник, хоппер, автовыдача призов

PRO-режим

Переключатель «PRO» открывает доступ к расширенным диалогам:

Действие Описание
Handshake (Авторизация) AES-256 авторизация на плате (если требуется)
Тест ввода Мониторинг состояния входов в реальном времени
Тест подсветки Управление светодиодами и режимами подсветки
Тест силовых выходов Включение/выключение силовых выходов
Обновление прошивки Загрузка файла прошивки на плату
Задание роли Назначение роли платы
Ввод команд Терминал для отправки произвольных команд вручную

Статус подключения

Индикатор в заголовке вкладки отображает текущее состояние:

  • Красный — нет связи.
  • Желтый — подключено, требуется авторизация.
  • Зеленый — подключено, плата готова к работе.

Кнопка переподключения (↻) позволяет быстро восстановить связь при обрыве. При подключении приложение определяет режим по версии в стартовой строке платы. Если версия содержит маркер no_auth без учёта регистра, AES-256 авторизация пропускается, а статус отображается как «Готово без авторизации». Для остальных и неизвестных версий сохраняется строгая обязательная авторизация.

После успешного OTA и перезагрузки приложение повторно читает версию новой прошивки. Полная AES-256 авторизация выполняется только для прошивок без маркера no_auth; перед командой 04 повторная авторизация не выполняется. Кнопка ручной авторизации в терминале использует то же правило совместимости.


Файлы данных

Рядом с EXE (или в корне проекта при запуске из исходников) могут располагаться папки с конфигурациями:

Папка Расширение Назначение
light_modes/ .lm Режимы подсветки (формат TOML)
input_mappings/ .mapping Маппинги входов по играм (формат TOML)
commands/ .csv Наборы команд платы (разделитель ;)

Эти файлы располагаются рядом с EXE (или в корне проекта при запуске из исходников). При сборке они автоматически копируются в папку dist/ рядом с EXE. Можно редактировать файлы конфигураций без пересборки — достаточно изменить нужный файл и перезапустить приложение.


Настройки

Настройки хранятся в settings.json рядом с EXE. Файл создается автоматически.

Доступные параметры (изменяются через диалог в приложении):

Параметр Значения По умолчанию
Тема Светлая / Тёмная Светлая
Акцент Зелёный / Синий Зелёный
Проверка состояния платы Вкл / Выкл Выкл
Интервал проверки 5–60 сек 10 сек

Документация для разработчиков