USB device objects have names in the form: usb-bus_number.device_number. If usblauncher is called with the -S option, the object name also includes the stack number in front of the bus number. For instance, for a USB device with a stack number of 0, a bus number of 1, and a device number of 3, the device control object would be named usb-0.1.3.
Each device object that usblauncher writes to PPS contains the following fields:
Name | Description | Type | Example |
---|---|---|---|
bus | Bus type | String | USB |
busno | Bus number | Integer | 0x00 |
configuration | Selected configuration | Integer | 1 |
configurations | Number of configurations | Integer | 1 |
device_class | Device class ID | Integer | 0xff |
device_protocol | Device protocol (present only if device_class is nonzero) | Integer | 0xff |
device_subclass | Device subclass ID (present only if device_class is nonzero) | Integer | 0x00 |
devno | Device number | Integer | 0x04 |
drivers_matched | Number of drivers matching the device based on the configuration file rules. A value of 0 means the device is unsupported. | Integer | 1 |
drivers_running | Number of drivers launched for the device. This value can be less than drivers_matched if some drivers haven't been started yet or if some have terminated (possibly in error). | Integer | 0 |
iap | Outcome of probe for the device's iAP2 support. This field is present only if the USB stack is running in host mode and after the device was probed for iAP2 support. | Integer with one of the following values: -1 (when the device doesn't support iAP2 or the probe failed) or 2 (when the device supports iAP2) | 2 |
manufacturer | Manufacturer name | String | Kingston |
max_packet_size0 | Maximum packet size | Integer | 64 |
product | Product name | String | DataTraveler G3 |
product_id | OEM product ID | Integer | 0x1624 |
role_swap | Reason for latest role swap of USB stack. This field is present only after switching the stack from host to device mode to support a third-party application. | String with one of the following values: AppleDevice (for iAP2 in client mode) or DigitaliPodOut (for CarPlay) | AppleDevice |
serial_number | Product serial number | String | 0019E0014A16 A931953F004E |
stack_no | USB stack number specified with -S command-line option for usblauncher. This field differentiates devices when they have the same bus number (busno) and device number (devno) but are managed by different io-usb stacks. |
Integer | 0 |
status | Device status. Normally, this field is present only when the device is being reset; the field is deleted when the reset completes. |
Integer followed by string, in the format: status (message) | When the device is being reset, this field contains: -1 (Device reset). |
topology | Duplicates upstream device and port numbers (devno, upstream_port) and provides upstream information for hub chain. | String containing integers in ordered pairs | (2,1),(0,2)
This value indicates a USB device is attached to hub device 2, port 1, and this hub is connected to the root device, port 2. |
upstream_device_address | USB address where the device is connected. When the device is connected to a host controller, this field is 0. When the device is connected to a USB hub, this field contains the hub's device address. | Integer | 1 |
upstream_host_controller | Host controller number. This field is 0 unless you have multiple USB controllers, in which case it contains the number of the controller that detected the device. | Integer | 0 |
upstream_port | Port number. When the device is connected to a hub, this field contains the port number on the hub. When the device is connected to the host controller, this field is 0. | Integer | 4 |
upstream_port_speed | Port speed. | String with one of the following values: High, Low, or Full | High |
vendor_id | Manufacturer ID | Integer | 0x0951 |
When an overcurrent is detected, usblauncher publishes a special type of device object that represents the USB hub that's reporting the overcurrent condition. The object doesn't provide information on the device causing the condition; in fact, this device is taken off the USB bus and its device, driver, and mount PPS objects are deleted.
The filename of the object is in this format: usb-overcurrent-stackno.busno.devno.portno. The stack number (stackno) is present only if you started usblauncher with the -S option.
The complete object looks like this:
status::-1 (Overcurrent) bus::USB stackno::0 busno::0x00 devno::0x01 portno::3
Once the overcurrent condition is cleared, the overcurrent object is deleted.
When io-usb can't assign a device number to a USB device, usblauncher publishes a device object with fewer attributes than normal to describe the "bad" device. Also, the object's filename is in a different format: usb-overcurrent-stackno.busno.upstream_device_address.upstream_port. The stack number (stackno) is present only if you started usblauncher with the -S option.
The complete object looks like this:
status::48 (Not supported) bus::USB stackno::0 upstream_device_address::3 upstream_host_controller::0 upstream_port::7 upstream_port_speed::High