/** * system_monitor.h - 系统资源监控(CPU/内存/温度/磁盘) * fix24 v24: Web管理功能批次 */ #ifndef SYSTEM_MONITOR_H #define SYSTEM_MONITOR_H #include #include struct SystemStatus { // CPU double cpu_usage_percent; // CPU 使用率 (%) int cpu_core_count; // CPU 核心数 std::vector cpu_per_core; // 每核使用率 double cpu_load_1min; // 1分钟负载 double cpu_load_5min; // 5分钟负载 double cpu_load_15min; // 15分钟负载 // 内存 long mem_total_mb; // 总内存 (MB) long mem_used_mb; // 已用内存 (MB) long mem_available_mb; // 可用内存 (MB) double mem_usage_percent; // 内存使用率 (%) // 温度 double cpu_temp; // CPU 温度 (°C) bool temp_available; // 温度传感器是否可用 // 磁盘 long disk_total_gb; // 磁盘总容量 (GB) long disk_used_gb; // 已用 (GB) long disk_available_gb; // 可用 (GB) double disk_usage_percent; // 磁盘使用率 (%) // 系统信息 std::string hostname; std::string kernel_version; std::string uptime_string; long uptime_seconds; // 进程信息 int plate_rec_pid; long plate_rec_rss_mb; // PlateRecApp 内存占用 (MB) double plate_rec_cpu_percent; // PlateRecApp CPU 占用 (%) }; namespace sysmon { // 获取系统状态快照 SystemStatus get_system_status(); // 获取 CPU 使用率(两次采样差值计算) double get_cpu_usage(int sample_ms = 200); // 获取 CPU 温度(从 /sys/class/thermal) double get_cpu_temperature(); // 获取内存信息(从 /proc/meminfo) void get_memory_info(long &total_mb, long &used_mb, long &avail_mb, double &percent); // 获取磁盘信息 void get_disk_info(const std::string &path, long &total_gb, long &used_gb, long &avail_gb, double &percent); // 获取系统启动时间 std::string get_uptime_str(long &seconds); // 获取负载均值 void get_load_avg(double &load1, double &load5, double &load15); // 获取当前进程资源占用 void get_process_resource(int pid, long &rss_mb, double &cpu_percent); // 格式化文件大小 std::string format_size(long mb); } // namespace sysmon #endif // SYSTEM_MONITOR_H