0

我有一个牙科相机,当按下相机按钮时,我试图让窗户按下空间

我安装了 OEM 软件和驱动程序,它运行良好,可以在按下相机按钮时获取提要并制作快照。我需要为提要和快照使用另一个软件,该软件获取提要但对相机按钮没有反应,它只对空格键按下(oem 驱动程序的一部分)作出反应,所以我解决这个问题的方法是设备按产品 ID 并监听按钮按下事件并重新映射它的空间按下。我几乎被困在这一点上。如何收听来自我拥有的设备的事件?

   public static Device findDCam(){
        // Create the libusb context
        Context context = new Context();

        // Initialize the libusb context
        int result = LibUsb.init(context);
        if (result < 0)
        {
            throw new LibUsbException("Unable to initialize libusb", result);
        }

        // Read the USB device list
        DeviceList list = new DeviceList();
        result = LibUsb.getDeviceList(context, list);
        if (result < 0)
        {
            throw new LibUsbException("Unable to get device list", result);
        }

        try
        {
            // Iterate over all devices and list them
            for (Device device: list)
            {

                DeviceDescriptor descriptor = new DeviceDescriptor();
                result = LibUsb.getDeviceDescriptor(device, descriptor);
                if (result < 0)
                {
                    throw new LibUsbException(
                            "Unable to read device descriptor", result);
                }

                if(descriptor.idProduct()== -3810){
                    System.out.println("D cam found");
                    return device;
                }
            }
        }
        finally
        {
            // Ensure the allocated device list is freed
            LibUsb.freeDeviceList(list, true);
        }

        // Deinitialize the libusb context
        LibUsb.exit(context);
        return null;

    }

我还认为使用 usb4java 可能是不可能的,因为据我所知,如果我想在 USB 端口上收听,我需要从驱动程序那里获得控制权,然后它就没有意义了。也许我全都错了,我应该改用驱动程序?或者也许有一个应用程序可以从特定设备读取按钮按下并重新映射它?

4

1 回答 1

0

如果相机有标准驱动程序,这应该通过这个视频捕获 SDK工作。要快速测试它,请运行包中包含的演示可执行文件,在列表中选择摄像头,选中“网络摄像头快照按钮”复选框并启动摄像头。然后按下相机按钮来测试快照。

于 2019-07-25T06:43:22.527 回答