diff options
author | Niklas Goby | 2011-04-08 17:54:05 +0200 |
---|---|---|
committer | Niklas Goby | 2011-04-08 17:54:05 +0200 |
commit | 107852452a3f9fe7ad2816d8366a1158da103f93 (patch) | |
tree | 26dfdda34122a25af9318ff769c11d624688698d /src | |
parent | Merge branch 'master' of git.openslx.org:lsfks/master-teamprojekt/fbgui (diff) | |
download | fbgui-107852452a3f9fe7ad2816d8366a1158da103f93.tar.gz fbgui-107852452a3f9fe7ad2816d8366a1158da103f93.tar.xz fbgui-107852452a3f9fe7ad2816d8366a1158da103f93.zip |
some changes in the sysinfolibfs clas. we can now get the mainboard serial
number for the hardware hash
Diffstat (limited to 'src')
-rw-r--r-- | src/fbgui.cpp | 2 | ||||
-rw-r--r-- | src/sysinfolibsysfs.cpp | 55 | ||||
-rw-r--r-- | src/sysinfolibsysfs.h | 2 |
3 files changed, 58 insertions, 1 deletions
diff --git a/src/fbgui.cpp b/src/fbgui.cpp index 5527601..494c4e8 100644 --- a/src/fbgui.cpp +++ b/src/fbgui.cpp @@ -24,7 +24,7 @@ fbgui::fbgui() // test for libsys function SysInfoLibsysfs* sil = new SysInfoLibsysfs(); //sil->getInfoAboutNetworkInterface(); - sil->getInfoAboutClassNet(); + sil->getInfoMainboardSerial(); setupLayout(); createActions(); diff --git a/src/sysinfolibsysfs.cpp b/src/sysinfolibsysfs.cpp index 71d0aec..d9bbac8 100644 --- a/src/sysinfolibsysfs.cpp +++ b/src/sysinfolibsysfs.cpp @@ -39,6 +39,61 @@ void SysInfoLibsysfs::getInfoAboutNetworkInterface() sysfs_close_class_device(class_device); } +void SysInfoLibsysfs::getInfoMbSerial() +{ + QJson::Serializer serializer; + QVariantList listOfDevices; + + 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; + QVariantList list; + dlist_for_each_data(attrlist, attr, struct sysfs_attribute) { + QVariantMap a; + if(QString(attr->name) == QString("board_serial")){ + a.insert("name", QString(attr->name)); + a.insert("value", QString(attr->value)); + a.insert("len", QString(attr->len)); + a.insert("path", QString(attr->path)); + a.insert("method", QString(attr->method)); + list << a; + } + } + QByteArray json = serializer.serialize(list); + + qDebug() << json; + return; + } + qDebug() << "attrlist is null!"; + sysfs_close_class_device(class_device); +} + +QString SysInfoLibsysfs::getInfoMainboardSerial(){ + 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); + } + } + + qDebug() << out; + return out; + } + qDebug() << "attrlist is null!"; + sysfs_close_class_device(class_device); + return null; +} + void SysInfoLibsysfs::getInfoAboutClassNet() { QJson::Serializer serializer; diff --git a/src/sysinfolibsysfs.h b/src/sysinfolibsysfs.h index d473843..3da58ce 100644 --- a/src/sysinfolibsysfs.h +++ b/src/sysinfolibsysfs.h @@ -47,6 +47,8 @@ public: virtual ~SysInfoLibsysfs(); void getInfoAboutNetworkInterface(); void getInfoAboutClassNet(); + void getInfoMbSerial(); + QString getInfoMainboardSerial(); }; |