|
|
|
@ -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);
|
|
|
|
|