Я работаю над проектом, связанным с USB-устройствами, такими как POS-принтеры.
Я использую HIDAPI для получения статуса устройства.
Мой проект должен быть кроссплатформенным (я использую QT5.12).Поэтому я установил Ubuntu 18.04 с Windows 10 через Virtual Box на одном ПК для тестирования моего кода в обеих системах.
Хост Ubuntu и гость Windows.Сейчас я работаю над частью windows, установил libs, настроил ее в файле MyProject.pro, но не могу обнаружить свои устройства.
Вот мой код:
struct hid_device_info *devs, *cur_dev;
devs = hid_enumerate(0x0, 0x0);
cur_dev = devs;
while (cur_dev) {
printf("Device Found\n type: %04hx %04hx\n path: %s\n serial_number: %ls", cur_dev->vendor_id, cur_dev->product_id, cur_dev->path, cur_dev->serial_number);
printf("\n");
printf(" Manufacturer: %ls\n", cur_dev->manufacturer_string);
printf(" Product: %ls\n", cur_dev->product_string);
printf(" Release: %hx\n", cur_dev->release_number);
printf(" Interface: %d\n", cur_dev->interface_number);
printf("\n");
cur_dev = cur_dev->next;
}
hid_free_enumeration(devs);
.
handle = hid_open(0x0dd4, 0x015d, NULL); //my device vid and pid
if (!handle)
{
qFatal("unable to open device");
}
Я уверен, что USB-устройство подключено к VBox.Ни hid_enumerate, ни hid_open не могут обнаружить мое устройство.Вывод «невозможно открыть устройство» .После нескольких часов усилий я понятия не имею.Нужно ли мне выбрать другую библиотеку?Или есть другая проблема?