From 1ba1ec0db932fcefcf734617985d4b0d4eb28ea7 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 25 Oct 2016 23:25:47 -0500 Subject: [PATCH] Handle M108 in M1 also with ULTIPANEL --- Marlin/Marlin_main.cpp | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index a215368551..1300196667 100755 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4431,41 +4431,49 @@ inline void gcode_G92() { #endif + #if ENABLED(EMERGENCY_PARSER) + wait_for_user = true; + #endif + + KEEPALIVE_STATE(PAUSED_FOR_USER); + stepper.synchronize(); refresh_cmd_timeout(); #if ENABLED(ULTIPANEL) + #if ENABLED(EMERGENCY_PARSER) + #define M1_WAIT_CONDITION (!lcd_clicked() && wait_for_user) + #else + #define M1_WAIT_CONDITION !lcd_clicked() + #endif + if (codenum > 0) { codenum += previous_cmd_ms; // wait until this time for a click - KEEPALIVE_STATE(PAUSED_FOR_USER); - while (PENDING(millis(), codenum) && !lcd_clicked()) idle(); + while (PENDING(millis(), codenum) && M1_WAIT_CONDITION) idle(); lcd_ignore_click(false); } else if (lcd_detected()) { - KEEPALIVE_STATE(PAUSED_FOR_USER); - while (!lcd_clicked()) idle(); + while (M1_WAIT_CONDITION) idle(); } - else return; + else goto ExitM1; - if (IS_SD_PRINTING) - LCD_MESSAGEPGM(MSG_RESUMING); - else - LCD_MESSAGEPGM(WELCOME_MSG); + IS_SD_PRINTING ? LCD_MESSAGEPGM(MSG_RESUMING) : LCD_MESSAGEPGM(WELCOME_MSG); #else - KEEPALIVE_STATE(PAUSED_FOR_USER); - wait_for_user = true; - if (codenum > 0) { codenum += previous_cmd_ms; // wait until this time for an M108 while (PENDING(millis(), codenum) && wait_for_user) idle(); } else while (wait_for_user) idle(); - wait_for_user = false; + #endif +ExitM1: + + #if ENABLED(EMERGENCY_PARSER) + wait_for_user = false; #endif KEEPALIVE_STATE(IN_HANDLER);