Я пытаюсь реализовать код из следующего видео YouTube от moellerIO:
https://www.youtube.com/results?search_query=libusb
#include <iostream>
#include <libusb-1.0/libusb.h>
using namespace std;
union int_thing {
unsigned char usb_data[4];
int32_t number;
};
void error(string s, int err) {
cout << s << " Error: " << libusb_error_name(err) << endl;
exit(err);
}
int main() {
int transfer_size;
int err;
libusb_device_handle* dev;
libusb_init(NULL);
dev = libusb_open_device_with_vid_pid(NULL, 0x0781 , 0x5575);
if (dev == NULL) {
cout << "DEVICE NOT FOUND, exiting." << endl;
return -1;
}
err = libusb_claim_interface(dev, 0);
if (err)
error("Cannot claim interface!", err);
err = libusb_set_interface_alt_setting(dev, 0, 0);
if (err)
error("Cannot set alternate settings!", err);
union int_thing number;
while (true) {
cout << "Send A number: ";
while (true) {
cin >> number.number;
if (cin.good())
break;
//cin.clear;
//cin.ignore( numeric_limits<streamsize>::max(), '\n');
cout << "Try a number that can be expressed in 32 bits: ";
}
err = libusb_bulk_transfer(dev, 0x02, number.usb_data, sizeof(union int_thing), &transfer_size, 1000);
if (err)
error("Bulk OUT transfer failed!", err);
}
}
Я пытаюсь установить успешное соединение с USB-устройством, запросите его интерфейс и отправьте ему номер.позже я буду следовать точным протоколам для передачи информации на запоминающее устройство, но сейчас я буду рад установить соединение.
проблема в том, что я получаю "УСТРОЙСТВО НЕ НАЙДЕНО" всевремя.Я уверен, что я использую правильные учетные данные, которые я выбрал с
lsusb -v -d 0781:5575
, не уверен, что я делаю неправильно, но у меня такое ощущение, что это как-то связано с использованием виртуальной машины?кто-нибудь может дать мне совет?
кстати, я использую Ubuntu на рабочей станции vmware.