JNode USB device+Port Identifiers

  • USB Device+Port Identifiers
  • This small documents provides "stable" string identifiers for USB devices,appropriate for use in separations and troubleshooting,in JNode.

    The names identify the path used to access a hub port (and hence implicitly identify any device connected there) on a Host.

    If you control the physical cabling of a tree of USB hubs and devices, you control the devices associated with these names.If you don't rewire your USB tree, port identifiers won't change.When you do switch cables, you can figure out the new port ids by using the port numbers on your hubs (or positions, for hubs that don't label their ports).

    There are three basic parts in the string representation,currently separated by single dashes (slashes are also reserved):

    • Type tag usb always. Other sorts of physical address might want to fit into a similar identifier framework.

    • Bus identifier, such as 03.02:0; these are returned by {at USBBus#getBusId}. If the port identifier only has a type tag and bus id, it's referring to the root hub for that bus.
    • Path through hubs, such as 2.4. Each number identifies a port on a hub, using "1" for the first port. "2.4" would mean to use the second port from the root hub, which had better be connected to a hub; then use the fourth port on that hub.

    For Example:
    usb-00:0b.0-3 :- identifying the device on the third port on the root hub of the USB controller on PCI slot 0:0b.0(it is Just an example,many more can be here)

    These names are distinct from everyday user-meaningful names. A convenience method is provided to support simple mappings from user assigned names to physical port identifiers, using a Dictionary(i am not sure yet,But will have a suitable path for it).Use Host methods to enumerate devices which are physically present, unaffected by all naming policies. The model here is direct driver-level access to devices, with security policies to be established separately.

    Note that with USB 2.0 hosts, port ids change depending on what kind of device you plug into the root hub.
    USB 2.0 devices (high speed,480 Mbit/s) get switched to a different controller than USB 1.1 devices(slower, at 12 Mbit/s or 1.5 Mbit/s). The identifiers are consistent and still predictable, but you know whether you're talking about a USB2.0 device or not.

    Give your Opinion Frankly.I need it very very much.

    This Model is under construction in JNode's USB architecture.