def get_valid_DFU_dev(): stm32devs = [] devs = dfu.finddevs() for dev in devs: try: dfudev = dfu.dfu_device(*dev) except: if options.verbose: print("Could not open dfu device %s id %04x:%04x " "maybe the os driver is claiming it?" % (dev[0].filename, dev[0].idVendor, dev[0].idProduct)) continue try: man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) product = dfudev.handle.getString(dfudev.dev.iProduct, 30) serial = dfudev.handle.getString(dfudev.dev.iSerialNumber, 40) except Exception as e: print("whoops... could not get device description.") print("exception:", e) continue if options.verbose: print("Found dfu device %s: id %04x:%04x %s - %s - %s" % (dfudev.dev.filename, dfudev.dev.idVendor, dfudev.dev.idProduct, man, product, serial)) if man in valid_manufacturers: if options.product == "any": stm32devs.append((dfudev, man, product, serial)) elif options.product == "Lisa/Lia": if "Lisa/M" in product or "Lia" in product or "Fireswarm" in product: stm32devs.append((dfudev, man, product, serial)) return stm32devs
def stm32_scan(args, test): devs = dfu.finddevs() bmp = 0 if not devs: if test == True: return print "No DFU devices found!" exit(-1) for dev in devs: dfudev = dfu.dfu_device(*dev) man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) if man == "Black Sphere Technologies": bmp = bmp + 1 if bmp == 0: if test == True: return print "No compatible device found\n" exit(-1) if bmp > 1 and not args.serial_target: if test == True: return print "Found multiple devices:\n" for dev in devs: dfudev = dfu.dfu_device(*dev) man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) product = dfudev.handle.getString(dfudev.dev.iProduct, 96) serial_no = dfudev.handle.getString(dfudev.dev.iSerialNumber, 30) print "Device ID:\t %04x:%04x" % (dfudev.dev.idVendor, dfudev.dev.idProduct) print "Manufacturer:\t %s" % man print "Product:\t %s" % product print "Serial:\t\t %s\n" % serial_no print "Select device with serial number!" exit(-1) for dev in devs: dfudev = dfu.dfu_device(*dev) man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) product = dfudev.handle.getString(dfudev.dev.iProduct, 96) serial_no = dfudev.handle.getString(dfudev.dev.iSerialNumber, 30) if args.serial_target: if man == "Black Sphere Technologies" and serial_no == args.serial_target: break else: if man == "Black Sphere Technologies": break print "Device ID:\t %04x:%04x" % (dfudev.dev.idVendor, dfudev.dev.idProduct) print "Manufacturer:\t %s" % man print "Product:\t %s" % product print "Serial:\t\t %s" % serial_no if args.serial_target and serial_no != args.serial_target: print "Serial number doesn't match!\n" exit(-2) return dfudev
def stm32_scan(args, test): devs = dfu.finddevs() bmp = 0 if not devs: if test == True: return print "No DFU devices found!" exit(-1) for dev in devs: try: dfudev = dfu.dfu_device(*dev) except: return 0 man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) if man == "Black Sphere Technologies": bmp = bmp + 1 if bmp == 0 : if test == True: return print "No compatible device found\n" exit(-1) if bmp > 1 and not args.serial_target : if test == True: return print "Found multiple devices:\n" for dev in devs: dfudev = dfu.dfu_device(*dev) man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) product = dfudev.handle.getString(dfudev.dev.iProduct, 96) serial_no = dfudev.handle.getString(dfudev.dev.iSerialNumber, 30) print "Device ID:\t %04x:%04x" % (dfudev.dev.idVendor, dfudev.dev.idProduct) print "Manufacturer:\t %s" % man print "Product:\t %s" % product print "Serial:\t\t %s\n" % serial_no print "Select device with serial number!" exit (-1) for dev in devs: dfudev = dfu.dfu_device(*dev) man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) product = dfudev.handle.getString(dfudev.dev.iProduct, 96) serial_no = dfudev.handle.getString(dfudev.dev.iSerialNumber, 30) if args.serial_target: if man == "Black Sphere Technologies" and serial_no == args.serial_target: break else: if man == "Black Sphere Technologies": break print "Device ID:\t %04x:%04x" % (dfudev.dev.idVendor, dfudev.dev.idProduct) print "Manufacturer:\t %s" % man print "Product:\t %s" % product print "Serial:\t\t %s" % serial_no if args.serial_target and serial_no != args.serial_target: print "Serial number doesn't match!\n" exit(-2) return dfudev
options.list_only = True if not options.list_only: if len(args) != 1: parser.error("incorrect number of arguments") else: if path.isfile(args[0]): binfile = args[0] else: parser.error("Binary file " + args[0] + " not found") if options.verbose: print_copyright() for i in range(1, 60): devs = dfu.finddevs() if not devs: print('.', end="") stdout.flush() time.sleep(0.5) else: break print("") if not devs: print("No DFU devices found!") exit(1) elif options.verbose or options.list_only: print("Found %i DFU devices." % len(devs)) valid_manufacturers = [] valid_manufacturers.append("Transition Robotics Inc.")
def stm32_scan(args, test): devs = dfu.finddevs() bmp_devs = [] bmp = 0 if not devs: if test == True: return print("No DFU devices found!") exit(-1) for dev in devs: try: dfudev = dfu.dfu_device(*dev) except: # Exceptions are raised when current user doesn't have permissions # for the specified USB device, but the device scan needs to # continue continue man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) if man == b"Black Sphere Technologies": bmp = bmp + 1 bmp_devs.append(dev) if bmp == 0: if test == True: return print("No compatible device found\n") exit(-1) if bmp > 1 and not args.serial_target: if test == True: return print("Found multiple devices:\n") for dev in bmp_devs: dfudev = dfu.dfu_device(*dev) man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) product = dfudev.handle.getString(dfudev.dev.iProduct, 96) serial_no = dfudev.handle.getString(dfudev.dev.iSerialNumber, 30) print("Device ID:\t %04x:%04x" % (dfudev.dev.idVendor, dfudev.dev.idProduct)) print("Manufacturer:\t %s" % man) print("Product:\t %s" % product) print("Serial:\t\t %s\n" % serial_no) print("Select device with serial number!") exit (-1) for dev in bmp_devs: dfudev = dfu.dfu_device(*dev) man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) product = dfudev.handle.getString(dfudev.dev.iProduct, 96) serial_no = dfudev.handle.getString(dfudev.dev.iSerialNumber, 30) if args.serial_target: if man == "Black Sphere Technologies" and serial_no == args.serial_target: break else: if man == "Black Sphere Technologies": break print("Device ID:\t %04x:%04x" % (dfudev.dev.idVendor, dfudev.dev.idProduct)) print("Manufacturer:\t %s" % man) print("Product:\t %s" % product) print("Serial:\t\t %s" % serial_no) if args.serial_target and serial_no != args.serial_target: print("Serial number doesn't match!\n") exit(-2) return dfudev
) (options, args) = parser.parse_args() if len(args) != 1: parser.error("incorrect number of arguments") else: if path.isfile(args[0]): binfile = args[0] else: parser.error("Binary file " + args[0] + " not found") if options.verbose: print_copyright() for i in range(1, 60): devs = dfu.finddevs() if not devs: print('.', end="") stdout.flush() time.sleep(0.5) else: break print("") if not devs: print("No DFU devices found!") exit(1) elif options.verbose: print("Found %i DFU devices." % len(devs)) valid_manufacturers = [] valid_manufacturers.append("Transition Robotics Inc.")
def stm32_scan(args, test): devs = dfu.finddevs() bmp_devs = [] bmp = 0 if not devs: if test == True: return print "No DFU devices found!" exit(-1) for dev in devs: try: dfudev = dfu.dfu_device(*dev) except: # Exceptions are raised when current user doesn't have permissions # for the specified USB device, but the device scan needs to # continue continue man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) if man == "Black Sphere Technologies": bmp = bmp + 1 bmp_devs.append(dev) if bmp == 0: if test == True: return print "No compatible device found\n" exit(-1) if bmp > 1 and not args.serial_target: if test == True: return print "Found multiple devices:\n" for dev in bmp_devs: dfudev = dfu.dfu_device(*dev) man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) product = dfudev.handle.getString(dfudev.dev.iProduct, 96) serial_no = dfudev.handle.getString(dfudev.dev.iSerialNumber, 30) print "Device ID:\t %04x:%04x" % (dfudev.dev.idVendor, dfudev.dev.idProduct) print "Manufacturer:\t %s" % man print "Product:\t %s" % product print "Serial:\t\t %s\n" % serial_no print "Select device with serial number!" exit (-1) for dev in bmp_devs: dfudev = dfu.dfu_device(*dev) man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) product = dfudev.handle.getString(dfudev.dev.iProduct, 96) serial_no = dfudev.handle.getString(dfudev.dev.iSerialNumber, 30) if args.serial_target: if man == "Black Sphere Technologies" and serial_no == args.serial_target: break else: if man == "Black Sphere Technologies": break print "Device ID:\t %04x:%04x" % (dfudev.dev.idVendor, dfudev.dev.idProduct) print "Manufacturer:\t %s" % man print "Product:\t %s" % product print "Serial:\t\t %s" % serial_no if args.serial_target and serial_no != args.serial_target: print "Serial number doesn't match!\n" exit(-2) return dfudev