USB Device Information Discovery Function

  • Share this:

Code introduction


This function is used to discover all connected USB devices and return detailed information for each device, including device description, interface description, vendor ID, product ID, and configuration value.


Technology Stack : PyUSB

Code Type : The type of code

Code Difficulty :


                
                    
import usb.core
import usb.util

def discover_usb_devices():
    """
    Discover all connected USB devices and return their information.
    """
    # Discover all USB devices
    devices = usb.core.find(find_all=True)
    
    # Prepare a list to hold device information
    device_info_list = []
    
    # Iterate over each device
    for device in devices:
        # Get device description
        device_desc = device.get_description()
        
        # Get device configuration
        configurations = device.get_active_configuration()
        
        # Iterate over each configuration
        for configuration in configurations:
            # Iterate over each interface in the configuration
            for interface in configuration:
                # Get interface description
                interface_desc = interface.get_description()
                
                # Create a dictionary with device information
                device_info = {
                    "vendor_id": device.idVendor,
                    "product_id": device.idProduct,
                    "device_desc": device_desc,
                    "interface_desc": interface_desc,
                    "configuration": configuration.bConfigurationValue
                }
                
                # Append device information to the list
                device_info_list.append(device_info)
    
    # Return the list of device information
    return device_info_list                
              
Tags: