100 lines
2.8 KiB
Markdown
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
|