Getting CPU Temperature
parent
142f655f7d
commit
20b889f1dc
49
Info.hpp
49
Info.hpp
|
|
@ -12,7 +12,7 @@ namespace Columbus
|
|||
int GetCPUCount();
|
||||
int GetCPUCacheSize();
|
||||
int GetCPUUsage();
|
||||
int GetCPUTemperature();
|
||||
float GetCPUTemperature();
|
||||
unsigned long GetRAMSize();
|
||||
unsigned long GetRAMFree();
|
||||
|
||||
|
|
@ -68,6 +68,53 @@ namespace Columbus
|
|||
#endif
|
||||
}
|
||||
|
||||
float GetCPUTemperature()
|
||||
{
|
||||
#ifdef __linux__
|
||||
int hwmon = 0;
|
||||
std::ifstream name1("/sys/class/hwmon/hwmon0/name");
|
||||
std::ifstream name2("/sys/class/hwmon/hwmon1/name");
|
||||
if (name1.is_open() == false || name2.is_open() == false) return 0;
|
||||
std::string tmp;
|
||||
|
||||
name1 >> tmp;
|
||||
if (tmp.find("coretemp") != std::string::npos) hwmon = 0;
|
||||
name2 >> tmp;
|
||||
if (tmp.find("coretemp") != std::string::npos) hwmon = 1;
|
||||
|
||||
name1.close();
|
||||
name2.close();
|
||||
|
||||
float t = 0.0;
|
||||
std::string hw;
|
||||
if (hwmon == 0) hw = "0";
|
||||
if (hwmon == 1) hw = "1";
|
||||
|
||||
std::ifstream tmp1(("/sys/class/hwmon/hwmon" + hw + "/temp1_input").c_str());
|
||||
std::ifstream tmp2(("/sys/class/hwmon/hwmon" + hw + "/temp2_input").c_str());
|
||||
std::ifstream tmp3(("/sys/class/hwmon/hwmon" + hw + "/temp3_input").c_str());
|
||||
if (tmp1.is_open() != false)
|
||||
{
|
||||
tmp1 >> t;
|
||||
return (t / 1000);
|
||||
}
|
||||
|
||||
if (tmp2.is_open() != false)
|
||||
{
|
||||
tmp2 >> t;
|
||||
return (t / 1000);
|
||||
}
|
||||
|
||||
if (tmp3.is_open() != false)
|
||||
{
|
||||
tmp1 >> t;
|
||||
return (t / 1000);
|
||||
}
|
||||
return 0.0;
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
unsigned long GetRAMSize()
|
||||
{
|
||||
#ifdef __linux__
|
||||
|
|
|
|||
Loading…
Reference in New Issue