| 531 | } |
| 532 | |
| 533 | void 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 |
no test coverage detected