temp-monitor/README.md
2026-01-09 22:04:23 +01:00

2.8 KiB

NVMe Temperature Monitor

Jednoduchá GUI aplikace v C++, která v reálném čase zobrazuje teploty NVMe disků.

Požadavky

  • GTK 4 development balíčky
  • Cairo development balíčky
  • CMake >= 3.16
  • GCC/Clang kompilátor s C++17
  • nvme-cli balíček nainstalovaný

Instalace závislostí (Ubuntu/Debian)

sudo apt-get install libgtk-4-dev libcairo2-dev cmake build-essential nvme-cli

Instalace závislostí (Fedora/RHEL)

sudo dnf install gtk4-devel cairo-devel cmake gcc-c++ nvme-cli

Instalace závislostí (Arch)

sudo pacman -S gtk4 cairo cmake base-devel nvme-cli

Kompilace

cd /home/kamma/projects/nvme-monitor
chmod +x build.sh
./build.sh

Spuštění

sudo ./build/nvme-monitor

Poznámka: Aplikace vyžaduje sudo oprávnění pro čtení informací z NVMe zařízení.

Funkce

  • Detekce všech NVMe disků
  • Čtení teplot z hlavního senzoru a dalších senzorů
  • Reálný čas graf s více řadami (každý disk v jiné barvě)
  • Nastavitelný interval obnovení (100-10000 ms)
  • Tlačítko pro vymazání grafu
  • Status bar s informacemi o počtu zařízení a odečtech
  • Cairo kreslení pro hladké grafy
  • Mřížka a popisky os

Struktura projektu

nvme-monitor/
├── CMakeLists.txt          # Konfigurace CMake
├── src/
│   ├── main.cpp            # Vstupní bod aplikace
│   ├── mainwindow.cpp      # Hlavní okno UI (GTK)
│   ├── nvme_monitor.cpp    # Logika čtení NVME dat
│   └── temperature_chart.cpp # Komponenta grafu (cairo)
├── include/
│   ├── mainwindow.h
│   ├── nvme_monitor.h
│   └── temperature_chart.h
└── build.sh                # Build skript

Použití

  1. Spusťte aplikaci se sudo: sudo ./build/nvme-monitor
  2. Okno se otevře a začne automaticky číst teploty
  3. Používejte spinner pro změnu intervalu obnovení
  4. Stiskněte "Clear Data" pro vymazání grafu
  5. Stiskněte "Quit" pro ukončení aplikace

Poznámky

  • Aplikace parsuje výstup z nvme smart-log příkazů
  • Podporuje více NVME zařízení, každé v jiné barvě
  • Parsuje jak hlavní teplotu, tak dodatečné senzory teploty
  • Graf drží posledních 300 datových bodů pro lepší výkon
  • Kreslení grafů je implementováno s Cairo pro lepší flexibilitu
  • Mřížka se automaticky škáluje podle rozsahu teplot
  1. Používejte spinner pro změnu intervalu obnovení
  2. Stiskněte "Clear Data" pro vymazání grafu

Poznamky

  • Aplikace parsuje výstup z nvme smart-log příkazu
  • Podporuje více NVME zařízení, každé v jiné barvě
  • Parsuje jak hlavní teplotu, tak dodatečné senzory teploty
  • Graph drží posledních 300 datových bodů pro lepší výkon