user@devops:~$ cat README.md
Thermal Watch
# Descripción
Thermal Watch (cpp-thermal-watch) es un monitor termico de Linux escrito en C++23 que lee /sys/class/thermal/thermal_zone*/{temp,type,policy} (temperatura en milligrados, 45000 = 45.0 C), los cooling devices /sys/class/thermal/cooling_device*/{type,max_state,cur_state} con su porcentaje de throttle (cur/max) y barra de progreso con semaforo (rojo >=80%, amarillo >=50%), y la frecuencia/gobernador de cada nucleo desde /sys/devices/system/cpu/cpu*/cpufreq/ (scaling_governor, scaling_cur_freq, scaling_max_freq en GHz). Colores por temperatura: verde <60 C, amarillo 60-umbral, rojo >=umbral (default 80 C, ajustable con --threshold N). Modo watch en vivo cada N segundos (--watch N) con limpieza de pantalla y flush (salida completa incluso con timeout/kill), salida JSON completa para scripting (--json) con estructura {zones[], cooling_devices[], cpus[], summary}, manejo elegante de sistemas sin sensores termicos (VMs/contenedores: mensaje explicito, no crashea), colores ANSI desactivables (--no-color) y 16 tests de auto-verificacion (--selftest) que validan el parseo sintetico de milligrados, el throttle, las barras, el formateo y smoke tests contra sysfs real. Cero dependencias: compilacion directa con g++ -std=c++23.
# Características principales
$ Zonas termicas desde /sys/class/thermal/thermal_zone*/{temp,type,policy}: temperatura en C (milligrados 45000 -> 45.0), tipo de sensor (x86_pkg_temp, acpitz) y politica (step_wise, user_space)
$ Colores por temperatura: verde <60 C, amarillo 60-umbral, rojo >=umbral (default 80 C, ajustable con --threshold N)
$ Cooling devices desde /sys/class/thermal/cooling_device*/{type,max_state,cur_state}: throttle % (cur/max) con barra de progreso y semaforo (rojo >=80%, amarillo >=50%)
$ Frecuencia de CPU desde cpufreq: gobernador (powersave, performance), frecuencia actual y maxima por nucleo en GHz
$ Modo watch en vivo cada N segundos (--watch N) con limpieza de pantalla y flush para salida completa con timeout/kill
$ Salida JSON completa para scripting (--json): zones[], cooling_devices[], cpus[] y summary con max_temp
$ Manejo elegante de sistemas sin sensores termicos (VMs/contenedores): mensaje explicito, no crashea
$ 16 tests de auto-verificacion (--selftest): parseo sintetico de milligrados, throttle, barras, formateo y smoke tests contra sysfs real
# Galería
# Tecnologías utilizadas