From 5434cf4c1972b7cca12a187ff9b9ff5ac07d4612 Mon Sep 17 00:00:00 2001 From: avujic Date: Thu, 21 Dec 2017 20:36:42 +0100 Subject: [PATCH] SelfMaintenance.getCPUTemperature() --- src/SelfMaintenance.cpp | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/src/SelfMaintenance.cpp b/src/SelfMaintenance.cpp index adccabad..3918ab10 100644 --- a/src/SelfMaintenance.cpp +++ b/src/SelfMaintenance.cpp @@ -28,12 +28,49 @@ #include "SelfMaintenance.h" +/*--------------------------------------------------------------------- +* NAME : SelfMaintenance::getCPUTemperature() +* SYNOPSIS : Get CPU temperature working temperature (Celsius) +* DESCRIPTION: +* +---------------------------------------------------------------------*/ static int SelfMaintenance::getCPUTemperature(){ + + unsigned num_cpu = std::thread::hardware_concurrency(); + m_cpuCoresCount = num_cpu; + //--- + ifstream cpu_freq("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq"); + ifstream cpu_temp("/sys/class/thermal/thermal_zone0/temp"); + //--- + strStream << cpu_freq.rdbuf(); + strStream >> m_cpuSingleCoreSpeed; + //--- + strStream.str(""); + strStream << cpu_temp.rdbuf(); + strStream >> m_cpuTemperatureC; + //--- return(0); } - +/*--------------------------------------------------------------------- +* NAME : SelfMaintenance::getFileSystemAvailable() +* SYNOPSIS : File system available in, [0-100%] +* DESCRIPTION: +* +---------------------------------------------------------------------*/ static int SelfMaintenance::getFileSystemAvailable(){ - return(0); + stringstream strStream; + double hdd_size; + double hdd_free; + double fs_level; + ostringstream strConvert; + //--- + struct sysinfo info; + sysinfo( &info ); + //--- + struct statvfs fsinfo; + statvfs("/", &fsinfo); + //--- + return(0); }