Ask about serial port for device monitor when more than one is found

This commit is contained in:
Ivan Kravets
2016-10-31 20:06:48 +02:00
parent a251470ebd
commit 8236f3ff86
3 changed files with 12 additions and 11 deletions

View File

@ -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", "")

View File

@ -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)

View File

@ -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":