summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNiklas Goby2011-04-08 17:54:05 +0200
committerNiklas Goby2011-04-08 17:54:05 +0200
commit107852452a3f9fe7ad2816d8366a1158da103f93 (patch)
tree26dfdda34122a25af9318ff769c11d624688698d /src
parentMerge branch 'master' of git.openslx.org:lsfks/master-teamprojekt/fbgui (diff)
downloadfbgui-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.cpp2
-rw-r--r--src/sysinfolibsysfs.cpp55
-rw-r--r--src/sysinfolibsysfs.h2
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();
};