# 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](DEVELOPMENT.md). Для Debian 13 x86_64 используйте [build_linux.sh](build_linux.sh); подробности сборки приведены в [BUILD_EXE.md](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 сек | --- ## Документация для разработчиков - [DEVELOPMENT.md](DEVELOPMENT.md) -- настройка окружения, структура проекта, запуск из исходников. - [BUILD_EXE.md](BUILD_EXE.md) -- сборка EXE-файла через PyInstaller. - [Система команд платы v2.x.md](%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%20%D0%BF%D0%BB%D0%B0%D1%82%D1%8B%20v2.x.md) -- описание протокола и команд платы.