feat(ui): сглаживать температуру скользящим средним за 5 замеров
Мгновенное значение плавает на +-1 градус, и цифра мельтешила каждую секунду при полном покое. На экран теперь идёт среднее за TEMP_AVG_SAMPLES последних замеров; агент шлёт раз в секунду, так что это ровно 5 секунд. Сумма пересчитывается заново на каждом шаге, а не копится: на пяти числах это бесплатно, зато нет накопления ошибки округления за сутки непрерывной работы. Окно сбрасывается при обрыве связи, иначе после паузы среднее считалось бы по значениям до обрыва. Тревога переведена на усреднённое значение: иначе экран показывал бы 84, когда мигание уже идёт. Загрузка и график намеренно остались сырыми. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1047ae1452
commit
fcc96f5090
3 files changed
+64
-3
No files matched your search
@@ -241,6 +241,7 @@ Start-ScheduledTask -TaskName 'CPU Temp Agent'
|
||||
| `ALARM_BLINK_MS` | 500 | полупериод мигания |
|
||||
| `PIN_LED` | 8 | светодиод |
|
||||
| `LED_ACTIVE_LEVEL` | `LOW` | уровень, при котором светодиод горит |
|
||||
| `TEMP_AVG_SAMPLES` | 5 | окно сглаживания температуры, замеров |
|
||||
| `SCALE_MIN`, `SCALE_MAX` | 30.0, 90.0 | шкала графика, °C |
|
||||
| `SERIAL_BAUD` | 115200 | скорость обмена; менять вместе с агентом |
|
||||
| `STALE_MS` | 5000 | молчание, после которого показывается `NO DATA` |
|
||||
@@ -253,6 +254,26 @@ Start-ScheduledTask -TaskName 'CPU Temp Agent'
|
||||
пока температура топчется на границе. Поэтому включение и отпускание разведены:
|
||||
загорается на 85, гаснет только при спуске до 82.
|
||||
|
||||
### Почему цифра температуры усредняется
|
||||
|
||||
Мгновенное значение плавает на ±1 °C вокруг стабильного, и цифра мельтешит
|
||||
каждую секунду, хотя ничего не происходит — это отвлекает. На экран выводится
|
||||
среднее за `TEMP_AVG_SAMPLES` последних замеров, то есть за 5 секунд: агент
|
||||
шлёт раз в секунду.
|
||||
|
||||
Плата за это — запаздывание реакции на реальный нагрев примерно на 2–3 секунды.
|
||||
Для температуры процессора незаметно: она физически инертна.
|
||||
|
||||
Что осталось несглаженным и почему:
|
||||
|
||||
- **загрузка CPU** — её скачки настоящие, ради них на неё и смотрят;
|
||||
- **график** — 12 пикселей на диапазон 60 °C дают 5 °C на пиксель, шум там и так
|
||||
не виден, зато история остаётся сырой.
|
||||
|
||||
Тревога считается по усреднённому значению, а не по сырому: иначе экран
|
||||
показывал бы 84, когда мигание уже началось. Побочно это защищает от
|
||||
срабатывания на одиночный выброс — перегрев должен продержаться пару секунд.
|
||||
|
||||
### Почему шкала графика фиксированная
|
||||
|
||||
Автомасштаб отвергнут сознательно: в простое колебания ±1 °C рисовались бы во
|
||||
|
||||
Reference in new issue
Block a user