Второй экран показывает загрузку ОЗУ крупной цифрой и её график со шкалой 0-100 - у памяти она естественная, подбирать нечего. В углу свой значок, планка памяти вместо микросхемы: он же и говорит, какой экран открыт. Тревога в приоритете: при перегреве плата принудительно возвращается на экран процессора и кнопка не работает, пока температура не упадёт. Смысл тревоги в том, что её нельзя прощёлкать. Экран памяти выпадает из листания, если агент не шлёт ключ M - со старым агентом кнопка просто ничего не делает. То же решение подойдёт машинам без дискретной видеокарты. Выбранный экран не запоминается при перезагрузке: хранить негде. Тревоги по памяти нет намеренно - загрузка ОЗУ под 100% здесь обычное рабочее состояние. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
22 lines
934 B
C
22 lines
934 B
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
enum UiScreen : uint8_t {
|
|
UI_SCREEN_CPU = 0,
|
|
UI_SCREEN_RAM = 1,
|
|
};
|
|
|
|
// Инициализирует дисплей и показывает заставку ожидания.
|
|
void uiBegin();
|
|
|
|
// Пополняют историю соответствующего графика. Вызывать раз в секунду и только
|
|
// при свежих данных, чтобы пауза связи не рисовалась как провал.
|
|
void uiPushCpuSample(float tempC);
|
|
void uiPushRamSample(int memPct);
|
|
|
|
// Перерисовывает экран целиком.
|
|
// fresh == false - данные устарели, вместо цифр выводится NO DATA.
|
|
// invert == true - кадр показывается в негативе (фаза мигания тревоги).
|
|
void uiRender(UiScreen screen, bool fresh, float tempC, int loadPct, int memPct, bool invert);
|