ttusb_dec_reset.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include <stdio.h>
  2. #include <usb.h>
  3. void dec_reset(struct usb_device *dev)
  4. {
  5. char message[] = {0xaa, 0x00, 0xf1, 0x01, 0x00};
  6. usb_dev_handle *handle = usb_open(dev);
  7. printf("Device found.\n");
  8. if (handle) {
  9. if (!usb_claim_interface(handle, 0)) {
  10. int result;
  11. printf("Reseting device.. ");
  12. result = usb_bulk_write(handle, 3, message,
  13. sizeof(message), 1000);
  14. if (result >= 0)
  15. printf("succeeded.\n");
  16. else
  17. printf("failed. (Error code: %d)\n", result);
  18. } else {
  19. printf("Couldn't claim interface.\n");
  20. }
  21. usb_close(handle);
  22. }
  23. }
  24. int main(int argc, char *argv[])
  25. {
  26. struct usb_bus *busses;
  27. struct usb_bus *bus;
  28. (void) argc;
  29. (void) argv;
  30. usb_init();
  31. usb_find_busses();
  32. usb_find_devices();
  33. busses = usb_get_busses();
  34. for (bus = busses; bus; bus = bus->next) {
  35. struct usb_device *dev;
  36. for (dev = bus->devices; dev; dev = dev->next) {
  37. if (dev->descriptor.idVendor == 0x0b48 &&
  38. (dev->descriptor.idProduct == 0x1006 ||
  39. dev->descriptor.idProduct == 0x1008 ||
  40. dev->descriptor.idProduct == 0x1009)) {
  41. dec_reset(dev);
  42. }
  43. }
  44. }
  45. return 0;
  46. }