View Javadoc
1   /*
2    * Copyright 2016-2022 The OSHI Project Contributors
3    * SPDX-License-Identifier: MIT
4    */
5   package oshi.hardware;
6   
7   import java.util.List;
8   
9   import oshi.annotation.concurrent.Immutable;
10  
11  /**
12   * A USB device is a device connected via a USB port, possibly internally/permanently. Hubs may contain ports to which
13   * other devices connect in a recursive fashion.
14   */
15  @Immutable
16  public interface UsbDevice extends Comparable<UsbDevice> {
17      /**
18       * Name of the USB device
19       *
20       * @return The device name
21       */
22      String getName();
23  
24      /**
25       * Vendor that manufactured the USB device
26       *
27       * @return The vendor name
28       */
29      String getVendor();
30  
31      /**
32       * ID of the vendor that manufactured the USB device
33       *
34       * @return The vendor ID, a 4-digit hex string
35       */
36      String getVendorId();
37  
38      /**
39       * Product ID of the USB device
40       *
41       * @return The product ID, a 4-digit hex string
42       */
43      String getProductId();
44  
45      /**
46       * Serial number of the USB device
47       *
48       * @return The serial number, if known
49       */
50      String getSerialNumber();
51  
52      /**
53       * A Unique Device ID of the USB device, such as the PnPDeviceID (Windows), Device Node Path (Linux), Registry Entry
54       * ID (macOS), or Device Node number (Unix)
55       *
56       * @return The Unique Device ID
57       */
58      String getUniqueDeviceId();
59  
60      /**
61       * Other devices connected to this hub
62       *
63       * @return An {@code UnmodifiableList} of other devices connected to this hub, if any, or an empty list if none
64       */
65      List<UsbDevice> getConnectedDevices();
66  }