ESP32: зафиксировать тесты и нерабочий LVGL/UI вариант

This commit is contained in:
AidarKC
2026-06-08 15:35:27 +04:00
parent 66975862f7
commit ad0edf3c88
15 changed files with 921 additions and 34 deletions
@@ -18,7 +18,7 @@
- локальный UI на тач-экране;
- хранение настроек и секретов во внутренней памяти `ESP32` через `NVS`;
- русский текст на экране через `UTF-8` + кириллический шрифт `U8g2`;
- русский текст в логике интерфейса; в текущей временной сборке отображение на экране идёт через ASCII-транслитерацию, потому что `U8g2`-шрифты на устройстве временно не рисуются;
- экран пополнения с реальным `solana:` URI и рисованием QR-кода;
- реальное подключение к `Wi-Fi` по сохранённым `SSID/паролю`;
- реальная проверка доступности `API`, `RPC` и `WS`-адресов;
@@ -107,8 +107,8 @@
- Верхняя строка всегда показывает краткий статус устройства:
`PIN`, `Wi-Fi`, `сервер`, `регистрация`.
- Основной язык прототипа: русский.
- Для вывода текста используется `UTF-8`.
- Для кириллицы используется `U8g2`-шрифт с поддержкой `Cyrillic`.
- Для вывода текста в текущей временной сборке используется стандартный шрифт `Arduino_GFX`.
- Русские строки на экране временно показываются в ASCII-транслитерации.
- Кнопки крупные, с тач-ориентированным размером.
- Опасные действия подтверждаются отдельным диалогом.
- После изменения данных конфигурация сразу сохраняется в `NVS`.
@@ -452,23 +452,21 @@ QR должен быть сканируемым, а не декоративны
4. нажать `Разрешить` или `Отклонить`;
5. убедиться, что статус запроса изменился.
## Технические требования к кириллице
## Временный режим текста
Для корректного русского текста скетч обязан:
В текущей диагностической версии:
- хранить строковые литералы в `UTF-8`;
- вызывать `gfx->setUTF8Print(true)`;
- использовать шрифт `U8g2` с поддержкой `Cyrillic`;
- не полагаться на стандартный `ASCII`-шрифт `Arduino_GFX` для русского текста.
Если эти условия нарушены, UI считается сломанным даже при правильной логике экранов.
- строковые литералы в коде остаются русскими и в `UTF-8`;
- перед выводом на экран они временно транслитерируются в ASCII;
- рендер выполняется стандартным шрифтом `Arduino_GFX`;
- это обходной режим, пока `U8g2`-шрифты на устройстве не начнут рисоваться стабильно.
## Критерии ручной проверки
Минимально нужно проверить:
1. устройство загружается и сразу открывает `HOME`; экран блокировки временно отключён;
2. русский текст отображается без кракозябр;
2. текст отображается читаемо хотя бы в ASCII-транслитерации;
3. ввод по экранной клавиатуре работает;
4. после перезагрузки сохранённые поля остаются в памяти;
5. секрет и адрес кошелька сохраняются на устройстве;