Merge branch 'bugfix/alt_exit_idf_monitor_v4.0' into 'release/v4.0'

idf_monitor: Exit with CTRL+X in menu (v4.0)

See merge request espressif/esp-idf!6289
This commit is contained in:
Jiang Jiang Jian 2019-10-14 21:46:32 +08:00
commit 128d650d7d
2 changed files with 9 additions and 1 deletions

View File

@ -40,6 +40,8 @@ For easy interaction with IDF Monitor, use the keyboard shortcuts given in the t
+-------------------+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| - Ctrl+H (or H) | Display all keyboard shortcuts | |
+-------------------+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| - Ctrl+X (or X) | Exit the program | |
+-------------------+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Any keys pressed, other than ``Ctrl-]`` and ``Ctrl-T``, will be sent through the serial port.

View File

@ -64,6 +64,7 @@ CTRL_R = '\x12'
CTRL_T = '\x14'
CTRL_Y = '\x19'
CTRL_P = '\x10'
CTRL_X = '\x18'
CTRL_L = '\x0c'
CTRL_RBRACKET = '\x1d' # Ctrl+]
@ -495,6 +496,9 @@ class Monitor(object):
self.serial.setRTS(False) # EN=HIGH, chip out of reset
time.sleep(0.45) # timeouts taken from esptool.py, includes esp32r0 workaround. defaults: 0.05
self.serial.setDTR(False) # IO0=HIGH, done
elif c in [CTRL_X, 'x', 'X']: # Exiting from within the menu
self.console_reader.stop()
self.serial_reader.stop()
else:
red_print('--- unknown menu character {} --'.format(key_description(c)))
@ -514,6 +518,7 @@ class Monitor(object):
--- {output:14} Toggle output display
--- {log:14} Toggle saving output into file
--- {pause:14} Reset target into bootloader to pause app via RTS line
--- {menuexit:14} Exit program
""".format(version=__version__,
exit=key_description(self.exit_key),
menu=key_description(self.menu_key),
@ -522,7 +527,8 @@ class Monitor(object):
appmake=key_description(CTRL_A) + ' (or A)',
output=key_description(CTRL_Y),
log=key_description(CTRL_L),
pause=key_description(CTRL_P))
pause=key_description(CTRL_P),
menuexit=key_description(CTRL_X) + ' (or X)')
def __enter__(self):
""" Use 'with self' to temporarily disable monitoring behaviour """