Release ext-sysmon-1.1

port from python to cpp
This commit is contained in:
arcan1s
2013-08-26 04:30:46 +04:00
parent 669571e803
commit 17efef871a
3 changed files with 35 additions and 233 deletions

View File

@ -60,40 +60,33 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source)
key = QString("GPU");
if (gpudev == QString("nvidia"))
{
try
f_out = popen("nvidia-smi -q -d UTILIZATION | grep Gpu | tail -n1 2>&1", "r");
fgets (output, 256, f_out);
if ((output[0] == '\0') ||
(QString(output).split(QString(" "), QString::SkipEmptyParts).count() < 2))
value = QString(" N\\A");
else
{
f_out = popen("nvidia-smi -q -d UTILIZATION | grep Gpu | tail -n1 2>&1", "r");
fgets (output, 256, f_out);
if (output[0] == '\0')
throw;
out = QString(output).split(QString(" "), QString::SkipEmptyParts)[2];
sprintf (val, "%5.1f", out.left(out.count()-2).toFloat(&ok));
value = QString(val);
pclose(f_out);
}
catch(std::exception &e)
{
value = QString(" N\\A");
}
pclose(f_out);
}
else if (gpudev == QString("ati"))
{
try
f_out = popen("aticonfig --od-getclocks | grep load | tail -n1 2>&1", "r");
fgets (output, 256, f_out);
if ((output[0] == '\0') ||
(QString(output).split(QString(" "), QString::SkipEmptyParts).count() < 3))
value = QString(" N\\A");
else
{
f_out = popen("aticonfig --od-getclocks | grep load | tail -n1 2>&1", "r");
fgets (output, 256, f_out);
if (output[0] == '\0')
throw;
printf ("lol?");
out = QString(output).split(QString(" "), QString::SkipEmptyParts)[3];
sprintf (val, "%5.1f", out.left(out.count()-2).toFloat(&ok));
value = QString(val);
pclose(f_out);
}
catch(std::exception &e)
{
value = QString(" N\\A");
}
pclose(f_out);
}
else
{
@ -108,38 +101,32 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source)
key = QString("GPUTemp");
if (gpudev == QString("nvidia"))
{
try
f_out = popen("nvidia-smi -q -d TEMPERATURE | grep Gpu | tail -n1 2>&1", "r");
fgets (output, 256, f_out);
if ((output[0] == '\0') ||
(QString(output).split(QString(" "), QString::SkipEmptyParts).count() < 2))
value = QString(" N\\A");
else
{
f_out = popen("nvidia-smi -q -d TEMPERATURE | grep Gpu | tail -n1 2>&1", "r");
fgets (output, 256, f_out);
if (output[0] == '\0')
throw;
out = QString(output).split(QString(" "), QString::SkipEmptyParts)[2];
sprintf (val, "%4.1f", out.toFloat(&ok));
value = QString(val);
pclose(f_out);
}
catch(std::exception &e)
{
value = QString(" N\\A");
}
pclose(f_out);
}
else if (gpudev == QString("ati"))
{
try
f_out = popen("aticonfig --od-gettemperature | grep Temperature | tail -n1 2>&1", "r");
fgets (output, 256, f_out);
if ((output[0] == '\0') ||
(QString(output).split(QString(" "), QString::SkipEmptyParts).count() < 4))
value = QString(" N\\A");
else
{
f_out = popen("aticonfig --od-gettemperature | grep Temperature | tail -n1 2>&1", "r");
fgets (output, 256, f_out);
if (output[0] == '\0')
throw;
out = QString(output).split(QString(" "), QString::SkipEmptyParts)[4];
sprintf (val, "%4.1f", out.toFloat(&ok));
value = QString(val);
}
catch(std::exception &e)
{
value = QString(" N\\A");
}
pclose(f_out);
}
else
@ -158,22 +145,19 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source)
{
qb = hdddev[i].toUtf8();
dev = qb.data();
sprintf(command, "sudo hddtemp %s 2>&1", dev);
try
sprintf(command, "hddtemp %s", dev);
f_out = popen(command, "r");
fgets(output, 256, f_out);
if ((output[0] == '\0') ||
(QString(output).split(QString(":"), QString::SkipEmptyParts).count() < 3))
value = QString(" N\\A");
else
{
f_out = popen(command, "r");
fgets(output, 256, f_out);
if (output[0] == '\0')
throw;
out = QString(output).split(QString(":"), QString::SkipEmptyParts)[2];
sprintf (val, "%4.1f", out.left(out.count()-4).toFloat(&ok));
value = QString(val);
pclose(f_out);
}
catch(std::exception &e)
{
value = QString(" N\\A");
}
pclose(f_out);
if (ok == false)
value = QString(" N\\A");
setData(source, hdddev[i], value);