diff --git a/scripts/stm32_mem.py b/scripts/stm32_mem.py index 33d35f9..d30a855 100755 --- a/scripts/stm32_mem.py +++ b/scripts/stm32_mem.py @@ -79,10 +79,12 @@ def stm32_manifest(dev): sleep(status.bwPollTimeout / 1000.0) if status.bState == dfu.STATE_DFU_MANIFEST: break -def stm32_scan(args): +def stm32_scan(args, test): devs = dfu.finddevs() bmp = 0 if not devs: + if test == True: + return print "No DFU devices found!" exit(-1) @@ -91,9 +93,13 @@ def stm32_scan(args): 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) @@ -138,7 +144,7 @@ if __name__ == "__main__": parser.add_argument("-a", "--address", help="Start address for firmware") parser.add_argument("-m", "--manifest", help="Start application, if in DFU mode", action='store_true') args = parser.parse_args() - dfudev = stm32_scan(args) + dfudev = stm32_scan(args, False) try: state = dfudev.get_state() except: @@ -153,7 +159,7 @@ if __name__ == "__main__": while True : sleep(0.5) timeout = timeout + 0.5 - dfudev = stm32_scan(args) + dfudev = stm32_scan(args, True) if dfudev: break if timeout > 5 : print "Error: DFU device did not appear"