diff options
Diffstat (limited to 'src/sysinfo.cpp')
| -rw-r--r-- | src/sysinfo.cpp | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/src/sysinfo.cpp b/src/sysinfo.cpp index e1aa88c..57703ae 100644 --- a/src/sysinfo.cpp +++ b/src/sysinfo.cpp @@ -7,16 +7,19 @@ SysInfo::SysInfo(){} SysInfo::~SysInfo(){} // ------------------------------------------------------------------------------------------------ const QString SysInfo::getInfo(const QString& infoName){ - qxtLog->debug() << "[si] requested " << infoName; + qxtLog->debug() << "[sysinfo] requested " << infoName; if (infoName == QString("mac")) return getMACAddress(); else if (infoName == QString("ip")) return getIPAddress(); else if (infoName == QString("all")) return getAllInfos(); + else if (infoName == QString("mbserial")) + return getMainboardSerial(); else if (infoName == QString("json")) return getNames(); /* unknown code */ + qxtLog->debug() << "[sysinfo] unknown requested"; return "info_error"; } // ------------------------------------------------------------------------------------------------ @@ -24,7 +27,7 @@ const QString SysInfo::getMACAddress(){ // Returns MAC address of eth0 for now QNetworkInterface qni = QNetworkInterface::interfaceFromName(QString("eth0")); if (!qni.isValid()){ - qxtLog->debug() << "No interface matching \"eth0\" found."; + qxtLog->debug() << "[sysinfo] MAC Address: No interface matching \"eth0\" found."; return "no_eth0"; } //eth0_index = qni.index(); @@ -43,7 +46,7 @@ const QString SysInfo::getIPAddress(){ } } // still here? - qxtLog->debug() << "ip_error"; + qxtLog->debug() << "[sysinfo] IP Address: ip_error"; return "ip_error"; } // ------------------------------------------------------------------------------------------------ @@ -82,14 +85,38 @@ QString SysInfo::getAllInfos(){ return json; } // ------------------------------------------------------------------------------------------------ +const QString SysInfo::getMainboardSerial(){ + QString out = ""; + struct sysfs_class_device *class_device = sysfs_open_class_device("dmi","id"); + struct dlist *attrlist = sysfs_get_classdev_attributes(class_device); + struct sysfs_device *device = sysfs_get_classdev_device(class_device); + + if(attrlist != NULL){ + struct sysfs_attribute *attr = NULL; + dlist_for_each_data(attrlist, attr, struct sysfs_attribute) { + QVariantMap a; + if(QString(attr->name) == QString("board_serial")){ + out = QString(attr->value); + } + } + qxtLog->debug()<< "[sysinfo] Mainboard Serial: " + out; + return out; + } + qxtLog->debug()<< "[sysinfo] Mainboard Serial: attrlist is null! return: mainboard_serial_error"; + sysfs_close_class_device(class_device); + return "mainboard_serial_error"; +} + + +// ------------------------------------------------------------------------------------------------ QString SysInfo::getScriptOutput(QString cmd) { QProcess *process = new QProcess(); - qDebug()<<"try to open: "<<cmd; + qxtLog->debug()<<"[sysinfo] Script Output: try to open: "<<cmd; process->start(cmd, QIODevice::ReadOnly); if (!process->waitForStarted() ) - qDebug()<<"process couldn't get opened"; + qxtLog->debug()<<"[sysinfo] Script Output: process couldn't get opened"; QString output; process->waitForFinished(); @@ -98,12 +125,12 @@ QString SysInfo::getScriptOutput(QString cmd) while(!txt_stream->atEnd() ) { - qDebug()<<"read output: "; + qxtLog->debug()<<"[sysinfo] Script Output: read output: "; QString tmp_str = txt_stream->readLine(); output += tmp_str; - qDebug()<<tmp_str; + qxtLog->debug()<< "[sysinfo] Script Output: " <<tmp_str; } - qDebug()<<"process finished: "; + qxtLog->debug()<<"[sysinfo] Script Output: process finished: "; return output; } |
