63 lines
1.6 KiB
C#
63 lines
1.6 KiB
C#
class SystemReader
|
|
{
|
|
public int _avaibleRam;
|
|
public int _totalRam;
|
|
public int getRam()
|
|
{
|
|
foreach (var line in File.ReadLines("/proc/meminfo"))
|
|
{
|
|
if (line.StartsWith("MemTotal"))
|
|
_totalRam = int.Parse(line.Split(' ', StringSplitOptions.RemoveEmptyEntries)[1]);
|
|
|
|
if (line.StartsWith("MemAvailable"))
|
|
_avaibleRam = int.Parse(line.Split(' ', StringSplitOptions.RemoveEmptyEntries)[1]);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
public double _cpuLoad;
|
|
public int cpuCores = Environment.ProcessorCount;
|
|
|
|
public double getCpuLoad()
|
|
{
|
|
if (File.Exists("/proc/loadavg"))
|
|
{
|
|
string loadStr = File.ReadAllText("/proc/loadavg");
|
|
// první číslo = load za poslední 1 minutu
|
|
_cpuLoad = double.Parse(loadStr.Split(' ')[0], System.Globalization.CultureInfo.InvariantCulture);
|
|
}
|
|
else
|
|
{
|
|
_cpuLoad = -1;
|
|
}
|
|
return _cpuLoad;
|
|
}
|
|
|
|
|
|
public int _cpuTemp;
|
|
|
|
public int getCpuTemp()
|
|
{
|
|
if (File.Exists("/sys/class/thermal/thermal_zone0/temp"))
|
|
{
|
|
string tempStr = File.ReadAllText("/sys/class/thermal/thermal_zone0/temp");
|
|
_cpuTemp = int.Parse(tempStr) / 1000; // převod na °C
|
|
}
|
|
else
|
|
{
|
|
_cpuTemp = -1; // soubor neexistuje
|
|
}
|
|
return _cpuTemp;
|
|
}
|
|
|
|
public double getUptime()
|
|
{
|
|
string uptime = File.ReadAllText("/proc/uptime").Split(' ')[0];
|
|
return double.Parse(uptime, System.Globalization.CultureInfo.InvariantCulture);
|
|
}
|
|
|
|
}
|
|
|