Browse Source

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.
Marcio Teixeira 3 years ago
parent
commit
d03c3980de

+ 9
- 2
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/confirm_user_request_alert_box.cpp View File

36
 bool ConfirmUserRequestAlertBox::onTouchEnd(uint8_t tag) {
36
 bool ConfirmUserRequestAlertBox::onTouchEnd(uint8_t tag) {
37
   switch (tag) {
37
   switch (tag) {
38
     case 1:
38
     case 1:
39
-      ExtUI::setUserConfirmed();
40
-      GOTO_PREVIOUS();
39
+      if (ExtUI::isPrintingPaused()) {
40
+        // The TuneMenu will call ExtUI::setUserConfirmed()
41
+        GOTO_SCREEN(TuneMenu);
42
+        current_screen.forget();
43
+      }
44
+      else {
45
+        ExtUI::setUserConfirmed();
46
+        GOTO_PREVIOUS();
47
+      }
41
       return true;
48
       return true;
42
     case 2: GOTO_PREVIOUS(); return true;
49
     case 2: GOTO_PREVIOUS(); return true;
43
     default:                 return false;
50
     default:                 return false;

+ 3
- 1
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/tune_menu.cpp View File

143
 
143
 
144
 void TuneMenu::resumePrint() {
144
 void TuneMenu::resumePrint() {
145
   sound.play(twinkle, PLAY_ASYNCHRONOUS);
145
   sound.play(twinkle, PLAY_ASYNCHRONOUS);
146
-  if (ExtUI::isPrintingFromMedia())
146
+  if (ExtUI::awaitingUserConfirm())
147
+    ExtUI::setUserConfirmed();
148
+  else if (ExtUI::isPrintingFromMedia())
147
     ExtUI::resumePrint();
149
     ExtUI::resumePrint();
148
   #ifdef ACTION_ON_RESUME
150
   #ifdef ACTION_ON_RESUME
149
     else host_action_resume();
151
     else host_action_resume();

+ 4
- 0
Marlin/src/lcd/extui/ui_api.cpp View File

943
     feedrate_percentage = constrain(value, 10, 500);
943
     feedrate_percentage = constrain(value, 10, 500);
944
   }
944
   }
945
 
945
 
946
+  bool awaitingUserConfirm() {
947
+    return wait_for_user;
948
+  }
949
+
946
   void setUserConfirmed() {
950
   void setUserConfirmed() {
947
     TERN_(HAS_RESUME_CONTINUE, wait_for_user = false);
951
     TERN_(HAS_RESUME_CONTINUE, wait_for_user = false);
948
   }
952
   }

+ 1
- 0
Marlin/src/lcd/extui/ui_api.h View File

197
   void setTravelAcceleration_mm_s2(const float);
197
   void setTravelAcceleration_mm_s2(const float);
198
   void setFeedrate_percent(const float);
198
   void setFeedrate_percent(const float);
199
   void setFlow_percent(const int16_t, const extruder_t);
199
   void setFlow_percent(const int16_t, const extruder_t);
200
+  bool awaitingUserConfirm();
200
   void setUserConfirmed();
201
   void setUserConfirmed();
201
 
202
 
202
   #if ENABLED(LIN_ADVANCE)
203
   #if ENABLED(LIN_ADVANCE)

Loading…
Cancel
Save