From 93db0fa06467d514a832992a9bc3e2afaec3b959 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Sat, 24 Jun 2017 01:29:53 +0300 Subject: [PATCH] Improve WaitForNewSerialPort for atmega32u4 based boards --- platformio/__init__.py | 3 ++- platformio/builder/tools/pioupload.py | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/platformio/__init__.py b/platformio/__init__.py index e4265804..33d50a56 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -32,8 +32,9 @@ __copyright__ = "Copyright 2014-present PlatformIO" __apiurl__ = "https://api.platformio.org" -if sys.version_info < (2, 7, 0) or sys.version_info >= (3, 0, 0): +if sys.version_info < (2, 7, 4) or sys.version_info >= (3, 0, 0): msg = ("PlatformIO version %s does not run under Python version %s.\n" + "Minimum supported version is 2.7.4, please upgrade Python. \n" "Python 3 is not yet supported.\n") sys.stderr.write(msg % (__version__, sys.version.split()[0])) sys.exit(1) diff --git a/platformio/builder/tools/pioupload.py b/platformio/builder/tools/pioupload.py index 4492b464..4547858d 100644 --- a/platformio/builder/tools/pioupload.py +++ b/platformio/builder/tools/pioupload.py @@ -48,7 +48,6 @@ def TouchSerialPort(env, port, baudrate): s.close() except: # pylint: disable=W0702 pass - sleep(0.4) def WaitForNewSerialPort(env, before): @@ -56,11 +55,12 @@ def WaitForNewSerialPort(env, before): prev_port = env.subst("$UPLOAD_PORT") new_port = None elapsed = 0 + before = [p['port'] for p in before] while elapsed < 5 and new_port is None: - now = util.get_serialports() + now = [p['port'] for p in util.get_serialports()] for p in now: if p not in before: - new_port = p['port'] + new_port = p break before = now sleep(0.25) @@ -68,8 +68,8 @@ def WaitForNewSerialPort(env, before): if not new_port: for p in now: - if prev_port == p['port']: - new_port = p['port'] + if prev_port == p: + new_port = p break try: