10#include "sensorsensor.h"
13SensorSensor::SensorSensor(
int interval,
char tempUnit) : Sensor( interval )
15#if defined __FreeBSD__ || defined(Q_OS_NETBSD)
16 sensorMapBSD[
"VCore 1"] =
"VC0";
17 sensorMapBSD[
"VCore 2"] =
"VC1";
18 sensorMapBSD[
"+3.3V"] =
"V33";
19 sensorMapBSD[
"+5V"] =
"V50P";
20 sensorMapBSD[
"+12V"] =
"V12P";
21 sensorMapBSD[
"-12V"] =
"V12N";
22 sensorMapBSD[
"-5V"] =
"V50N";
23 sensorMapBSD[
"fan1"] =
"FAN0";
24 sensorMapBSD[
"fan2"] =
"FAN1";
25 sensorMapBSD[
"fan3"] =
"FAN2";
26 sensorMapBSD[
"temp1"] =
"TEMP0";
27 sensorMapBSD[
"temp2"] =
"TEMP1";
28 sensorMapBSD[
"temp3"] =
"TEMP2";
32 connect(&ksp, TQ_SIGNAL(receivedStdout(TDEProcess *,
char *,
int )),
33 this,TQ_SLOT(receivedStdout(TDEProcess *,
char *,
int )));
34 connect(&ksp, TQ_SIGNAL(processExited(TDEProcess *)),
35 this,TQ_SLOT(processExited( TDEProcess * )));
41SensorSensor::~SensorSensor()
45void SensorSensor::receivedStdout(TDEProcess *,
char *buffer,
int len )
48 sensorResult += TQString( TQCString(buffer) );
51void SensorSensor::processExited(TDEProcess *)
53 TQStringList stringList = TQStringList::split(
'\n',sensorResult);
55 TQStringList::Iterator it = stringList.begin();
56#if defined __FreeBSD__ || defined(Q_OS_NETBSD)
57 TQRegExp rx(
"^(\\S+)\\s+:\\s+[\\+\\-]?(\\d+\\.?\\d*)");
59 TQRegExp rx(
"^(.+):\\s+[\\+\\-]?(\\d+\\.?\\d*)");
61 while( it != stringList.end())
65 if ( !rx.cap(0).isEmpty())
67 sensorMap[rx.cap(1)] = rx.cap(2);
77 TQObjectListIt lit( *objList );
81 meter = sp->getMeter();
82 format = sp->getParam(
"FORMAT");
83 type = sp->getParam(
"TYPE");
85 if (type.length() == 0)
88 if (format.length() == 0 )
93#if defined __FreeBSD__ || defined(Q_OS_NETBSD)
94 format.replace( TQRegExp(
"%v",
false), sensorMap[sensorMapBSD[type]]);
96 format.replace( TQRegExp(
"%v",
false), sensorMap[type]);
98 meter->setValue(format);
103void SensorSensor::update()
105 ksp.clearArguments();
106#if defined __FreeBSD__ || defined(Q_OS_NETBSD)
107 ksp <<
"mbmon -r -c 1" << extraParams;
109 ksp <<
"sensors" << extraParams;
111 ksp.start( TDEProcess::NotifyOnExit,TDEProcIO::Stdout);
115#include "sensorsensor.moc"