From bf5820cb0dc0504a5e763e6a1660a580de3663b0 Mon Sep 17 00:00:00 2001 From: Marcio Teixeira Date: Fri, 30 Oct 2020 13:32:41 -0600 Subject: [PATCH] Prevent interruption of TouchUI calibration screen - Keep LCD messages from interrupting touch calibration wizard. - Avoid corrupting the display list when this happens. --- .../extui/lib/ftdi_eve_touch_ui/screens/status_screen.cpp | 8 ++++++++ .../screens/touch_calibration_screen.cpp | 3 +++ 2 files changed, 11 insertions(+) diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/status_screen.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/status_screen.cpp index fc7453fca7..2620df9b95 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/status_screen.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/status_screen.cpp @@ -301,6 +301,14 @@ void StatusScreen::setStatusMessage(progmem_str message) { } void StatusScreen::setStatusMessage(const char* message) { + if(CommandProcessor::is_processing()) { + #if ENABLED(TOUCH_UI_DEBUG) + SERIAL_ECHO_START(); + SERIAL_ECHOLNPGM("Cannot update status message, command processor busy"); + #endif + return; + } + CommandProcessor cmd; cmd.cmd(CMD_DLSTART) .cmd(CLEAR_COLOR_RGB(Theme::bg_color)) diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/touch_calibration_screen.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/touch_calibration_screen.cpp index 436445024a..63d067050c 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/touch_calibration_screen.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/touch_calibration_screen.cpp @@ -85,6 +85,9 @@ void TouchCalibrationScreen::onRedraw(draw_mode_t) { void TouchCalibrationScreen::onIdle() { if (!CLCD::is_touching() && !CommandProcessor::is_processing()) { GOTO_PREVIOUS(); + #if ENABLED(TOUCH_UI_DEBUG) + SERIAL_ECHO_MSG("Calibration routine finished"); + #endif } }