a1ien / rusb

A safe Rust wrapper for libusb.
Other
382 stars 78 forks source link

open_device_with_vid_pid not working as expected #202

Closed Darkskald closed 3 months ago

Darkskald commented 3 months ago

I tried to call the Context method open_device_with_context with a vendor id and product id from which I know that they are present, but calling the method yields None.

When iterating over the devices:

fn main() {
    let context = Context::new().unwrap();
    let devices = context.devices().unwrap();
    for device in devices.iter(){
        println!("{:?}", device.device_descriptor().unwrap());
    }
}

I see

DeviceDescriptor { bLength: 18, bDescriptorType: 1, bcdUSB: 512, bDeviceClass: 0, bDeviceSubClass: 0, bDeviceProtocol: 0, bMaxPacketSize: 64, idVendor: 3768, idProduct: 59906, bcdDevice: 0, iManufacturer: 1, iProduct: 2, iSerialNumber: 3, bNumConfigurations: 1 }
``

but calling

```rust
let mut handle = context.open_device_with_vid_pid(3768, 59906);

yields None.

fpagliughi commented 3 months ago

In order to open the device you would need the proper permissions and, possibly, drivers installed. This can be different depending on the OS you're trying this on.

a1ien commented 3 months ago

Please check that you use proper driver and have correct permission. Also check this https://github.com/libusb/libusb/wiki/Windows#how-to-use-libusb-on-windows if you use rusb on windows