Virtual Box中的HIDAPI库看不到设备

问题描述 投票:0回答:1

我正在开发与POS设备(如POS打印机)相关的项目。

我正在使用HIDAPI来获取设备的状态。

我的项目必须是跨平台的(我使用的是QT5.12)。所以我在一台PC上通过Virtual Box安装了Windows 10的Ubuntu 18.04,用于在两个系统中测试我的代码。

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都可以检测到我的设备。输出是“无法打开设备”。经过几个小时的努力,我不知道。需要我选择另一个lib吗?还是有另一个问题?

c++ windows-10 virtualbox hidapi
1个回答
0
投票

最后,我发现HIDAPI仅适用于人机界面设备,如鼠标或键盘,因此不适合POS打印机。相反,我使用WINUSB用于Windows端,它现在运行良好。

© www.soinside.com 2019 - 2024. All rights reserved.