Danil Iarosh 3a4491f0c4 feat: add ZIP package updates
- Сборки Windows и Linux теперь дополнительно формируют ZIP-архивы с бинарником и ресурсами.

- OTA-проверка выбирает ZIP-артефакт текущей платформы вместо отдельного исполняемого файла.

- Добавлена безопасная проверка архивов, защита от traversal, ссылок, повреждений и превышения лимитов.

- Обновление транзакционно заменяет все верхнеуровневые файлы и каталоги пакета с резервным копированием и откатом.

- Пользовательские файлы, отсутствующие в ZIP, включая settings.json, сохраняются.

- Версия приложения повышена до 2.0.1, документация и кроссплатформенные тесты обновлены.
2026-09-16 14:07:01 +03:00
2026-09-16 14:07:01 +03:00
2026-09-16 14:07:01 +03:00
2026-09-16 14:07:01 +03:00
2026-09-16 14:07:01 +03:00
2026-09-16 14:07:01 +03:00
2026-09-16 14:07:01 +03:00
2026-09-16 14:07:01 +03:00

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-пакет текущей платформы, проверяет его целостность и безопасность, завершает старый процесс, заменяет бинарник и все каталоги из пакета, а затем запускается заново. Перед заменой создаётся резервная копия для автоматического восстановления при ошибке. Файл settings.json и другие файлы, которых нет в архиве, сохраняются. Для работы проверки релизы репозитория должны быть доступны без авторизации.

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

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

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

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

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

  • Новое соединение -- открывает вкладку настройки 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 сек

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

Description
Приложения для теста платы периферийного контроллера на python и PySide6
Readme 556 KiB
Languages
Python 98.1%
PowerShell 1.4%
Shell 0.5%