Projekt

Obecné

Profil

Stáhnout (975 Bajtů) Statistiky
| Větev: | Tag: | Revize:
1
import logging
2

    
3
import usb.core
4
import usb.util
5

    
6

    
7
def read_connected_devices():
8
    logging.debug(f'reading all currently connected devices')
9
    detected_devices = []
10

    
11
    busses = usb.busses()
12

    
13
    for bus in busses:
14
        devices = bus.devices
15
        for dev in devices:
16
            serial_number = None
17
            device_info = usb.core.find(idProduct=dev.idProduct)
18
            try:
19
                serial_number = usb.util.get_string(device_info, device_info.iSerialNumber)
20
            except:
21
                # Failed to retrieve information from device
22
                logging.info(f"device idVendor:{dev.idVendor} idProduct:{dev.idProduct} has invalid format")
23
                pass
24

    
25
            if serial_number is not None:
26
                detected_devices.append({
27
                    "vendor_id": dev.idVendor,
28
                    "product_id": dev.idProduct,
29
                    "serial_number": serial_number
30
                })
31

    
32
    return detected_devices
(4-4/4)