idf_monitor: Exit with CTRL+X in menu
Currently, the only way of exiting the idf_monitor program is to hit the CTRL+] button, if your keyboard doesn't have that key unless you hit another modifier key, it's not super trivial to exit. This change adds the option to exit with CTRL+T (for menu) then hitting X (or CTRL+X) for exiting. Closes https://github.com/espressif/esp-idf/pull/4167 Closes https://github.com/espressif/esp-idf/issues/4129
This commit is contained in:
parent
bf056c30d2
commit
6435c9f3d5
2 changed files with 8 additions and 1 deletions
|
@ -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+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.
|
Any keys pressed, other than ``Ctrl-]`` and ``Ctrl-T``, will be sent through the serial port.
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,7 @@ CTRL_R = '\x12'
|
||||||
CTRL_T = '\x14'
|
CTRL_T = '\x14'
|
||||||
CTRL_Y = '\x19'
|
CTRL_Y = '\x19'
|
||||||
CTRL_P = '\x10'
|
CTRL_P = '\x10'
|
||||||
|
CTRL_X = '\x18'
|
||||||
CTRL_L = '\x0c'
|
CTRL_L = '\x0c'
|
||||||
CTRL_RBRACKET = '\x1d' # Ctrl+]
|
CTRL_RBRACKET = '\x1d' # Ctrl+]
|
||||||
|
|
||||||
|
@ -272,6 +273,8 @@ class ConsoleParser(object):
|
||||||
yellow_print("Pause app (enter bootloader mode), press Ctrl-T Ctrl-R to restart")
|
yellow_print("Pause app (enter bootloader mode), press Ctrl-T Ctrl-R to restart")
|
||||||
# to fast trigger pause without press menu key
|
# to fast trigger pause without press menu key
|
||||||
ret = (TAG_CMD, CMD_ENTER_BOOT)
|
ret = (TAG_CMD, CMD_ENTER_BOOT)
|
||||||
|
elif c in [CTRL_X, 'x', 'X']: # Exiting from within the menu
|
||||||
|
ret = (TAG_CMD, CMD_STOP)
|
||||||
else:
|
else:
|
||||||
red_print('--- unknown menu character {} --'.format(key_description(c)))
|
red_print('--- unknown menu character {} --'.format(key_description(c)))
|
||||||
|
|
||||||
|
@ -294,6 +297,7 @@ class ConsoleParser(object):
|
||||||
--- {output:14} Toggle output display
|
--- {output:14} Toggle output display
|
||||||
--- {log:14} Toggle saving output into file
|
--- {log:14} Toggle saving output into file
|
||||||
--- {pause:14} Reset target into bootloader to pause app via RTS line
|
--- {pause:14} Reset target into bootloader to pause app via RTS line
|
||||||
|
--- {menuexit:14} Exit program
|
||||||
""".format(version=__version__,
|
""".format(version=__version__,
|
||||||
exit=key_description(self.exit_key),
|
exit=key_description(self.exit_key),
|
||||||
menu=key_description(self.menu_key),
|
menu=key_description(self.menu_key),
|
||||||
|
@ -302,7 +306,8 @@ class ConsoleParser(object):
|
||||||
appmake=key_description(CTRL_A) + ' (or A)',
|
appmake=key_description(CTRL_A) + ' (or A)',
|
||||||
output=key_description(CTRL_Y),
|
output=key_description(CTRL_Y),
|
||||||
log=key_description(CTRL_L),
|
log=key_description(CTRL_L),
|
||||||
pause=key_description(CTRL_P))
|
pause=key_description(CTRL_P),
|
||||||
|
menuexit=key_description(CTRL_X) + ' (or X)')
|
||||||
return textwrap.dedent(text)
|
return textwrap.dedent(text)
|
||||||
|
|
||||||
def get_next_action_text(self):
|
def get_next_action_text(self):
|
||||||
|
|
Loading…
Reference in a new issue