diff --git a/platformio/__init__.py b/platformio/__init__.py index e6127e13..31611539 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 9, 2) +VERSION = (2, 9, "3.dev0") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/builder/scripts/atmelavr.py b/platformio/builder/scripts/atmelavr.py index 26370f22..a4b53263 100644 --- a/platformio/builder/scripts/atmelavr.py +++ b/platformio/builder/scripts/atmelavr.py @@ -22,6 +22,8 @@ from time import sleep from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default, DefaultEnvironment, SConscript) +from platformio.util import get_serialports + def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 @@ -63,11 +65,13 @@ def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 if not upload_options.get("disable_flushing", False): env.FlushSerialBuffer("$UPLOAD_PORT") + before_ports = [i['port'] for i in get_serialports(use_grep=True)] + if upload_options.get("use_1200bps_touch", False): env.TouchSerialPort("$UPLOAD_PORT", 1200) if upload_options.get("wait_for_upload_port", False): - env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort()) + env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort(before_ports)) env = DefaultEnvironment() diff --git a/platformio/builder/scripts/atmelsam.py b/platformio/builder/scripts/atmelsam.py index 7cf50a31..a78febf0 100644 --- a/platformio/builder/scripts/atmelsam.py +++ b/platformio/builder/scripts/atmelsam.py @@ -21,6 +21,8 @@ from os.path import basename, join from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default, DefaultEnvironment, SConscript) +from platformio.util import get_serialports + def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 env.AutodetectUploadPort() @@ -39,11 +41,13 @@ def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 if not upload_options.get("disable_flushing", False): env.FlushSerialBuffer("$UPLOAD_PORT") + before_ports = [i['port'] for i in get_serialports(use_grep=True)] + if upload_options.get("use_1200bps_touch", False): env.TouchSerialPort("$UPLOAD_PORT", 1200) if upload_options.get("wait_for_upload_port", False): - env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort()) + env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort(before_ports)) # use only port name for BOSSA if "/" in env.subst("$UPLOAD_PORT"): diff --git a/platformio/builder/tools/pioupload.py b/platformio/builder/tools/pioupload.py index cb973b92..aeb71000 100644 --- a/platformio/builder/tools/pioupload.py +++ b/platformio/builder/tools/pioupload.py @@ -47,8 +47,7 @@ def TouchSerialPort(env, port, baudrate): sleep(0.4) -def WaitForNewSerialPort(env): - before = [i['port'] for i in get_serialports(use_grep=True)] +def WaitForNewSerialPort(env, before): sleep(0.5) new_port = None elapsed = 0 diff --git a/platformio/util.py b/platformio/util.py index 221c6d9b..13a9b9e6 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -325,7 +325,7 @@ def get_serialports(use_grep=False): result.append({"port": p, "description": d, "hwid": h}) # fix for PySerial - if not result and not use_grep: + if not result and not use_grep and system() == "Darwin": result = _grep_serial_ports() return result