mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 01:57:13 +02:00
Ask about serial port for device monitor when more than one is found
This commit is contained in:
@ -100,9 +100,7 @@ def AutodetectUploadPort(*args, **kwargs): # pylint: disable=unused-argument
|
||||
board_hwids = []
|
||||
if "BOARD" in env and "build.hwids" in env.BoardConfig():
|
||||
board_hwids = env.BoardConfig().get("build.hwids")
|
||||
for item in util.get_serialports():
|
||||
if "VID:PID" not in item['hwid']:
|
||||
continue
|
||||
for item in util.get_serialports(filter_hwid=True):
|
||||
port = item['port']
|
||||
for hwid in board_hwids:
|
||||
hwid_str = ("%s:%s" % (hwid[0], hwid[1])).replace("0x", "")
|
||||
|
@ -100,10 +100,9 @@ def device_list(json_output):
|
||||
help="Diagnostics: suppress non-error messages, default=Off")
|
||||
def device_monitor(**kwargs):
|
||||
if not kwargs['port']:
|
||||
for item in get_serialports():
|
||||
if "VID:PID" in item['hwid']:
|
||||
kwargs['port'] = item['port']
|
||||
break
|
||||
ports = get_serialports(filter_hwid=True)
|
||||
if len(ports) == 1:
|
||||
kwargs['port'] = ports[0]['port']
|
||||
|
||||
sys.argv = ["monitor"]
|
||||
for k, v in kwargs.iteritems():
|
||||
@ -120,10 +119,10 @@ def device_monitor(**kwargs):
|
||||
sys.argv.extend([k, str(v)])
|
||||
|
||||
try:
|
||||
miniterm.main( # pylint: disable=E1123
|
||||
miniterm.main(
|
||||
default_port=kwargs['port'],
|
||||
default_baudrate=kwargs['baud'],
|
||||
default_rts=kwargs['rts'],
|
||||
default_dtr=kwargs['dtr'])
|
||||
except Exception as e: # pylint: disable=W0702
|
||||
except Exception as e:
|
||||
raise MinitermException(e)
|
||||
|
@ -358,7 +358,7 @@ def copy_pythonpath_to_osenv():
|
||||
os.environ['PYTHONPATH'] = os.pathsep.join(_PYTHONPATH)
|
||||
|
||||
|
||||
def get_serialports():
|
||||
def get_serialports(filter_hwid=False):
|
||||
try:
|
||||
from serial.tools.list_ports import comports
|
||||
except ImportError:
|
||||
@ -373,7 +373,11 @@ def get_serialports():
|
||||
d = unicode(d, errors="ignore")
|
||||
except TypeError:
|
||||
pass
|
||||
result.append({"port": p, "description": d, "hwid": h})
|
||||
if not filter_hwid or "VID:PID" in h:
|
||||
result.append({"port": p, "description": d, "hwid": h})
|
||||
|
||||
if filter_hwid:
|
||||
return result
|
||||
|
||||
# fix for PySerial
|
||||
if not result and platform.system() == "Darwin":
|
||||
|
Reference in New Issue
Block a user