SHA256
ESP32: добавить NAV v8 с account и Wi-Fi reconnect
This commit is contained in:
+65
-8
@@ -19,19 +19,22 @@
|
||||
|
||||
## Экраны
|
||||
|
||||
Прототип содержит 6 экранов:
|
||||
Прототип содержит 8 экранов:
|
||||
- `HOME`
|
||||
- `SETTINGS_MENU`
|
||||
- `WIFI_SCREEN`
|
||||
- `SERVER_SCREEN`
|
||||
- `ACCOUNT_SCREEN`
|
||||
- `ACCOUNT_SUBSERVER_SCREEN`
|
||||
- `ACCOUNT_SECRET_SCREEN`
|
||||
- `TEXT_EDIT_SCREEN`
|
||||
|
||||
## HOME
|
||||
|
||||
Показывает:
|
||||
- сверху слева `login`;
|
||||
- ниже `subserver1`;
|
||||
- сверху слева значение логина или `login not set`;
|
||||
- ниже значение сабсервера или `subserver not set`;
|
||||
- третьей строкой `secret not set`, если секрет ещё не помечен как установленный;
|
||||
- сверху справа простые индикаторы `W BAT`;
|
||||
- по центру крупный текст `STATUS`;
|
||||
- статус Wi-Fi;
|
||||
@@ -128,12 +131,44 @@
|
||||
## ACCOUNT_SCREEN
|
||||
|
||||
Показывает:
|
||||
- `Account`
|
||||
- `Account screen`
|
||||
- заголовок `ACCOUNT`;
|
||||
- статусное сообщение;
|
||||
- кнопку `Login (<value|not set>)`;
|
||||
- кнопку `Subserver (<value|not set>)`;
|
||||
- кнопку `Secret (<*****|not set>)`.
|
||||
|
||||
Переходы:
|
||||
- свайп вправо -> `SETTINGS_MENU`
|
||||
- кнопка `BACK` -> `SETTINGS_MENU`
|
||||
- `Login` -> `TEXT_EDIT_SCREEN`
|
||||
- `Subserver` -> `ACCOUNT_SUBSERVER_SCREEN`
|
||||
- `Secret` -> `ACCOUNT_SECRET_SCREEN`
|
||||
|
||||
## ACCOUNT_SUBSERVER_SCREEN
|
||||
|
||||
Показывает:
|
||||
- текущий `subserver`;
|
||||
- рекомендацию оставить `subserver1`, если устройство одно;
|
||||
- кнопку `USE SUBSERVER1`;
|
||||
- кнопку `EDIT MANUALLY`;
|
||||
- кнопку `BACK`.
|
||||
|
||||
Переходы:
|
||||
- `USE SUBSERVER1` -> сохраняет `subserver1` и возвращает в `ACCOUNT_SCREEN`
|
||||
- `EDIT MANUALLY` -> `TEXT_EDIT_SCREEN`
|
||||
- свайп вправо -> `ACCOUNT_SCREEN`
|
||||
|
||||
## ACCOUNT_SECRET_SCREEN
|
||||
|
||||
Пока это заглушка.
|
||||
|
||||
Показывает:
|
||||
- текущий статус секрета `set/not set`;
|
||||
- сообщение, что настройка секрета пока не реализована;
|
||||
- кнопку `BACK`.
|
||||
|
||||
Переходы:
|
||||
- свайп вправо -> `ACCOUNT_SCREEN`
|
||||
- `BACK` -> `ACCOUNT_SCREEN`
|
||||
|
||||
## TEXT_EDIT_SCREEN
|
||||
|
||||
@@ -147,7 +182,9 @@
|
||||
Показывает:
|
||||
- заголовок;
|
||||
- поле ввода, уже заполненное старым значением;
|
||||
- курсор установлен в конец текста;
|
||||
- новые символы всегда добавляются только в конец текста;
|
||||
- визуальный курсор не показывается;
|
||||
- пароль Wi-Fi показывается открыто, без маскировки точками;
|
||||
- кнопки `SAVE`, `CANCEL`, `DEL`, `CLR`;
|
||||
- большую экранную клавиатуру.
|
||||
|
||||
@@ -161,6 +198,8 @@
|
||||
- переключение страниц выполняется свайпом влево/вправо внутри `TEXT_EDIT_SCREEN`;
|
||||
- страница 1 содержит в основном буквы и базовые URL-символы;
|
||||
- страница 2 содержит цифры и дополнительные URL/символьные кнопки;
|
||||
- переключение `ABC/123` и `SHIFT` не должно очищать уже введённый текст;
|
||||
- переключение страниц клавиатуры свайпом тоже не должно очищать уже введённый текст, включая цифры, символы и уже набранные заглавные буквы;
|
||||
- есть специальные действия `DEL` и `CLR`.
|
||||
|
||||
## Хранение Wi-Fi
|
||||
@@ -168,29 +207,45 @@
|
||||
Используется `Preferences` (NVS памяти ESP32):
|
||||
- `wifi_ssid`
|
||||
- `wifi_pass`
|
||||
- `wifi_known_good`
|
||||
|
||||
При старте устройства, если сохранён SSID, выполняется попытка подключения к сохранённой сети.
|
||||
|
||||
Если сеть раньше уже была успешно подключена и помечена как валидная:
|
||||
- после потери связи устройство автоматически пытается переподключиться;
|
||||
- первые повторные попытки идут раз в `10` секунд;
|
||||
- если связи нет долго, интервал увеличивается до `30` секунд.
|
||||
|
||||
## Хранение серверов
|
||||
|
||||
Используется `Preferences` (NVS памяти ESP32):
|
||||
- `solana_rpc`
|
||||
- `shine_server`
|
||||
|
||||
## Хранение аккаунта
|
||||
|
||||
Используется `Preferences` (NVS памяти ESP32):
|
||||
- `login`
|
||||
- `subserver`
|
||||
- `secret_set`
|
||||
|
||||
## Детали клавиатуры
|
||||
|
||||
- клавиатура занимает примерно `2/3`-`3/4` высоты экрана;
|
||||
- сверху остаются только заголовок, подсказка и поле ввода;
|
||||
- сверху остаются только заголовок и поле ввода;
|
||||
- буквы занимают 3 ряда;
|
||||
- половина букв находится на левой странице, половина на правой;
|
||||
- на правой странице кнопки тоже стоят в ровных колонках, без сдвига рядов вправо;
|
||||
- отдельный режим `symbols` тоже разделён на 2 страницы;
|
||||
- 3 основных ряда клавиш и нижний служебный ряд увеличены по высоте;
|
||||
- клавиши дополнительно увеличены по высоте по сравнению с предыдущим промежуточным вариантом;
|
||||
- четвёртый ряд содержит:
|
||||
- переключение `ABC/123`
|
||||
- `SHIFT`
|
||||
- `DEL`
|
||||
- `SAVE`
|
||||
- `CANCEL`
|
||||
- ниже рамки клавиатурного блока остаётся отдельная тёмная полоса с версией `NAV v7`.
|
||||
|
||||
## Жесты
|
||||
|
||||
@@ -207,6 +262,8 @@
|
||||
- `WIFI_SCREEN`: свайп вправо -> `SETTINGS_MENU`
|
||||
- `SERVER_SCREEN`: свайп вправо -> `SETTINGS_MENU`
|
||||
- `ACCOUNT_SCREEN`: свайп вправо -> `SETTINGS_MENU`
|
||||
- `ACCOUNT_SUBSERVER_SCREEN`: свайп вправо -> `ACCOUNT_SCREEN`
|
||||
- `ACCOUNT_SECRET_SCREEN`: свайп вправо -> `ACCOUNT_SCREEN`
|
||||
- `TEXT_EDIT_SCREEN`: свайп влево/вправо -> переключение страниц клавиатуры
|
||||
- переключение страниц клавиатуры срабатывает только если свайп начался в зоне самой клавиатуры, а не по всему экрану редактора
|
||||
|
||||
|
||||
Reference in New Issue
Block a user