Основное (наша работа в этой сессии): - Переименование «subserver» → «homeserver» по всему проекту: основной ESP32-скетч (папка shine_subserver_ui → shine_homeserver_ui, .ino, flash-скрипт, режим burn.sh homeserver-ui), скетч lvgl_nav_minimal_test (ключ homeserver.key:<имя>), spec-доки reference/*, формат PDA (терминология session_type=100 «Homeserver пользователя»), константа SESSION_TYPE_HOMESERVER в JS и Rust (значение 100 не менялось, формат не затронут), pending/future доки, AGENTS.md, DAO-док. Сохранены отдельный lvgl_subserver_touch_test и историческая пометка о рендейме в DERIVATION.md. - Новый источник истины по деривации ключей: Dev_Docs/Keys/DERIVATION.md (Argon2id-секрет из пароля, формула Ed25519(SHA-256(base64(secret)|suffix)), суффиксы root/bch/dev/homeserver.key, Solana-ключ = dev.key). Уточнены роли root (главный/master) и dev (пополняемый кошелёк) в Dev_Docs/Keys/README.md. - UI: убран легаси-путь пустого пароля (derivePasswordSeed и др.), deriveMasterSecretFromPassword бросает ошибку на пустом пароле, register-view блокирует пустой пароль; экран пополнения переведён на канонический device-адрес из preGeneratedKeyBundle (удалён расходящийся deriveWalletFromPassword). Включены также параллельные правки Solana-аудита №3 (были в рабочем дереве, переплетены в lib.rs): - shine_users: defense-in-depth «строгий список аккаунтов» (require!(it.next().is_none())) в init/update economy config и create/update user PDA, плюс описание в doc/programs/shine_users.md; - Dev_Docs/audit/Solana-audit-3-by-Claude-12июня2026.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
47 lines
3.8 KiB
Markdown
47 lines
3.8 KiB
Markdown
# Test Device
|
||
|
||
Скрипт заливает официальные Arduino-примеры для быстрой проверки платы.
|
||
`burn.sh` теперь:
|
||
- сам пытается найти USB-порт ESP32;
|
||
- сначала делает быструю инкрементальную сборку;
|
||
- если быстрая сборка не удалась, автоматически повторяет полную `clean`-сборку.
|
||
|
||
Для режимов `widgets`, `audio` и `hello` рядом должен лежать локальный checkout `official-demo/` из официального репозитория Waveshare. В основной git он не добавляется, потому что это большой внешний набор примеров, библиотек, прошивок и артефактов.
|
||
|
||
Режимы:
|
||
- `widgets` — экран + touch + IMU (пример `05_LVGL_Widgets`)
|
||
- `audio` — динамик/аудио-кодек (пример `07_ES8311`)
|
||
- `hello` — базовый тест экрана (пример `01_HelloWorld`)
|
||
- `simple` — простой кастомный тест: экран + touch + запись/проигрывание + наклон (IMU)
|
||
- `argon2` — генерация masterSecret через Argon2id с SD-картой как памятью (тест скорости)
|
||
- `homeserver-ui` — основной UI-прототип homeserver SHiNE: NVS, PIN, Wi-Fi, серверы, кошелёк, QR, запросы
|
||
- `text-test` — диагностический экран рендера текста: default font, U8g2 ASCII, U8g2 кириллица, кнопки с подписями
|
||
- `gfx-text-test` — тот же тест рендера текста, но уже внутри новой папки `test_sketches/`
|
||
- `gfx-layout-test` — тест геометрии и нижних рядов кнопок
|
||
- `lvgl-basic-test` — минимальный экран на `LVGL` с текстом и кнопками
|
||
- `lvgl-interaction-test` — экран на `LVGL` с большим числом кнопок и сообщением о нажатой кнопке
|
||
- `lvgl-touch-debug-test` — точечная диагностика touch: сырые координаты, маркер точки и большая тест-кнопка `LVGL`
|
||
- `lvgl-official-based-test` — наш минимальный экран, но на максимально близкой к официальному `LVGL_Widgets` инициализации
|
||
- `lvgl-subserver-touch-test` — гибрид: `LVGL`-интерфейс, но display/touch init и raw touch-read взяты из `shine_homeserver_ui`; подтверждено на устройстве, touch работает, зелёных линий по краям нет
|
||
- `lvgl-russian-font-test` — тест кастомного `LVGL`-шрифта с кириллицей: русские кнопки, длинные подписи и статусы
|
||
- `lvgl-nav-minimal-test` — новый минимальный UI-каркас homeserver: `HOME`, `SETTINGS_MENU`, `Wi-Fi`, `Server`, `Account`, свайпы, крупные кнопки и реальная настройка Wi-Fi с сохранением в NVS
|
||
|
||
Запуск:
|
||
|
||
- `./burn.sh widgets`
|
||
- `./burn.sh audio`
|
||
- `./burn.sh hello`
|
||
- `./burn.sh simple`
|
||
- `./burn.sh homeserver-ui`
|
||
- `./burn.sh text-test`
|
||
- `./burn.sh gfx-text-test`
|
||
- `./burn.sh gfx-layout-test`
|
||
- `./burn.sh lvgl-basic-test`
|
||
- `./burn.sh lvgl-interaction-test`
|
||
- `./burn.sh lvgl-touch-debug-test`
|
||
- `./burn.sh lvgl-official-based-test`
|
||
- `./burn.sh lvgl-subserver-touch-test`
|
||
- `./burn.sh lvgl-russian-font-test`
|
||
- `./burn.sh lvgl-nav-minimal-test`
|
||
- `./flash_shine_homeserver_ui.sh` - автоматически находит USB-порт и заливает `shine_homeserver_ui`
|