From: Nicolas P. <nic...@aa...> - 2016-05-17 06:48:51
|
Le 13/05/2016 à 17:36, Jeffrey Nichols a écrit : > On 5/13/2016 10:39 AM, Nicolas Pinault wrote: >> Le 13/05/2016 à 15:10, Jeffrey Nichols a écrit : >> I already tried to use "port_numbers" but this field was always blank. >> After updating libusb-1.0, this field is not blank anymore. >> >> What I don't understand is that bus/port_number numbers are not unique. >> On my system : >> IdVendor8086 IdProduct=1E26 bus=1 Address=1 port=0 >> IdVendor8086 IdProduct=1E2D bus=2 Address=1 port=0 >> * IdVendor0204 IdProduct=6025 bus=1 Address=6 port=1 ports = (1, 6, 1) >> IdVendor0424 IdProduct=2513 bus=1 Address=2 port=6 ports = (1, 6) >> + IdVendor046D IdProduct=C061 bus=2 Address=5 port=1 ports = (1, 1) >> IdVendor0529 IdProduct=0001 bus=1 Address=4 port=5 ports = (1, 5) >> IdVendor2CFF IdProduct=0002 bus=1 Address=5 port=2 ports = (1, 6, 2) >> IdVendor413C IdProduct=2107 bus=2 Address=2 port=2 ports = (1, 2) >> + IdVendor8087 IdProduct=0024 bus=2 Address=4 port=1 ports = (1,) >> * IdVendor8087 IdProduct=0024 bus=1 Address=3 port=1 ports = (1,) >> IdVendor8564 IdProduct=4000 bus=3 Address=20 port=8 ports = (8,) >> IdVendor8086 IdProduct=1E31 bus=3 Address=1 port=0 >> >> The lines marked with a + or a * contains same bus/port_number numbers. >> Only port_numbers field is different. >> What does this mean ? > When the bus is different, they're on totally different USB buses > (presumably this corresponds internally to USB root hubs, I'm not sure > of the technical details). That's always the first level of > differentiation. > Sure. It's so obvious I didn't mentioned it. > The port always corresponds to the final number in the ports tuple. > It's the port number on the last hub in the hierarchy. It's not unique > enough to use to distinguish positions in the hierarchy (even when > combined with bus), and not terribly useful in my opinion. That's what I discovered. Only port_numbers is useful. > > I use the tuple (bus, port_numbers) in my application to determine a > device's physical location, so when I tell a device to reboot into > bootloader mode I can find the new device in the same location (as a > device anywhere else could not be the one I'm looking for). My use case is different but the idea is the same. Nicolas |