diff options
Diffstat (limited to 'src/fbgui/sysinfo.cpp')
-rw-r--r-- | src/fbgui/sysinfo.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/fbgui/sysinfo.cpp b/src/fbgui/sysinfo.cpp index 80f4a64..d1ac44f 100644 --- a/src/fbgui/sysinfo.cpp +++ b/src/fbgui/sysinfo.cpp @@ -46,6 +46,7 @@ const QString SysInfo::getInfo(const QString& infoName) { return getMainboardSerial(); else if (infoName == QString("usb")) return getUsbVendorIdProductIdSerialNumber(); + /* unknown code */ LOG4CXX_DEBUG(siLogger, "unknown requested"); return "info_error"; @@ -128,22 +129,35 @@ const QString SysInfo::getUsbVendorIdProductIdSerialNumber() { return "error"; } cnt = libusb_get_device_list(ctx, &devs); //get the list of devices + if (cnt < 0) { LOG4CXX_DEBUG(siLogger, tag + "Get Device Error"); //there was an error } - LOG4CXX_DEBUG(siLogger, tag + cnt + " Devices in list."); //print total number of usb devices + LOG4CXX_DEBUG(siLogger, tag << cnt << " Devices in list."); //print total number of usb devices ssize_t i; //for iterating through the list# for (i = 0; i < cnt; i++) { //printdev(devs[i]); //print specs of this device + QVariantMap infos; libusb_device *dev = devs[i]; + + libusb_config_descriptor *config; + int cr = 1; + cr = libusb_get_config_descriptor(dev, 1, &config); + if (cr < 0) { + LOG4CXX_DEBUG(siLogger, "Couldn't open config desc, code: " << cr); + } + //LOG4CXX_DEBUG(siLogger, "bmAttribute: " << config->bmAttributes); + libusb_device_descriptor desc; int re = libusb_get_device_descriptor(dev, &desc); if (re < 0) { LOG4CXX_DEBUG(siLogger, tag + "failed to get device descriptor"); return "error"; } + infos.insert("vendorId", desc.idVendor); + //LOG4CXX_DEBUG(siLogger, "idVendor: " << infos.value("vendorId").toString()); infos.insert("productId", desc.idProduct); unsigned char string[256]; libusb_device_handle *handle; @@ -158,6 +172,7 @@ const QString SysInfo::getUsbVendorIdProductIdSerialNumber() { LOG4CXX_DEBUG(siLogger, tag + "failed to get SerialNumber"); return "error"; } + //LOG4CXX_DEBUG(siLogger, "SN: " << string); infos.insert("serialnumber", QString((const char *) string)); re = libusb_get_string_descriptor_ascii(handle, desc.iProduct, string, sizeof(string)); @@ -175,11 +190,18 @@ const QString SysInfo::getUsbVendorIdProductIdSerialNumber() { infos.insert("manuacturer", QString((const char *) string)); list << infos; + + /* + for (int i = 0; i < list.size(); ++i) { + LOG4CXX_DEBUG(siLogger, "list: " << list[i].toString()); + }*/ + libusb_close(handle); } libusb_free_device_list(devs, 1); //free the list, unref the devices in it libusb_exit(ctx); //close the session + /* QByteArray json = serializer.serialize(list); LOG4CXX_DEBUG(siLogger, tag + "json object: " + json); |