From 88c053bdb4e225711493223181540b662ac2a5ad Mon Sep 17 00:00:00 2001 From: Adam Wujek <dev_public@wujek.eu> Date: Fri, 15 Mar 2024 14:47:49 +0100 Subject: [PATCH] userspace/tools/wr_mon: add key command to refresh or freeze the output Signed-off-by: Adam Wujek <dev_public@wujek.eu> --- userspace/tools/wr_mon.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/userspace/tools/wr_mon.c b/userspace/tools/wr_mon.c index a2b1fd862..eee380cda 100644 --- a/userspace/tools/wr_mon.c +++ b/userspace/tools/wr_mon.c @@ -1351,7 +1351,7 @@ void show_all(void) term_clear(); term_pcprintf(1, 1, C_BLUE, "WR Switch Sync Monitor "); term_cprintf(C_WHITE, "%s", __GIT_VER__); - term_cprintf(C_BLUE, " [q = quit, t = toggle servo, c = extra ppsi params]\n\n"); + term_cprintf(C_BLUE, " [q=quit,r=refresh,f=freeze,t=toggle servo,c=extra ppsi params]\n\n"); } hal_alive = (hal_head->pid && (kill(hal_head->pid, 0) == 0)) @@ -1403,6 +1403,7 @@ int main(int argc, char *argv[]) { int opt; int usecolor = 1; + int gui_freeze = 0; /* freeze the GUI */ /* try a pps_gen based approach */ uint64_t last_seconds = 0; @@ -1488,9 +1489,22 @@ int main(int argc, char *argv[]) last_seconds = 0; break; + case 'f': + gui_freeze = !gui_freeze; + if (gui_freeze) { + term_cprintf(C_RED, "GUI Frozen!\n"); + fflush(stdout); + } + last_seconds = 0; + break; + case 'q': goto quit; + case 'r': /* force refresh */ + last_seconds = 0; + break; + case 't' : toggle_tracking(); /* Force refresh */ @@ -1500,7 +1514,7 @@ int main(int argc, char *argv[]) } shw_pps_gen_read_time(&seconds, &nanoseconds); - if (seconds != last_seconds) { + if (!gui_freeze && seconds != last_seconds) { read_servo(); read_gm_info(); read_hal(); -- GitLab