import platform, sys import serial.tools.list_ports # MacOS Catalina: # platform.system == "Darwin" # Attrs: device, manufacturer, product, vid, pid, location, serial_number # # Ubuntu 18.04: # platform.system == "Linux" # Attrs: device, manufacturer, product, vid, pid, location, serial_number # # Windows 7: # platform.system, platform.release == "Windows", "7" # Attrs: device, vid, pid, location, serial_number # (manufacturer == "InterBiometrics") # # Windows 10: # platform.system, platform.release == "Windows", "10" # Attrs: device, vid, pid, location, serial_number # (manufacturer == "Microsoft") print("platform.system: %s" % platform.system()) print("platform.version: %s" % platform.version()) print("platform.release: %s" % platform.release()) ports = serial.tools.list_ports.comports() i = 0 for port in ports: i += 1 print("Port %d:" % i) if port.device: print(" device: '%s'" % port.device) if port.name: print(" name: '%s'" % port.name) if port.hwid: print(" hwid: '%s'" % port.hwid) if port.manufacturer: print(" manufacturer: '%s'" % port.manufacturer) if port.product: print(" product: '%s'" % port.product) if port.vid: print(" vid: %04x" % port.vid) if port.pid: print(" pid: %04x" % port.pid) if port.location: print(" location: '%s'" % port.location) if port.serial_number: print(" serial_number: '%s'" % port.serial_number) if port.interface: print(" interface: '%s'" % port.interface) if len(sys.argv) < 2 or sys.argv[1] != "loop": sys.exit(0) # Loop checking that .location is always valid for a Weazle while True: for port in serial.tools.list_ports.comports(): if port.vid == 0x1209: if not port.location: print("BAD", flush=True) else: print(".", end="", flush=True)