MCPcopy Create free account
hub / github.com/MarlinFirmware/Marlin / wait_for_confirmation

Function wait_for_confirmation

Marlin/src/feature/pause.cpp:533–619  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

531}
532
533void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep_count/*=0*/ DXC_ARGS) {
534 DEBUG_SECTION(wfc, "wait_for_confirmation", true);
535 DEBUG_ECHOLNPGM("... is_reload:", is_reload, " maxbeep:", max_beep_count DXC_SAY);
536
537 bool nozzle_timed_out = false;
538
539 show_continue_prompt(is_reload);
540
541 first_impatient_beep(max_beep_count);
542
543 // Start the heater idle timers
544 const millis_t nozzle_timeout = SEC_TO_MS(PAUSE_PARK_NOZZLE_TIMEOUT);
545
546 HOTEND_LOOP() thermalManager.heater_idle[e].start(nozzle_timeout);
547
548 #if ENABLED(DUAL_X_CARRIAGE)
549 const int8_t saved_ext = active_extruder;
550 const bool saved_ext_dup_mode = extruder_duplication_enabled;
551 set_duplication_enabled(false, DXC_ext);
552 #endif
553
554 // Wait for filament insert by user and press button
555 KEEPALIVE_STATE(PAUSED_FOR_USER);
556 TERN_(HOST_PROMPT_SUPPORT, hostui.continue_prompt(GET_TEXT_F(MSG_NOZZLE_PARKED)));
557 TERN_(EXTENSIBLE_UI, ExtUI::onUserConfirmRequired(GET_TEXT_F(MSG_NOZZLE_PARKED)));
558 wait_for_user = true; // LCD click or M108 will clear this
559 while (wait_for_user) {
560 impatient_beep(max_beep_count);
561
562 // If the nozzle has timed out...
563 if (!nozzle_timed_out)
564 HOTEND_LOOP() nozzle_timed_out |= thermalManager.heater_idle[e].timed_out;
565
566 // Wait for the user to press the button to re-heat the nozzle, then
567 // re-heat the nozzle, re-show the continue prompt, restart idle timers, start over
568 if (nozzle_timed_out) {
569 ui.pause_show_message(PAUSE_MESSAGE_HEAT);
570 #if ENABLED(SOVOL_SV06_RTS)
571 rts.updateTempE0();
572 rts.gotoPage(ID_HeatNozzle_L, ID_HeatNozzle_D);
573 #endif
574 SERIAL_ECHO_MSG(_PMSG(STR_FILAMENT_CHANGE_HEAT));
575
576 TERN_(HOST_PROMPT_SUPPORT, hostui.prompt_do(PROMPT_USER_CONTINUE, GET_TEXT_F(MSG_HEATER_TIMEOUT), GET_TEXT_F(MSG_REHEAT)));
577
578 #if ENABLED(TOUCH_UI_FTDI_EVE)
579 ExtUI::onUserConfirmRequired(GET_TEXT_F(MSG_FTDI_HEATER_TIMEOUT));
580 #elif ENABLED(EXTENSIBLE_UI)
581 ExtUI::onUserConfirmRequired(GET_TEXT_F(MSG_HEATER_TIMEOUT));
582 #endif
583
584 TERN_(HAS_RESUME_CONTINUE, wait_for_user_response(0, true)); // Wait for LCD click or M108
585
586 TERN_(HOST_PROMPT_SUPPORT, hostui.prompt_do(PROMPT_INFO, GET_TEXT_F(MSG_REHEATING)));
587
588 LCD_MESSAGE(MSG_REHEATING);
589
590 // Re-enable the heaters if they timed out

Callers 1

M125Method · 0.85

Calls 15

show_continue_promptFunction · 0.85
first_impatient_beepFunction · 0.85
impatient_beepFunction · 0.85
wait_for_user_responseFunction · 0.85
ensure_safe_temperatureFunction · 0.85
idle_no_sleepFunction · 0.85
continue_promptMethod · 0.80
updateTempE0Method · 0.80
prompt_doMethod · 0.80
HOTEND_LOOPFunction · 0.70
set_duplication_enabledFunction · 0.50

Tested by

no test coverage detected