]> granicus.if.org Git - esp-idf/commitdiff
idf_monitor: Autodetect port
authorRoland Dobai <roland@espressif.com>
Mon, 14 Oct 2019 06:06:43 +0000 (08:06 +0200)
committerRoland Dobai <roland@espressif.com>
Mon, 14 Oct 2019 06:06:43 +0000 (08:06 +0200)
Closes https://github.com/espressif/esp-idf/issues/4191

tools/idf_monitor.py

index ff34019dabdc7bb288c32faed6b070d05cf3539d..8fdcecd835cd407bbd768e5acb697dd501dd4fb4 100755 (executable)
@@ -46,6 +46,7 @@ import shlex
 import time
 import sys
 import serial
+import serial.tools.list_ports
 import serial.tools.miniterm as miniterm
 import threading
 import ctypes
@@ -764,12 +765,24 @@ class Monitor(object):
 
 
 def main():
+
+    def _get_default_serial_port():
+        """
+        Same logic for detecting serial port as esptool.py and idf.py: reverse sort by name and choose the first port.
+        """
+
+        try:
+            ports = list(reversed(sorted(p.device for p in serial.tools.list_ports.comports())))
+            return ports[0]
+        except Exception:
+            return '/dev/ttyUSB0'
+
     parser = argparse.ArgumentParser("idf_monitor - a serial output monitor for esp-idf")
 
     parser.add_argument(
         '--port', '-p',
         help='Serial port device',
-        default=os.environ.get('ESPTOOL_PORT', '/dev/ttyUSB0')
+        default=os.environ.get('ESPTOOL_PORT', _get_default_serial_port())
     )
 
     parser.add_argument(