feat(ui): экран оперативной памяти и переключение кнопкой BOOT
Второй экран показывает загрузку ОЗУ крупной цифрой и её график со шкалой 0-100 - у памяти она естественная, подбирать нечего. В углу свой значок, планка памяти вместо микросхемы: он же и говорит, какой экран открыт. Тревога в приоритете: при перегреве плата принудительно возвращается на экран процессора и кнопка не работает, пока температура не упадёт. Смысл тревоги в том, что её нельзя прощёлкать. Экран памяти выпадает из листания, если агент не шлёт ключ M - со старым агентом кнопка просто ничего не делает. То же решение подойдёт машинам без дискретной видеокарты. Выбранный экран не запоминается при перезагрузке: хранить негде. Тревоги по памяти нет намеренно - загрузка ОЗУ под 100% здесь обычное рабочее состояние. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4344fa8873
commit
f18090b5b7
8 files changed
+201
-59
No files matched your search
+25
-14
@@ -5,7 +5,25 @@
|
||||
|
||||
---
|
||||
|
||||
## 1. Другие показатели и листалка по кнопке BOOT
|
||||
## 1. Другие показатели и листалка по кнопке BOOT — частично сделано
|
||||
|
||||
**Сделано 2026-09-17:** экран оперативной памяти и переключение кнопкой BOOT.
|
||||
Решения, принятые при реализации, чтобы не пересматривать заново:
|
||||
|
||||
- **Тревога в приоритете.** При перегреве плата принудительно возвращается на
|
||||
экран процессора, и кнопка не работает, пока температура не упадёт. Из трёх
|
||||
вариантов, перечисленных ниже, выбран самый жёсткий: смысл тревоги в том, что
|
||||
её нельзя прощёлкать.
|
||||
- **Выбранный экран не запоминается** при перезагрузке — хранить негде.
|
||||
- **Тревоги по памяти нет:** загрузка ОЗУ под 100 % на этой машине обычное
|
||||
состояние.
|
||||
- **Защита от дребезга** — 50 мс, порог в `config.h`.
|
||||
- **Экран без данных выпадает из листания.** Если агент не шлёт ключ `M`, экран
|
||||
памяти недоступен, и кнопка просто ничего не делает. Это же решение подойдёт
|
||||
для машин без дискретной видеокарты.
|
||||
|
||||
**Осталось:** экраны батареи и сети, а также видеокарта — но у неё свой путь,
|
||||
см. пункт 2.
|
||||
|
||||
**Что хочется.** Показывать не только процессор: видеокарту, оперативную память,
|
||||
диски. Переключать экраны кнопкой **BOOT** на плате — нажал, увидел следующий
|
||||
@@ -18,11 +36,9 @@
|
||||
|
||||
**Что придётся решить при реализации:**
|
||||
|
||||
- **Кнопка BOOT сидит на GPIO9.** Это пин начальной загрузки: при сбросе он
|
||||
должен быть в высоком уровне, иначе плата уйдёт в режим прошивки. Читать его
|
||||
как `INPUT_PULLUP` в работе безопасно, но проверить фактически.
|
||||
- **Дребезг контактов.** Нужна программная защита, иначе одно нажатие пролистает
|
||||
три экрана.
|
||||
- ~~**Кнопка BOOT сидит на GPIO9.**~~ Проверено на практике: чтение через
|
||||
`INPUT_PULLUP` в работе никак не мешает загрузке платы.
|
||||
- ~~**Дребезг контактов.**~~ Сделано: 50 мс, `BUTTON_DEBOUNCE_MS`.
|
||||
- **Свой макет под каждый экран.** На 72×40 не получится «то же самое, только
|
||||
другие цифры»: у памяти уместнее проценты и гигабайты, у диска — температура
|
||||
без графика. Каждый экран проектировать отдельно.
|
||||
@@ -32,14 +48,9 @@
|
||||
- **Что показывать, если данных нет.** Например, в системе нет дискретной
|
||||
видеокарты — экран GPU надо либо пропускать при листании, либо честно писать,
|
||||
что источника нет.
|
||||
- **Запоминать ли выбранный экран** между перезагрузками. Если да, понадобится
|
||||
энергонезависимое хранилище, которого у прошивки сейчас нет вовсе.
|
||||
- **Тревога при листании.** Сейчас перегрев виден всегда, потому что экран один.
|
||||
С листалкой можно стоять на экране памяти и не увидеть, что горит процессор.
|
||||
Нужно решить: принудительно перекидывать на экран CPU, показывать тревогу
|
||||
поверх любого экрана или мигать только светодиодом.
|
||||
|
||||
Последний пункт — самый важный: он затрагивает смысл устройства, а не удобство.
|
||||
- ~~**Запоминать ли выбранный экран**~~ Решено не запоминать: хранилища нет.
|
||||
- ~~**Тревога при листании.**~~ Решено: принудительно перекидывать на экран
|
||||
процессора и блокировать кнопку.
|
||||
|
||||
**Для видеокарты выбран другой путь** — приоритетный экран без кнопки, см.
|
||||
пункт 2. Листалка остаётся в силе для остального: памяти, батареи, сети.
|
||||
|
||||
Reference in new issue
Block a user