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
+10
-4
@@ -2,14 +2,20 @@
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
enum UiScreen : uint8_t {
|
||||
UI_SCREEN_CPU = 0,
|
||||
UI_SCREEN_RAM = 1,
|
||||
};
|
||||
|
||||
// Инициализирует дисплей и показывает заставку ожидания.
|
||||
void uiBegin();
|
||||
|
||||
// Добавляет значение в кольцевой буфер истории. Вызывать раз в секунду
|
||||
// и только при свежих данных, чтобы пауза связи не рисовалась как провал.
|
||||
void uiPushSample(float tempC);
|
||||
// Пополняют историю соответствующего графика. Вызывать раз в секунду и только
|
||||
// при свежих данных, чтобы пауза связи не рисовалась как провал.
|
||||
void uiPushCpuSample(float tempC);
|
||||
void uiPushRamSample(int memPct);
|
||||
|
||||
// Перерисовывает экран целиком.
|
||||
// fresh == false - данные устарели, вместо цифр выводится NO DATA.
|
||||
// invert == true - кадр показывается в негативе (фаза мигания тревоги).
|
||||
void uiRender(bool fresh, float tempC, int loadPct, bool invert);
|
||||
void uiRender(UiScreen screen, bool fresh, float tempC, int loadPct, int memPct, bool invert);
|
||||
Reference in new issue
Block a user