test_usbhid.cpp 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #include <usbhid.h>
  2. #include <iostream>
  3. #include <string>
  4. int main(int argc, char* argv[])
  5. {
  6. UsbHid *usbhid = new UsbHid();
  7. unsigned int pid = 0xF2F7;
  8. unsigned int vid = 0x04D8;
  9. libusb_device_handle *handle;
  10. int i = 0;
  11. std::string str2 = "YK21493";
  12. unsigned char hid_report_out[65];
  13. unsigned char hid_report_in[65];
  14. char serialInput[] = "YK21493";
  15. int res;
  16. struct hid_device_info *devs, *cur_dev;
  17. std::cout << "Get attach devices serial numbers test...\n";
  18. devs = usbhid->enumerate(vid, pid);
  19. if (devs == NULL)
  20. {
  21. if (handle == NULL)
  22. {
  23. // No HID devices found
  24. return 0;
  25. }
  26. }
  27. cur_dev = devs;
  28. while (cur_dev)
  29. {
  30. std::cout << cur_dev->serial_number_ascii << "\n";
  31. std::string str1;
  32. str1 = cur_dev->serial_number_ascii;
  33. if ( str1.compare(str2) == 0 ) {
  34. std::cout << "MATCH\n";
  35. }
  36. //printf("\n%ls\n", cur_dev->serial_number);
  37. cur_dev = cur_dev->next;
  38. i++;
  39. }
  40. usbhid->free_enumeration(devs);
  41. std::cout << "Send command test...\n";
  42. //abrir device
  43. res = usbhid->open(vid, pid, serialInput);
  44. if (res < 0) {
  45. std::cout << "Unable to open device";
  46. return 0;
  47. }
  48. hid_report_out[0] = 0x01; //port 1 off
  49. std::cout << "usbhid->write : " << usbhid->write(hid_report_out, 64) << "\n";
  50. std::cout << "usbhid->read : " << usbhid->read(hid_report_in, 64) << "\n";
  51. usbhid->close();
  52. for (i=0; i < 64; i++)
  53. std::cout << " " << std::hex << (int)hid_report_in[i];
  54. std::cout << std::endl;
  55. return 0;
  56. }