/* * Get Version */ const struct sub_version* sub_get_version( sub_handle hndl ) { uint8_t rc; static struct sub_version sub_ver; #ifdef LIBUSB_1_0 sub_ver.dll.major = 1; sub_ver.dll.minor = 0; sub_ver.dll.micro = 0; #else const struct usb_version* usb_version; usb_version = usb_get_version(); sub_ver.dll.major = usb_version->dll.major; sub_ver.dll.minor = usb_version->dll.minor; sub_ver.dll.micro = usb_version->dll.micro; sub_ver.driver.major = usb_version->driver.major; sub_ver.driver.minor = usb_version->driver.minor; sub_ver.driver.micro = usb_version->driver.micro; sub_ver.driver.nano = usb_version->driver.nano; #endif sub_ver.dll.nano = __VER__; if(hndl) { struct get_version_resp_st ver; rc=sub_control_request( hndl, CTRL_REQ_TRANSFER_DIR_IN|CTRL_REQ_TYPE_VENDOR|CTRL_REQ_RCPT_DEVICE, SUB_VENDOR_REQUEST, 0, SUB_WINDEX_VER, (char*)&ver, sizeof(ver), 10000 ); if( rc == sizeof(ver) ) { sub_ver.sub_device.micro = ver.micro; sub_ver.sub_device.minor = ver.minor; sub_ver.sub_device.major = ver.major; sub_ver.sub_device.boot = ver.boot; goto fin; } } /* Version unknown */ memset( &sub_ver.sub_device, 0xFF, sizeof(sub_ver.sub_device) ) ; fin: return &sub_ver; }
static void on_refresh(void) { struct usb_bus *bus; struct usb_device *dev; const struct usb_version *version; edit_printf_init(); usb_find_devices(); version = usb_get_version(); if(version) { edit_printf("DLL version:\t%d.%d.%d.%d\r\n", version->dll.major, version->dll.minor, version->dll.micro, version->dll.nano); edit_printf("Driver version:\t%d.%d.%d.%d\r\n\r\n", version->driver.major, version->driver.minor, version->driver.micro, version->driver.nano); } edit_printf("bus/device idVendor/idProduct\r\n"); for (bus = usb_get_busses(); bus; bus = bus->next) { for (dev = bus->devices; dev; dev = dev->next) { int ret, i; char string[256]; usb_dev_handle *udev; edit_printf("%s/%s %04X/%04X\r\n", bus->dirname, dev->filename, dev->descriptor.idVendor, dev->descriptor.idProduct); udev = usb_open(dev); if (udev) { if (dev->descriptor.iManufacturer) { ret = usb_get_string_simple(udev, dev->descriptor.iManufacturer, string, sizeof(string)); if (ret > 0) edit_printf("- Manufacturer : %s\r\n", string); else edit_printf("- Unable to fetch manufacturer string\r\n"); } if (dev->descriptor.iProduct) { ret = usb_get_string_simple(udev, dev->descriptor.iProduct, string, sizeof(string)); if (ret > 0) edit_printf("- Product : %s\r\n", string); else edit_printf("- Unable to fetch product string\r\n"); } if (dev->descriptor.iSerialNumber) { ret = usb_get_string_simple(udev, dev->descriptor.iSerialNumber, string, sizeof(string)); if (ret > 0) edit_printf("- Serial Number: %s\r\n", string); else edit_printf("- Unable to fetch serial number string\r\n"); } usb_close (udev); } if (!dev->config) { edit_printf(" Couldn't retrieve descriptors\r\n"); continue; } for (i = 0; i < dev->descriptor.bNumConfigurations; i++) print_configuration(&dev->config[i]); } } SendMessage(edit_box, WM_SETTEXT, 0, (LPARAM) edit_buffer); edit_printf_free(); }
//---------------------------------------------------------------------------- int usbasp_list(void) { char string[256]; char product[256]; unsigned char info[4]; struct usb_bus *bus; struct usb_device *dev; int usbasp_found; const struct usb_version *version; usb_init(); usb_find_busses(); usb_find_devices(); #ifdef WIN32 version = usb_get_version(); if (version) { printf("libusb-win32 : \n"); printf(" DLL(libusb0.dll) version: %d.%d.%d.%d\n", version->dll.major, version->dll.minor, version->dll.micro, version->dll.nano); printf(" Driver(libusb0.sys) version: %d.%d.%d.%d\n\n", version->driver.major, version->driver.minor, version->driver.micro, version->driver.nano); if (version->dll.major != version->driver.major || version->dll.minor != version->driver.minor || version->dll.micro != version->driver.micro // || version->dll.nano != version->driver.nano ) printf(" *** Warning : DLL, Driver Version mismatch ***\n"); } #endif usbasp_found = 0; for (bus = usb_get_busses(); bus; bus = bus->next) { for (dev = bus->devices; dev; dev = dev->next) { if (dev->descriptor.idVendor == USBDEV_VENDOR && dev->descriptor.idProduct == USBDEV_PRODUCT) { usbhandle = usb_open(dev); if (usbhandle) { /* yeah, we found something */ if (usb_get_string_simple(usbhandle, dev->descriptor.iSerialNumber, string, sizeof(string)) < 0) { strcpy(string, "[unknown]"); } if (usb_get_string_simple(usbhandle, dev->descriptor.iProduct, product, sizeof(product)) < 0) { strcpy(product, "[unnamed product]"); } if (usbasp_get_info(info) == 0) { fprintf(stdout, "%s: Found %s, Serial Number: [%s], Firmware version %X.%02X\n", progname, product, string, info[1], info[0]); // fprintf(stdout, "\t%02X %02X\n", info[2], info[3]); } else { fprintf(stdout, "%s: Found %s, Serial Number: [%s]\n", progname, product, string); } ++usbasp_found; usb_close(usbhandle); } } } } if (!usbasp_found) { fprintf(stderr, "%s: did not find any USBasp device \n", progname); return -1; } return usbasp_found; }
QString BuildTab::buildBuildString() { const char *qt_compile_version = QT_VERSION_STR; #ifdef _GC_SrmDevice_h const char *srm_output = "SRM IO Support<br/>"; #else const char *srm_output = ""; #endif #ifdef _GC_PT_D2XX_h const char *d2xx_output = "D2XX Support<br/>"; #else const char *d2xx_output = ""; #endif #ifdef GC_HAVE_LIBOAUTH const char *oauth_output = "Lib OAUTH Support<br/>"; #else const char *oauth_output = ""; #endif #ifdef GC_HAVE_QWTPLOT3D const char *qwtplot3d_output = "QWT Plot 3D Support<br/>"; #else const char *qwtplot3d_output = ""; #endif #ifdef GC_HAVE_KML const char *libkml_output = "KML Support<br/>"; #else const char *libkml_output = ""; #endif #ifdef GC_HAVE_ICAL const char *libical_output = "iCal support<br/>"; #else const char *libical_output = ""; #endif const char *usbxpress_output = ""; #ifdef WIN32 #ifdef GC_HAVE_USBXPRESS usbxpress_output = "USBXpress support<br/>"; #endif #endif #ifdef GC_HAVE_LIBUSB const char *libusb_output = "LIB USB Support<br/>"; const usb_version *ver = usb_get_version(); // ver->dll.major //libusb_output = "LIB USB: " + ver->dll.major + "." + ver->dll.minor + "<br/>"; #else const char *libusb_output = ""; #endif #ifdef GC_HAVE_VLC QString libvlc_output = "VLC: " + QString(libvlc_get_version()) + "<br/>"; #else QString libvlc_output = ""; #endif const char *soap_output = ""; #if (defined Q_OS_MAC) && (defined GC_HAVE_LION) const char *lion_support_output = "Mac OSX Lion Support<br/>"; #else const char *lion_support_output = ""; #endif return tr( "<center>" "<h2>Build Information</h2>" "<p>Build date: %1 %2<br/>" "Git Commit:%3<br/>" "Qt Build Ver:%4<br/>" "Boost Build Ver:%5.%6.%7<br/>" "GCC Build Ver:%8.%9.%10<br/>" "OS Info:%11<br/>" "<hr/>" "%12" "%13" "%14" "%15" "%16" "%17" "%18" "%19" "%20" "%21" "%22") .arg(__DATE__) .arg(__TIME__) .arg(gitrevision) .arg(qt_compile_version) .arg(BOOST_VERSION / 100000) .arg((BOOST_VERSION / 100) % 1000) .arg(BOOST_VERSION % 100) .arg(__GNUC__) .arg(__GNUC_MINOR__) .arg(__GNUC_PATCHLEVEL__) .arg(osversion) .arg(srm_output) .arg(d2xx_output) .arg(oauth_output) .arg(qwtplot3d_output) .arg(libkml_output) .arg(libical_output) .arg(usbxpress_output) .arg(libusb_output) .arg(libvlc_output) .arg(soap_output) .arg(lion_support_output); }