uhum2004

Untitled

Jun 1st, 2013
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. /* testlibusb.c */
  2.  
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <usb.h>
  6. #include "myusbfunctions.h"
  7.  
  8. int main(void)
  9. {
  10. struct usb_bus *bus;
  11. struct usb_device *dev;
  12.  
  13. usb_init();
  14. usb_find_busses();
  15. usb_find_devices();
  16.  
  17. printf("bus/device idVendor/idProduct\n");
  18.  
  19. for (bus = usb_busses; bus; bus = bus->next)
  20. {
  21. for (dev = bus->devices; dev; dev = dev->next)
  22. {
  23. int ret, i;
  24. char string[256];
  25. usb_dev_handle *udev;
  26.  
  27. printf("%s/%s %04X/%04X\n", bus->dirname, dev->filename,
  28. dev->descriptor.idVendor, dev->descriptor.idProduct);
  29.  
  30. udev = usb_open(dev);
  31. if (udev)
  32. {
  33. if (dev->descriptor.iManufacturer)
  34. {
  35. ret = usb_get_string_simple(udev, dev->descriptor.iManufacturer, string, sizeof(string));
  36. if (ret > 0)
  37. printf("- Manufacturer : %s\n", string);
  38. else
  39. printf("- Unable to fetch manufacturer string\n");
  40. }
  41.  
  42. if (dev->descriptor.iProduct)
  43. {
  44. ret = usb_get_string_simple(udev, dev->descriptor.iProduct, string, sizeof(string));
  45. if (ret > 0)
  46. printf("- Product : %s\n", string);
  47. else
  48. printf("- Unable to fetch product string\n");
  49. }
  50.  
  51. if (dev->descriptor.iSerialNumber)
  52. {
  53. ret = usb_get_string_simple(udev, dev->descriptor.iSerialNumber, string, sizeof(string));
  54. if (ret > 0)
  55. printf("- Serial Number: %s\n", string);
  56. else
  57. printf("- Unable to fetch serial number string\n");
  58. }
  59.  
  60. usb_close (udev);
  61. }
  62.  
  63. if (!dev->config)
  64. {
  65. printf(" Couldn't retrieve descriptors\n");
  66. continue;
  67. }
  68.  
  69. for (i = 0; i < dev->descriptor.bNumConfigurations; i++)
  70. {
  71. printf("A felderített konfiguráció kiprintelése:\n");
  72. print_configuration(&dev->config[i]);
  73. }
  74. }
  75. }
  76.  
  77. return 0;
  78. }
  79. /* eof testlibusb.c */
  80.  
  81. ---------------------------------------------
  82.  
  83. /* myusbfunctions.h */
  84. void print_endpoint(struct usb_endpoint_descriptor *endpoint)
  85. {
  86. printf(" bEndpointAddress: %02xh\n", endpoint->bEndpointAddress);
  87. printf(" bmAttributes: %02xh\n", endpoint->bmAttributes);
  88. printf(" wMaxPacketSize: %d\n", endpoint->wMaxPacketSize);
  89. printf(" bInterval: %d\n", endpoint->bInterval);
  90. printf(" bRefresh: %d\n", endpoint->bRefresh);
  91. printf(" bSynchAddress: %d\n", endpoint->bSynchAddress);
  92. }
  93.  
  94.  
  95. void print_altsetting(struct usb_interface_descriptor *interface)
  96. {
  97. int i;
  98.  
  99. printf(" bInterfaceNumber: %d\n", interface->bInterfaceNumber);
  100. printf(" bAlternateSetting: %d\n", interface->bAlternateSetting);
  101. printf(" bNumEndpoints: %d\n", interface->bNumEndpoints);
  102. printf(" bInterfaceClass: %d\n", interface->bInterfaceClass);
  103. printf(" bInterfaceSubClass: %d\n", interface->bInterfaceSubClass);
  104. printf(" bInterfaceProtocol: %d\n", interface->bInterfaceProtocol);
  105. printf(" iInterface: %d\n", interface->iInterface);
  106.  
  107. for (i = 0; i < interface->bNumEndpoints; i++)
  108. print_endpoint(&interface->endpoint[i]);
  109. }
  110.  
  111.  
  112. void print_interface(struct usb_interface *interface)
  113. {
  114. int i;
  115.  
  116. for (i = 0; i < interface->num_altsetting; i++)
  117. print_altsetting(&interface->altsetting[i]);
  118. }
  119.  
  120.  
  121. void print_configuration(struct usb_config_descriptor *config)
  122. {
  123. int i;
  124.  
  125. printf(" wTotalLength: %d\n", config->wTotalLength);
  126. printf(" bNumInterfaces: %d\n", config->bNumInterfaces);
  127. printf(" bConfigurationValue: %d\n", config->bConfigurationValue);
  128. printf(" iConfiguration: %d\n", config->iConfiguration);
  129. printf(" bmAttributes: %02xh\n", config->bmAttributes);
  130. printf(" MaxPower: %d\n", config->MaxPower);
  131.  
  132. for (i = 0; i < config->bNumInterfaces; i++)
  133. print_interface(&config->interface[i]);
  134. }
  135.  
  136. /* myusbfunctions.h */
Advertisement
Add Comment
Please, Sign In to add comment