浏览代码

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 年前
父节点
当前提交
d03c3980de

+ 9
- 2
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/confirm_user_request_alert_box.cpp 查看文件

@@ -36,8 +36,15 @@ void ConfirmUserRequestAlertBox::onRedraw(draw_mode_t mode) {
36 36
 bool ConfirmUserRequestAlertBox::onTouchEnd(uint8_t tag) {
37 37
   switch (tag) {
38 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 48
       return true;
42 49
     case 2: GOTO_PREVIOUS(); return true;
43 50
     default:                 return false;

+ 3
- 1
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/tune_menu.cpp 查看文件

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

+ 4
- 0
Marlin/src/lcd/extui/ui_api.cpp 查看文件

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

+ 1
- 0
Marlin/src/lcd/extui/ui_api.h 查看文件

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

正在加载...
取消
保存