ESP32: зафиксировать промежуточный NAV v6 UI прототип

This commit is contained in:
AidarKC
2026-06-09 15:22:45 +04:00
parent 32606fe1c2
commit e385bb6bf9
6 changed files with 719 additions and 35 deletions
@@ -4,12 +4,11 @@
## Цель
Этот прототип проверяет только базовую механику экранов, крупных кнопок и свайпов.
Этот прототип проверяет базовую механику экранов, крупных кнопок, свайпов, первичную настройку Wi-Fi и настройку серверных адресов через общий экран редактирования текста.
На этом этапе отсутствуют:
- реальный Wi-Fi;
- реальные серверные проверки;
- логин/пароль;
- логика серверной проверки доступности;
- логин/пароль учётной записи SHiNE;
- PIN;
- кошелёк;
- QR;
@@ -20,12 +19,13 @@
## Экраны
Прототип содержит 5 экранов:
Прототип содержит 6 экранов:
- `HOME`
- `SETTINGS_MENU`
- `WIFI_SCREEN`
- `SERVER_SCREEN`
- `ACCOUNT_SCREEN`
- `TEXT_EDIT_SCREEN`
## HOME
@@ -34,8 +34,15 @@
- ниже `subserver1`;
- сверху справа простые индикаторы `W BAT`;
- по центру крупный текст `STATUS`;
- статус Wi-Fi;
- сохранённый SSID или пометку, что он не сохранён;
- снизу большую кнопку `SETTINGS`.
Статусы Wi-Fi на `HOME`:
- `Wi-Fi not configured`
- `Wi-Fi disconnected`
- `Wi-Fi connected`
Переходы:
- кнопка `SETTINGS` -> `SETTINGS_MENU`;
- свайп влево -> `SETTINGS_MENU`.
@@ -61,6 +68,8 @@
- `Wi-Fi`
- `Server`
Обе видимые карточки меню имеют одинаковый цвет.
Переходы:
- нажатие `Wi-Fi` -> `WIFI_SCREEN`;
- нажатие `Server` -> `SERVER_SCREEN`;
@@ -69,23 +78,52 @@
## WIFI_SCREEN
Экран содержит 2 внутренних режима.
### 1. Overview
Показывает:
- `Wi-Fi`
- `Wi-Fi screen`
- текущий Wi-Fi статус;
- сохранённый SSID;
- статусное сообщение;
- кнопку `SELECT NETWORK`;
- кнопку `CLEAR SAVED WI-FI`;
- кнопку `BACK`.
### 2. Scan Results
После `SELECT NETWORK` выполняется скан доступных Wi-Fi сетей.
Показывает:
- заголовок `SELECT NETWORK`;
- количество или результат сканирования;
- список найденных SSID как крупные кнопки;
- кнопку `SCAN AGAIN`;
- кнопку `BACK`.
Нажатие на SSID открывает `TEXT_EDIT_SCREEN` для ввода пароля.
Переходы:
- свайп вправо -> `SETTINGS_MENU`
- свайп вправо из любого режима `WIFI_SCREEN` -> `SETTINGS_MENU`
- кнопка `BACK` -> `SETTINGS_MENU`
## SERVER_SCREEN
Показывает:
- `Server`
- `Server screen`
- статусное сообщение;
- текущий `Solana RPC` адрес;
- кнопку `SOLANA RPC`;
- текущий `Shine server` адрес;
- кнопку `SHINE SERVER`.
Значения по умолчанию:
- Solana RPC: `https://api.devnet.solana.com`
- Shine server: `https://shineup.me`
Нажатие на любую из двух кнопок открывает `TEXT_EDIT_SCREEN`.
Переходы:
- свайп вправо -> `SETTINGS_MENU`
- кнопка `BACK` -> `SETTINGS_MENU`
## ACCOUNT_SCREEN
@@ -97,6 +135,63 @@
- свайп вправо -> `SETTINGS_MENU`
- кнопка `BACK` -> `SETTINGS_MENU`
## TEXT_EDIT_SCREEN
Общий экран редактирования строковых значений.
Используется для:
- пароля Wi-Fi;
- Solana RPC;
- Shine server.
Показывает:
- заголовок;
- поле ввода, уже заполненное старым значением;
- курсор установлен в конец текста;
- кнопки `SAVE`, `CANCEL`, `DEL`, `CLR`;
- большую экранную клавиатуру.
## Клавиатура
Клавиатура единая для всех текстовых вводов.
Особенности:
- занимает нижнюю часть экрана;
- разбита на 2 страницы;
- переключение страниц выполняется свайпом влево/вправо внутри `TEXT_EDIT_SCREEN`;
- страница 1 содержит в основном буквы и базовые URL-символы;
- страница 2 содержит цифры и дополнительные URL/символьные кнопки;
- есть специальные действия `DEL` и `CLR`.
## Хранение Wi-Fi
Используется `Preferences` (NVS памяти ESP32):
- `wifi_ssid`
- `wifi_pass`
При старте устройства, если сохранён SSID, выполняется попытка подключения к сохранённой сети.
## Хранение серверов
Используется `Preferences` (NVS памяти ESP32):
- `solana_rpc`
- `shine_server`
## Детали клавиатуры
- клавиатура занимает примерно `2/3`-`3/4` высоты экрана;
- сверху остаются только заголовок, подсказка и поле ввода;
- буквы занимают 3 ряда;
- половина букв находится на левой странице, половина на правой;
- на правой странице кнопки тоже стоят в ровных колонках, без сдвига рядов вправо;
- отдельный режим `symbols` тоже разделён на 2 страницы;
- четвёртый ряд содержит:
- переключение `ABC/123`
- `SHIFT`
- `DEL`
- `SAVE`
- `CANCEL`
## Жесты
Поддерживаются направления:
@@ -112,6 +207,8 @@
- `WIFI_SCREEN`: свайп вправо -> `SETTINGS_MENU`
- `SERVER_SCREEN`: свайп вправо -> `SETTINGS_MENU`
- `ACCOUNT_SCREEN`: свайп вправо -> `SETTINGS_MENU`
- `TEXT_EDIT_SCREEN`: свайп влево/вправо -> переключение страниц клавиатуры
- переключение страниц клавиатуры срабатывает только если свайп начался в зоне самой клавиатуры, а не по всему экрану редактора
## Особенность обработки жестов