открытие USB-устройства с помощью libUSB на виртуальной машине - PullRequest
0 голосов
/ 01 января 2019

Я пытаюсь реализовать код из следующего видео 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.

...