12 #if defined __FreeBSD__ 14 #include <sys/sysctl.h> 17 #if defined(Q_OS_NETBSD) 18 #include <sys/param.h> 20 #include <sys/sysctl.h> 23 #include "uptimesensor.h" 25 UptimeSensor::UptimeSensor(
int interval ) : Sensor( interval )
27 UptimeSensor::~UptimeSensor()
30 void UptimeSensor::update()
32 #if defined __FreeBSD__ || defined(Q_OS_NETBSD) 33 struct timeval boottime;
38 int days, hours, i, mins, secs;
53 mib[1] = KERN_BOOTTIME;
54 size =
sizeof(boottime);
55 if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 &&
56 boottime.tv_sec != 0) {
57 uptime = now - boottime.tv_sec;
60 days = uptime / 86400;
62 hours = uptime / 3600;
68 TQFile file(
"/proc/uptime");
70 if ( file.open(IO_ReadOnly | IO_Translate) )
73 TQTextStream t( &file );
77 TQRegExp rx(
"^\\d+" );
79 int uptime = rx.cap(0).toInt();
80 int days = uptime / 86400;
81 uptime -= days * 86400;
82 int hours = uptime / 3600;
83 uptime -= hours * 3600;
84 int mins = uptime / 60;
93 TQObjectListIt it( *objList );
97 meter = sp->getMeter();
98 format = sp->getParam(
"FORMAT");
100 if (format.length() == 0 )
102 format =
"%dd %h:%M";
104 format.replace( TQRegExp(
"%d"), TQString::number(days));
105 format.replace( TQRegExp(
"%H"), TQString::number(hours).rightJustify(2,
'0'));
106 format.replace( TQRegExp(
"%M"), TQString::number(mins).rightJustify(2,
'0'));
107 format.replace( TQRegExp(
"%S"), TQString::number(secs).rightJustify(2,
'0'));
108 format.replace( TQRegExp(
"%h"), TQString::number(hours));
109 format.replace( TQRegExp(
"%m"), TQString::number(mins));
110 format.replace( TQRegExp(
"%s"), TQString::number(secs));
112 meter->setValue(format);
116 #if !defined __FreeBSD__ && !defined(Q_OS_NETBSD)