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

100 lines
2.8 KiB
Markdown

# 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