Improve filament runout handling in FTDI EVE Touch UI

- On filament runout, take the user to the tune menu where they can initiate a filament change or resume the print.
This commit is contained in:
Marcio Teixeira 2021-01-15 12:59:27 -07:00 committed by Scott Lahteine
parent a7c97182f7
commit 0364ae4908
4 changed files with 17 additions and 3 deletions

View file

@ -36,8 +36,15 @@ void ConfirmUserRequestAlertBox::onRedraw(draw_mode_t mode) {
bool ConfirmUserRequestAlertBox::onTouchEnd(uint8_t tag) {
switch (tag) {
case 1:
ExtUI::setUserConfirmed();
GOTO_PREVIOUS();
if (ExtUI::isPrintingPaused()) {
// The TuneMenu will call ExtUI::setUserConfirmed()
GOTO_SCREEN(TuneMenu);
current_screen.forget();
}
else {
ExtUI::setUserConfirmed();
GOTO_PREVIOUS();
}
return true;
case 2: GOTO_PREVIOUS(); return true;
default: return false;

View file

@ -143,7 +143,9 @@ void TuneMenu::pausePrint() {
void TuneMenu::resumePrint() {
sound.play(twinkle, PLAY_ASYNCHRONOUS);
if (ExtUI::isPrintingFromMedia())
if (ExtUI::awaitingUserConfirm())
ExtUI::setUserConfirmed();
else if (ExtUI::isPrintingFromMedia())
ExtUI::resumePrint();
#ifdef ACTION_ON_RESUME
else host_action_resume();

View file

@ -943,6 +943,10 @@ namespace ExtUI {
feedrate_percentage = constrain(value, 10, 500);
}
bool awaitingUserConfirm() {
return wait_for_user;
}
void setUserConfirmed() {
TERN_(HAS_RESUME_CONTINUE, wait_for_user = false);
}

View file

@ -197,6 +197,7 @@ namespace ExtUI {
void setTravelAcceleration_mm_s2(const float);
void setFeedrate_percent(const float);
void setFlow_percent(const int16_t, const extruder_t);
bool awaitingUserConfirm();
void setUserConfirmed();
#if ENABLED(LIN_ADVANCE)