//=========================================== // PC-BSD source code // Copyright (c) 2015, PC-BSD Software/iXsystems // Available under the 3-clause BSD license // See the LICENSE file for full details //=========================================== #include "sysadm-general.h" #include "sysadm-systeminfo.h" #include "sysadm-global.h" using namespace sysadm; //PLEASE: Keep the functions in the same order as listed in pcbsd-general.h //Battery Availability QJsonObject SysInfo::batteryInfo(){ QJsonObject retObject; bool ok; int val = General::RunCommand("apm -l").toInt(&ok); if ( ok && (val >= 0 && val <= 100) ) { retObject.insert("battery", "true"); } else { retObject.insert("battery", "false"); return retObject; } // We have a battery, return info about it //Battery Charge Level QString tmp; tmp.setNum(val); retObject.insert("level", tmp); //Battery Charging State int state = General::RunCommand("apm -a").toInt(&ok); if ( ok && state == 0 ) retObject.insert("status", "offline"); else if ( ok && state == 1 ) retObject.insert("status", "charging"); else if ( ok && state == 2 ) retObject.insert("status", "backup"); else retObject.insert("status", "unknown"); int timeleft = General::RunCommand("apm -t").toInt(&ok); if ( ok ) { tmp.setNum(timeleft); retObject.insert("timeleft", tmp); } else { retObject.insert("timeleft", "-1"); } return retObject; } QJsonObject SysInfo::cpuTemps() { // Make sure coretemp is loaded if ( General::RunCommand("kldstat").indexOf("coretemp") == -1 ) General::RunCommand("kldload coretemp"); QJsonObject retObject; QStringList temps; temps = General::RunCommand("sysctl -ai").split("\n").filter(".temperature:"); temps.sort(); for(int i=0; i::::::::] //Note: = [USB, HDRIVE, DVD, SDCARD, UNKNOWN] QStringList devs = General::RunCommand("mount").split("\n"); //Now check the output for(int i=0; i