From b15421305c31827d28ae48b8e66c9964ab8a7b9a Mon Sep 17 00:00:00 2001 From: Vitali Date: Tue, 15 Sep 2026 01:08:11 +0700 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20=D0=B2=20=D0=B1=D1=8D=D0=BA=D0=BB=D0=BE=D0=B3=20?= =?UTF-8?q?=D0=BF=D0=BB=D0=B0=D0=BD=20=D0=BF=D0=BE=20=D0=B2=D0=B8=D0=B4?= =?UTF-8?q?=D0=B5=D0=BE=D0=BA=D0=B0=D1=80=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Выбран приоритетный экран, а не листалка: устройство смотрится боковым зрением и должно само показывать то, что ближе к своему порогу. Совмещённый экран отвергнут по измерениям - вторая температура влезает только шрифтом 5x7, и смысл крупной цифры теряется. Отдельным пунктом записан опыт, который надо поставить до реализации: проверить, будит ли опрос дискретную видеокарту и не начнёт ли мониторинг сам расходовать батарею. Измеритель есть - датчик мощности разряда батареи, прав администратора он не требует. Записана и главная ловушка подхода: при близких к порогам показателях экран начнёт скакать между ними, нужна задержка переключения. Co-Authored-By: Claude Opus 5 --- CPU_temp/docs/BACKLOG.md | 88 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 4 deletions(-) diff --git a/CPU_temp/docs/BACKLOG.md b/CPU_temp/docs/BACKLOG.md index 2ac1af3..af5a0f7 100644 --- a/CPU_temp/docs/BACKLOG.md +++ b/CPU_temp/docs/BACKLOG.md @@ -41,6 +41,9 @@ Последний пункт — самый важный: он затрагивает смысл устройства, а не удобство. +**Для видеокарты выбран другой путь** — приоритетный экран без кнопки, см. +пункт 2. Листалка остаётся в силе для остального: памяти, батареи, сети. + ### Что фактически доступно на этой машине Проверено перебором датчиков через `LibreHardwareMonitorLib` после установки @@ -80,7 +83,84 @@ NVIDIA отдаёт её через свой драйвер, ядро для э --- -## 2. Обрезание строки при 100° и 100% +## 2. Мониторинг видеокарты: приоритетный экран + +**Выбранный подход.** Не листалка, а **приоритетный экран**: плата сама +показывает то, что ближе к своему порогу. Греется видеокарта — показывает её, +в простое показывает процессор по умолчанию. + +Обоснование: устройство стоит на столе и смотрится боковым зрением, от него +нужен ответ на один вопрос — «всё ли в порядке». Листалка заставляет либо жать +кнопку, либо ждать нужного экрана. Значок в углу при этом естественно +превращается в указатель, чьи данные показаны, и понадобится второй значок — +видеокарты. + +Совмещённый экран отвергнут по измерениям: свободно 17 пикселей по ширине, +вторая температура влезет только шрифтом 5×7, и смысл крупной цифры теряется. + +### Сторона агента + +Работа одинакова для любого способа отображения и не ломает совместимость: +прошивка игнорирует незнакомые ключи, поэтому агента можно обновить раньше +прошивки. + +- включить `IsGpuEnabled`; +- брать `Temperature/GPU Core` и `Load/GPU Core`; +- добавить в строку ключи `G=` (температура) и `GL=` (загрузка): + `T=67.0;L=34;G=61.0;GL=88`; +- **опрашивать видеокарту реже процессора**, примерно раз в 5 секунд (см. ниже). + +Права администратора для видеокарты не нужны — NVIDIA отдаёт температуру через +свой драйвер, а не через MSR. + +### Сторона прошивки + +- **Свои пороги на каждый показатель.** У процессора 85/82. У ноутбучной + RTX 3050 Ti предел около 87, так что пороги будут другими — подобрать, + а не копировать. +- **Задержка переключения.** Главная ловушка подхода: когда оба показателя + близки к своим порогам, экран начнёт скакать между ними каждую секунду. Нужно + либо минимальное время удержания экрана (5–10 секунд), либо заметный отрыв + по «близости к порогу», при котором происходит переключение. +- **Свой буфер истории на каждый показатель** — по 72 байта, памяти достаточно. +- **Свой значок** для видеокарты, рядом с существующим значком процессора. +- **Устаревание по каждому ключу отдельно.** Если данных по видеокарте нет + дольше N секунд, её экран просто не участвует в выборе. Это же снимает вопрос, + что делать на машине без дискретной видеокарты: экран не появится никогда. +- **Сглаживание.** Температуру видеокарты усреднять так же, как процессорную, + но окно считать в замерах, а не в секундах: при опросе раз в 5 секунд окно + из 5 замеров даст 25 секунд, что слишком много. Вероятно, хватит 2–3. + +--- + +## 2a. Сначала проверить: будит ли опрос видеокарту + +**Выполнить до реализации.** У ноутбука переключаемая графика, и в простое +дискретная видеокарта уходит в сон. Опрос её датчиков может будить её и мешать +энергосбережению — то есть мониторинг начнёт сам расходовать батарею и греть +машину. Сейчас она отвечает (39 °C), значит не спит, но в глубоком простое +поведение будет другим. + +**Как проверить.** Прямой измеритель уже есть: у батареи читается датчик +`Power/Charge/Discharge Rate` в ваттах, и права администратора для него не +нужны. + +1. Отключить ноутбук от сети, оставить машину в простое, не трогать ввод. +2. Замер А: 10 минут писать мощность разряда **без** опроса видеокарты + (`IsGpuEnabled = false`), раз в 10 секунд. +3. Замер Б: 10 минут то же самое **с** опросом видеокарты раз в секунду. +4. Сравнить средние. Заодно записывать `GpuNvidia Power/GPU Package`: если при + опросе он перестаёт падать до нуля — видеокарта не засыпает. + +**Что делать с результатом.** Разница в пределах шума — опрашивать раз в +секунду, как процессор. Разница заметная (скажем, больше половины ватта) — +оставить опрос раз в 5 секунд или реже и запомнить это решение здесь. + +Оценка: около десяти минут работы плюс двадцать минут ожидания замеров. + +--- + +## 3. Обрезание строки при 100° и 100% При трёхзначной температуре и трёхзначной загрузке верхняя строка занимает 79 пикселей из 72: `100` — 49 px, зазор 2, `100%` — 28 px. Лишние 7 пикселей @@ -96,7 +176,7 @@ NVIDIA отдаёт её через свой драйвер, ядро для э --- -## 3. Автозапуск не проверен перезагрузкой +## 4. Автозапуск не проверен перезагрузкой Задание Планировщика `CPU Temp Agent` зарегистрировано с триггером «при входе в систему», запускается вручную и работает. Живой перезагрузкой триггер не @@ -107,7 +187,7 @@ NVIDIA отдаёт её через свой драйвер, ядро для э --- -## 4. Скрипт заливки +## 5. Скрипт заливки Цикл «остановить агента → залить прошивку → запустить агента» делается тремя командами вручную. Пока правок мало, это терпимо; если работа по экрану @@ -118,7 +198,7 @@ NVIDIA отдаёт её через свой драйвер, ядро для э --- -## 5. Вес обзорного изображения +## 6. Вес обзорного изображения `docs/promo.png` весит 2,1 МБ при исходниках примерно на 30 КБ. Сжатие до 300–500 КБ не ухудшило бы читаемость, но старый файл всё равно останется в