# 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) ```bash sudo apt-get install libgtk-4-dev libcairo2-dev cmake build-essential nvme-cli ``` ### Instalace závislostí (Fedora/RHEL) ```bash sudo dnf install gtk4-devel cairo-devel cmake gcc-c++ nvme-cli ``` ### Instalace závislostí (Arch) ```bash sudo pacman -S gtk4 cairo cmake base-devel nvme-cli ``` ## Kompilace ```bash cd /home/kamma/projects/nvme-monitor chmod +x build.sh ./build.sh ``` ## Spuštění ```bash 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 3. Používejte spinner pro změnu intervalu obnovení 4. 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