feat(monitor): add new feature allowing disabling log display.
This commit is contained in:
parent
5afafb0050
commit
c015dd6c41
2 changed files with 26 additions and 2 deletions
|
@ -89,6 +89,14 @@ Quick Reset
|
||||||
The keyboard shortcut ``Ctrl-T Ctrl-R`` will reset the target board via the RTS line (if it is connected.)
|
The keyboard shortcut ``Ctrl-T Ctrl-R`` will reset the target board via the RTS line (if it is connected.)
|
||||||
|
|
||||||
|
|
||||||
|
Toggle Output Display
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Sometimes you may want to stop new output printed to screen, to see the log before. The keyboard shortcut ``Ctrl-T Ctrl-Y`` will
|
||||||
|
toggle the display (discard all serial data when the display is off) so that you can stop to see the log, and revert
|
||||||
|
again quickly without quitting the monitor.
|
||||||
|
|
||||||
|
|
||||||
Simple Monitor
|
Simple Monitor
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,7 @@ CTRL_F = '\x06'
|
||||||
CTRL_H = '\x08'
|
CTRL_H = '\x08'
|
||||||
CTRL_R = '\x12'
|
CTRL_R = '\x12'
|
||||||
CTRL_T = '\x14'
|
CTRL_T = '\x14'
|
||||||
|
CTRL_Y = '\x19'
|
||||||
CTRL_RBRACKET = '\x1d' # Ctrl+]
|
CTRL_RBRACKET = '\x1d' # Ctrl+]
|
||||||
|
|
||||||
# ANSI terminal codes
|
# ANSI terminal codes
|
||||||
|
@ -256,6 +257,7 @@ class Monitor(object):
|
||||||
self._pressed_menu_key = False
|
self._pressed_menu_key = False
|
||||||
self._read_line = b""
|
self._read_line = b""
|
||||||
self._gdb_buffer = b""
|
self._gdb_buffer = b""
|
||||||
|
self._output_enabled = True
|
||||||
|
|
||||||
def main_loop(self):
|
def main_loop(self):
|
||||||
self.console_reader.start()
|
self.console_reader.start()
|
||||||
|
@ -299,6 +301,7 @@ class Monitor(object):
|
||||||
# this may need to be made more efficient, as it pushes out a byte
|
# this may need to be made more efficient, as it pushes out a byte
|
||||||
# at a time to the console
|
# at a time to the console
|
||||||
for b in data:
|
for b in data:
|
||||||
|
if self._output_enabled:
|
||||||
self.console.write_bytes(b)
|
self.console.write_bytes(b)
|
||||||
if b == b'\n': # end of line
|
if b == b'\n': # end of line
|
||||||
self.handle_serial_input_line(self._read_line.strip())
|
self.handle_serial_input_line(self._read_line.strip())
|
||||||
|
@ -320,10 +323,13 @@ class Monitor(object):
|
||||||
self.serial.setRTS(True)
|
self.serial.setRTS(True)
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
self.serial.setRTS(False)
|
self.serial.setRTS(False)
|
||||||
|
self.output_enable(True)
|
||||||
elif c == CTRL_F: # Recompile & upload
|
elif c == CTRL_F: # Recompile & upload
|
||||||
self.run_make("flash")
|
self.run_make("flash")
|
||||||
elif c == CTRL_A: # Recompile & upload app only
|
elif c == CTRL_A: # Recompile & upload app only
|
||||||
self.run_make("app-flash")
|
self.run_make("app-flash")
|
||||||
|
elif c == CTRL_Y: # Toggle output display
|
||||||
|
self.output_toggle()
|
||||||
else:
|
else:
|
||||||
red_print('--- unknown menu character {} --'.format(key_description(c)))
|
red_print('--- unknown menu character {} --'.format(key_description(c)))
|
||||||
|
|
||||||
|
@ -340,13 +346,14 @@ class Monitor(object):
|
||||||
--- {reset:7} Reset target board via RTS line
|
--- {reset:7} Reset target board via RTS line
|
||||||
--- {make:7} Run 'make flash' to build & flash
|
--- {make:7} Run 'make flash' to build & flash
|
||||||
--- {appmake:7} Run 'make app-flash to build & flash app
|
--- {appmake:7} Run 'make app-flash to build & flash app
|
||||||
|
--- {output:7} Toggle output display
|
||||||
""".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),
|
||||||
reset=key_description(CTRL_R),
|
reset=key_description(CTRL_R),
|
||||||
make=key_description(CTRL_F),
|
make=key_description(CTRL_F),
|
||||||
appmake=key_description(CTRL_A),
|
appmake=key_description(CTRL_A),
|
||||||
|
output=key_description(CTRL_Y),
|
||||||
)
|
)
|
||||||
|
|
||||||
def __enter__(self):
|
def __enter__(self):
|
||||||
|
@ -393,6 +400,8 @@ class Monitor(object):
|
||||||
p.wait()
|
p.wait()
|
||||||
if p.returncode != 0:
|
if p.returncode != 0:
|
||||||
self.prompt_next_action("Build failed")
|
self.prompt_next_action("Build failed")
|
||||||
|
else:
|
||||||
|
self.output_enable(True)
|
||||||
|
|
||||||
def lookup_pc_address(self, pc_addr):
|
def lookup_pc_address(self, pc_addr):
|
||||||
translation = subprocess.check_output(
|
translation = subprocess.check_output(
|
||||||
|
@ -430,6 +439,13 @@ class Monitor(object):
|
||||||
pass # happens on Windows, maybe other OSes
|
pass # happens on Windows, maybe other OSes
|
||||||
self.prompt_next_action("gdb exited")
|
self.prompt_next_action("gdb exited")
|
||||||
|
|
||||||
|
def output_enable(self, enable):
|
||||||
|
self._output_enabled = enable
|
||||||
|
|
||||||
|
def output_toggle(self):
|
||||||
|
self._output_enabled = not self._output_enabled
|
||||||
|
yellow_print("\nToggle output display: {}, Type Ctrl-T Ctrl-Y to show/disable output again.".format(self._output_enabled))
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser("idf_monitor - a serial output monitor for esp-idf")
|
parser = argparse.ArgumentParser("idf_monitor - a serial output monitor for esp-idf")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue