浏览代码

Enhance and fix FTDI Touch UI (#21148)

Marcio T 4 年前
父节点
当前提交
ece06c26a9
没有帐户链接到提交者的电子邮件

+ 4
- 4
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/language/language_en.h 查看文件

157
 
157
 
158
   #ifdef TOUCH_UI_COCOA_PRESS
158
   #ifdef TOUCH_UI_COCOA_PRESS
159
     PROGMEM Language_Str MSG_BODY                   = u8"Body";
159
     PROGMEM Language_Str MSG_BODY                   = u8"Body";
160
-    PROGMEM Language_Str MSG_INTERNAL               = u8"Internal";
160
+    PROGMEM Language_Str MSG_SELECT_CHOCOLATE_TYPE  = u8"Select Chocolate Type";
161
     PROGMEM Language_Str MSG_EXTERNAL               = u8"External";
161
     PROGMEM Language_Str MSG_EXTERNAL               = u8"External";
162
     PROGMEM Language_Str MSG_CHOCOLATE              = u8"Chocolate";
162
     PROGMEM Language_Str MSG_CHOCOLATE              = u8"Chocolate";
163
     PROGMEM Language_Str MSG_UNLOAD_CARTRIDGE       = u8"Unload Cartridge";
163
     PROGMEM Language_Str MSG_UNLOAD_CARTRIDGE       = u8"Unload Cartridge";
164
-    PROGMEM Language_Str MSG_LOAD_CHOCOLATE         = u8"Load Chocolate";
165
-    PROGMEM Language_Str MSG_CARTRIDGE_IN           = u8"Cartridge In";
166
-    PROGMEM Language_Str MSG_CARTRIDGE_OUT          = u8"Cartridge Out";
164
+    PROGMEM Language_Str MSG_LOAD_UNLOAD            = u8"Load/Unload";
165
+    PROGMEM Language_Str MSG_FULL_LOAD              = u8"Full Load";
166
+    PROGMEM Language_Str MSG_FULL_UNLOAD            = u8"Full Unload";
167
     PROGMEM Language_Str MSG_PREHEAT_CHOCOLATE      = u8"Preheat Chocolate";
167
     PROGMEM Language_Str MSG_PREHEAT_CHOCOLATE      = u8"Preheat Chocolate";
168
     PROGMEM Language_Str MSG_PREHEAT_FINISHED       = u8"Preheat finished";
168
     PROGMEM Language_Str MSG_PREHEAT_FINISHED       = u8"Preheat finished";
169
     PROGMEM Language_Str MSG_PREHEAT                = u8"Preheat";
169
     PROGMEM Language_Str MSG_PREHEAT                = u8"Preheat";

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

271
        .cmd(CLEAR(true,true,true));
271
        .cmd(CLEAR(true,true,true));
272
 
272
 
273
     // Draw the shadow and tags
273
     // Draw the shadow and tags
274
-    cmd.cmd(COLOR_RGB(0x444444));
274
+    cmd.cmd(COLOR_RGB(Theme::bed_mesh_shadow_rgb));
275
     BedMeshScreen::drawMesh(INSET_POS(MESH_POS), nullptr, USE_POINTS | USE_TAGS);
275
     BedMeshScreen::drawMesh(INSET_POS(MESH_POS), nullptr, USE_POINTS | USE_TAGS);
276
     cmd.cmd(COLOR_RGB(bg_text_enabled));
276
     cmd.cmd(COLOR_RGB(bg_text_enabled));
277
   }
277
   }
282
     if (gotAllPoints) {
282
     if (gotAllPoints) {
283
       drawHighlightedPointValue();
283
       drawHighlightedPointValue();
284
     }
284
     }
285
+    CommandProcessor cmd;
286
+    cmd.cmd(COLOR_RGB(Theme::bed_mesh_lines_rgb));
285
     const float levelingProgress = sq(float(mydata.count) / GRID_MAX_POINTS);
287
     const float levelingProgress = sq(float(mydata.count) / GRID_MAX_POINTS);
286
     BedMeshScreen::drawMesh(INSET_POS(MESH_POS), ExtUI::getMeshArray(),
288
     BedMeshScreen::drawMesh(INSET_POS(MESH_POS), ExtUI::getMeshArray(),
287
       USE_POINTS | USE_HIGHLIGHT | USE_AUTOSCALE | (gotAllPoints ? USE_COLORS : 0),
289
       USE_POINTS | USE_HIGHLIGHT | USE_AUTOSCALE | (gotAllPoints ? USE_COLORS : 0),

+ 155
- 35
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/cocoa_press_load_chocolate.cpp 查看文件

27
 
27
 
28
 #ifdef FTDI_COCOA_LOAD_CHOCOLATE_SCREEN
28
 #ifdef FTDI_COCOA_LOAD_CHOCOLATE_SCREEN
29
 
29
 
30
+#include "../ftdi_eve_lib/extras/poly_ui.h"
31
+
32
+#include "cocoa_press_ui.h"
33
+
34
+#define POLY(A) PolyUI::poly_reader_t(A, sizeof(A)/sizeof(A[0]))
35
+
36
+const uint8_t shadow_depth = 5;
37
+
30
 using namespace ExtUI;
38
 using namespace ExtUI;
31
 using namespace FTDI;
39
 using namespace FTDI;
32
 using namespace Theme;
40
 using namespace Theme;
33
 
41
 
34
-#define GRID_COLS 2
35
-#define GRID_ROWS 6
42
+constexpr static LoadChocolateScreenData &mydata = screen_data.LoadChocolateScreen;
36
 
43
 
37
-#define TITLE_POS             BTN_POS(1,1), BTN_SIZE(2,1)
38
-#define DESCRIPTION_POS       BTN_POS(1,2), BTN_SIZE(2,3)
39
-#define CARTRIDGE_OUT_BTN_POS BTN_POS(1,5), BTN_SIZE(1,1)
40
-#define CARTRIDGE_IN_BTN_POS  BTN_POS(2,5), BTN_SIZE(1,1)
41
-#define BACK_BTN_POS          BTN_POS(1,6), BTN_SIZE(2,1)
44
+void LoadChocolateScreen::draw_syringe(draw_mode_t what) {
45
+  #if ENABLED(COCOA_PRESS_CHOCOLATE_LEVEL_SENSOR)
46
+    const float fill_level = get_chocolate_fill_level();
47
+  #else
48
+    constexpr float fill_level = 1.0f;
49
+  #endif
42
 
50
 
43
-void LoadChocolateScreen::onRedraw(draw_mode_t what) {
44
   CommandProcessor cmd;
51
   CommandProcessor cmd;
52
+  PolyUI ui(cmd, what);
45
 
53
 
46
   if (what & BACKGROUND) {
54
   if (what & BACKGROUND) {
47
-    cmd.cmd(CLEAR_COLOR_RGB(bg_color))
48
-       .cmd(CLEAR(true,true,true))
49
-       .cmd(COLOR_RGB(bg_text_enabled))
50
-       .tag(0)
51
-       .font(font_large)
52
-       .text(TITLE_POS, GET_TEXT_F(MSG_LOAD_CHOCOLATE));
53
-       draw_text_box(cmd, DESCRIPTION_POS, F(
54
-        "Drop your chocolate refill into the cartridge. "
55
-        "Press and hold the Cartridge Out button until "
56
-        "the plunger adapter is visible at the bottom of "
57
-        "the extruder. Securely attach a red plunger to "
58
-        "the plunger adapter and load the cartridge onto "
59
-        "the plunger. Press and hold Cartridge In button "
60
-        "until cartridge is fully loaded into the extruder, "
61
-        "and use the buttons to help follow the locking path "
62
-        "to lock"),
63
-        OPT_CENTERY, font_medium);
55
+    // Paint the shadow for the syringe
56
+    ui.color(shadow_rgb);
57
+    ui.shadow(POLY(syringe_outline), shadow_depth);
64
   }
58
   }
65
 
59
 
66
   if (what & FOREGROUND) {
60
   if (what & FOREGROUND) {
67
-    cmd.font(font_medium)
68
-       .colors(normal_btn)
69
-       .tag(2).button(CARTRIDGE_OUT_BTN_POS, GET_TEXT_F(MSG_CARTRIDGE_OUT))
70
-       .tag(3).button(CARTRIDGE_IN_BTN_POS,  GET_TEXT_F(MSG_CARTRIDGE_IN))
71
-              .colors(action_btn)
72
-       .tag(1).button(BACK_BTN_POS,    GET_TEXT_F(MSG_BACK));
61
+    int16_t x, y, h, v;
62
+
63
+    // Paint the syringe icon
64
+    ui.color(syringe_rgb);
65
+    ui.fill(POLY(syringe_outline));
66
+
67
+    ui.color(fluid_rgb);
68
+    ui.bounds(POLY(syringe_fluid), x, y, h, v);
69
+    cmd.cmd(SAVE_CONTEXT());
70
+    cmd.cmd(SCISSOR_XY(x,y + v * (1.0 - fill_level)));
71
+    cmd.cmd(SCISSOR_SIZE(h,  v *        fill_level));
72
+    ui.fill(POLY(syringe_fluid), false);
73
+    cmd.cmd(RESTORE_CONTEXT());
74
+
75
+    ui.color(stroke_rgb);
76
+    ui.fill(POLY(syringe));
73
   }
77
   }
74
 }
78
 }
75
 
79
 
80
+void LoadChocolateScreen::draw_buttons(draw_mode_t what) {
81
+  int16_t x, y, h, v;
82
+
83
+  CommandProcessor cmd;
84
+  PolyUI ui(cmd, what);
85
+
86
+  cmd.font(font_medium).colors(normal_btn);
87
+
88
+  ui.bounds(POLY(load_screen_unload_btn), x, y, h, v);
89
+  cmd.tag(2).button(x, y, h, v, GET_TEXT_F(MSG_FULL_UNLOAD));
90
+
91
+  ui.bounds(POLY(load_screen_load_btn), x, y, h, v);
92
+  cmd.tag(3).button(x, y, h, v, GET_TEXT_F(MSG_FULL_LOAD));
93
+
94
+  ui.bounds(POLY(load_screen_back_btn), x, y, h, v);
95
+  cmd.tag(1).colors(action_btn).button(x, y, h, v, GET_TEXT_F(MSG_BACK));
96
+}
97
+
98
+void LoadChocolateScreen::draw_text(draw_mode_t what) {
99
+  if (what & BACKGROUND) {
100
+    int16_t x, y, h, v;
101
+
102
+    CommandProcessor cmd;
103
+    PolyUI ui(cmd, what);
104
+
105
+    cmd.font(font_medium).cmd(COLOR_RGB(bg_text_enabled));
106
+
107
+    ui.bounds(POLY(load_sreen_title), x, y, h, v);
108
+    cmd.tag(2).text(x, y, h, v, GET_TEXT_F(MSG_LOAD_UNLOAD));
109
+
110
+    ui.bounds(POLY(load_screen_increment), x, y, h, v);
111
+    cmd.tag(3).text(x, y, h, v, GET_TEXT_F(MSG_INCREMENT));
112
+  }
113
+}
114
+
115
+void LoadChocolateScreen::draw_arrows(draw_mode_t what) {
116
+  CommandProcessor cmd;
117
+  PolyUI ui(cmd, what);
118
+
119
+  ui.button_fill  (fill_rgb);
120
+  ui.button_stroke(stroke_rgb, 28);
121
+  ui.button_shadow(shadow_rgb, shadow_depth);
122
+
123
+  constexpr uint8_t style = PolyUI::REGULAR;
124
+
125
+  ui.button(4, POLY(load_screen_extrude), style);
126
+  ui.button(5, POLY(load_screen_retract), style);
127
+}
128
+
129
+void LoadChocolateScreen::onEntry() {
130
+  mydata.repeat_tag = 0;
131
+}
132
+
133
+void LoadChocolateScreen::onRedraw(draw_mode_t what) {
134
+  if (what & BACKGROUND) {
135
+    CommandProcessor cmd;
136
+    cmd.cmd(CLEAR_COLOR_RGB(bg_color))
137
+       .cmd(CLEAR(true,true,true))
138
+       .tag(0);
139
+  }
140
+
141
+  draw_syringe(what);
142
+  draw_arrows(what);
143
+  draw_buttons(what);
144
+  draw_text(what);
145
+}
146
+
147
+bool LoadChocolateScreen::onTouchStart(uint8_t) {
148
+  mydata.repeat_tag = 0;
149
+  return true;
150
+}
151
+
76
 bool LoadChocolateScreen::onTouchEnd(uint8_t tag) {
152
 bool LoadChocolateScreen::onTouchEnd(uint8_t tag) {
77
   using namespace ExtUI;
153
   using namespace ExtUI;
78
   switch (tag) {
154
   switch (tag) {
155
+    case 2:
156
+      mydata.repeat_tag = (mydata.repeat_tag == 2) ? 0 : 2;
157
+      break;
158
+    case 3:
159
+      mydata.repeat_tag = (mydata.repeat_tag == 3) ? 0 : 3;
160
+      break;
79
     case 1: GOTO_PREVIOUS(); break;
161
     case 1: GOTO_PREVIOUS(); break;
80
   }
162
   }
81
   return true;
163
   return true;
82
 }
164
 }
83
 
165
 
166
+void LoadChocolateScreen::setManualFeedrateAndIncrement(float feedrate_mm_s, float &increment_mm) {
167
+  // Compute increment so feedrate so that the tool lags the adjuster when it is
168
+  // being held down, this allows enough margin for the planner to
169
+  // connect segments and even out the motion.
170
+  ExtUI::setFeedrate_mm_s(feedrate_mm_s);
171
+  increment_mm = feedrate_mm_s / ((TOUCH_REPEATS_PER_SECOND) * 0.80f);
172
+}
173
+
84
 bool LoadChocolateScreen::onTouchHeld(uint8_t tag) {
174
 bool LoadChocolateScreen::onTouchHeld(uint8_t tag) {
85
   if (ExtUI::isMoving()) return false; // Don't allow moves to accumulate
175
   if (ExtUI::isMoving()) return false; // Don't allow moves to accumulate
86
-  constexpr float increment = 0.25;
87
-  MoveAxisScreen::setManualFeedrate(E0, increment);
176
+  float increment;
177
+  setManualFeedrateAndIncrement(20, increment);
88
   #define UI_INCREMENT_AXIS(axis) UI_INCREMENT(AxisPosition_mm, axis);
178
   #define UI_INCREMENT_AXIS(axis) UI_INCREMENT(AxisPosition_mm, axis);
89
   #define UI_DECREMENT_AXIS(axis) UI_DECREMENT(AxisPosition_mm, axis);
179
   #define UI_DECREMENT_AXIS(axis) UI_DECREMENT(AxisPosition_mm, axis);
90
   switch (tag) {
180
   switch (tag) {
91
-    case 2: UI_DECREMENT_AXIS(E0); break;
92
-    case 3: UI_INCREMENT_AXIS(E0); break;
181
+    case 2: {
182
+      if (get_chocolate_fill_level() < 0.1) {
183
+        mydata.repeat_tag = 0;
184
+        return false;
185
+      }
186
+      UI_INCREMENT_AXIS(E0);
187
+      break;
188
+    }
189
+    case 3: {
190
+      if (get_chocolate_fill_level() > 0.9) {
191
+        mydata.repeat_tag = 0;
192
+        return false;
193
+      }
194
+      UI_DECREMENT_AXIS(E0);
195
+      break;
196
+    }
197
+    case 4:
198
+      UI_INCREMENT_AXIS(E0);
199
+      break;
200
+    case 5:
201
+      UI_DECREMENT_AXIS(E0);
202
+      break;
93
     default: return false;
203
     default: return false;
94
   }
204
   }
95
   #undef UI_DECREMENT_AXIS
205
   #undef UI_DECREMENT_AXIS
97
   return false;
207
   return false;
98
 }
208
 }
99
 
209
 
210
+void LoadChocolateScreen::onIdle() {
211
+  reset_menu_timeout();
212
+  if (mydata.repeat_tag) onTouchHeld(mydata.repeat_tag);
213
+  if (refresh_timer.elapsed(STATUS_UPDATE_INTERVAL)) {
214
+    if (!EventLoop::is_touch_held())
215
+      onRefresh();
216
+    refresh_timer.start();
217
+  }
218
+  BaseScreen::onIdle();
219
+}
100
 #endif // FTDI_COCOA_LOAD_CHOCOLATE_SCREEN
220
 #endif // FTDI_COCOA_LOAD_CHOCOLATE_SCREEN

+ 13
- 0
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/cocoa_press_load_chocolate.h 查看文件

26
 #define FTDI_COCOA_LOAD_CHOCOLATE_SCREEN
26
 #define FTDI_COCOA_LOAD_CHOCOLATE_SCREEN
27
 #define FTDI_COCOA_LOAD_CHOCOLATE_SCREEN_CLASS LoadChocolateScreen
27
 #define FTDI_COCOA_LOAD_CHOCOLATE_SCREEN_CLASS LoadChocolateScreen
28
 
28
 
29
+struct LoadChocolateScreenData {
30
+  uint8_t repeat_tag;
31
+};
32
+
29
 class LoadChocolateScreen : public BaseScreen, public CachedScreen<LOAD_CHOCOLATE_SCREEN_CACHE> {
33
 class LoadChocolateScreen : public BaseScreen, public CachedScreen<LOAD_CHOCOLATE_SCREEN_CACHE> {
34
+  private:
35
+    static void setManualFeedrateAndIncrement(float feedrate_mm_s, float &increment);
36
+    static void draw_syringe(draw_mode_t what);
37
+    static void draw_arrows(draw_mode_t what);
38
+    static void draw_buttons(draw_mode_t what);
39
+    static void draw_text(draw_mode_t what);
30
   public:
40
   public:
41
+    static void onEntry();
42
+    static void onIdle();
31
     static void onRedraw(draw_mode_t);
43
     static void onRedraw(draw_mode_t);
44
+    static bool onTouchStart(uint8_t tag);
32
     static bool onTouchEnd(uint8_t tag);
45
     static bool onTouchEnd(uint8_t tag);
33
     static bool onTouchHeld(uint8_t tag);
46
     static bool onTouchHeld(uint8_t tag);
34
 };
47
 };

+ 30
- 21
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/cocoa_press_main_menu.cpp 查看文件

29
 using namespace FTDI;
29
 using namespace FTDI;
30
 using namespace Theme;
30
 using namespace Theme;
31
 
31
 
32
-#define GRID_ROWS 4
32
+#define GRID_ROWS 5
33
 #define GRID_COLS 2
33
 #define GRID_COLS 2
34
 
34
 
35
-#define MOVE_XYZ_POS          BTN_POS(1,1), BTN_SIZE(1,1)
35
+#define ZPROBE_ZOFFSET_POS    BTN_POS(1,1), BTN_SIZE(1,1)
36
+#define MOVE_XYZ_POS          BTN_POS(1,2), BTN_SIZE(1,1)
36
 #define TEMPERATURE_POS       BTN_POS(2,1), BTN_SIZE(1,1)
37
 #define TEMPERATURE_POS       BTN_POS(2,1), BTN_SIZE(1,1)
37
-#define ZPROBE_ZOFFSET_POS    BTN_POS(1,2), BTN_SIZE(1,1)
38
 #define MOVE_E_POS            BTN_POS(2,2), BTN_SIZE(1,1)
38
 #define MOVE_E_POS            BTN_POS(2,2), BTN_SIZE(1,1)
39
 #define SPEED_POS             BTN_POS(1,3), BTN_SIZE(1,1)
39
 #define SPEED_POS             BTN_POS(1,3), BTN_SIZE(1,1)
40
 #define ADVANCED_SETTINGS_POS BTN_POS(2,3), BTN_SIZE(1,1)
40
 #define ADVANCED_SETTINGS_POS BTN_POS(2,3), BTN_SIZE(1,1)
41
-#define ABOUT_PRINTER_POS     BTN_POS(1,4), BTN_SIZE(1,1)
42
-#define BACK_POS              BTN_POS(2,4), BTN_SIZE(1,1)
41
+#define DISABLE_STEPPERS_POS  BTN_POS(1,4), BTN_SIZE(1,1)
42
+#define LEVELING_POS          BTN_POS(2,4), BTN_SIZE(1,1)
43
+#define ABOUT_PRINTER_POS     BTN_POS(1,5), BTN_SIZE(1,1)
44
+#define BACK_POS              BTN_POS(2,5), BTN_SIZE(1,1)
43
 
45
 
44
 void MainMenu::onRedraw(draw_mode_t what) {
46
 void MainMenu::onRedraw(draw_mode_t what) {
45
   if (what & BACKGROUND) {
47
   if (what & BACKGROUND) {
52
     CommandProcessor cmd;
54
     CommandProcessor cmd;
53
     cmd.colors(normal_btn)
55
     cmd.colors(normal_btn)
54
        .font(Theme::font_medium)
56
        .font(Theme::font_medium)
55
-       .tag(2).button(MOVE_XYZ_POS,          GET_TEXT_F(MSG_XYZ_MOVE))
56
-       .tag(3).button(TEMPERATURE_POS,       GET_TEXT_F(MSG_TEMPERATURE))
57
+       .tag( 2).button(MOVE_XYZ_POS,          GET_TEXT_F(MSG_XYZ_MOVE))
58
+       .tag( 3).button(TEMPERATURE_POS,       GET_TEXT_F(MSG_TEMPERATURE))
57
        .enabled(BOTH(HAS_LEVELING, HAS_BED_PROBE))
59
        .enabled(BOTH(HAS_LEVELING, HAS_BED_PROBE))
58
-       .tag(4).button(ZPROBE_ZOFFSET_POS,    GET_TEXT_F(MSG_ZPROBE_ZOFFSET))
59
-       .tag(5).button(MOVE_E_POS,            GET_TEXT_F(MSG_E_MOVE))
60
-       .tag(6).button(SPEED_POS,             GET_TEXT_F(MSG_PRINT_SPEED))
61
-       .tag(7).button(ADVANCED_SETTINGS_POS, GET_TEXT_F(MSG_ADVANCED_SETTINGS))
62
-       .tag(8).button(ABOUT_PRINTER_POS,     GET_TEXT_F(MSG_INFO_MENU))
60
+       .tag( 4).button(ZPROBE_ZOFFSET_POS,    GET_TEXT_F(MSG_ZPROBE_ZOFFSET))
61
+       .tag( 5).button(MOVE_E_POS,            GET_TEXT_F(MSG_E_MOVE))
62
+       .tag( 6).button(SPEED_POS,             GET_TEXT_F(MSG_PRINT_SPEED))
63
+       .tag( 7).button(ADVANCED_SETTINGS_POS, GET_TEXT_F(MSG_ADVANCED_SETTINGS))
64
+       .tag( 8).button(DISABLE_STEPPERS_POS,  GET_TEXT_F(MSG_DISABLE_STEPPERS))
65
+       .enabled(HAS_LEVELING)
66
+       .tag( 9).button(LEVELING_POS,          GET_TEXT_F(MSG_LEVELING))
67
+       .tag(10).button(ABOUT_PRINTER_POS,     GET_TEXT_F(MSG_INFO_MENU))
63
        .colors(action_btn)
68
        .colors(action_btn)
64
-       .tag(1).button(BACK_POS,              GET_TEXT_F(MSG_BACK));
69
+       .tag(1).button(BACK_POS,               GET_TEXT_F(MSG_BACK));
65
   }
70
   }
66
 }
71
 }
67
 
72
 
69
   using namespace ExtUI;
74
   using namespace ExtUI;
70
 
75
 
71
   switch (tag) {
76
   switch (tag) {
72
-    case 1: SaveSettingsDialogBox::promptToSaveSettings(); break;
73
-    case 2: GOTO_SCREEN(MoveXYZScreen);                    break;
74
-    case 3: GOTO_SCREEN(TemperatureScreen);                break;
77
+    case  1: SaveSettingsDialogBox::promptToSaveSettings(); break;
78
+    case  2: GOTO_SCREEN(MoveXYZScreen);                    break;
79
+    case  3: GOTO_SCREEN(TemperatureScreen);                break;
75
     #if BOTH(HAS_LEVELING, HAS_BED_PROBE)
80
     #if BOTH(HAS_LEVELING, HAS_BED_PROBE)
76
-    case 4: GOTO_SCREEN(ZOffsetScreen);                    break;
81
+    case  4: GOTO_SCREEN(ZOffsetScreen);                    break;
77
     #endif
82
     #endif
78
-    case 5: GOTO_SCREEN(MoveEScreen);                      break;
79
-    case 6: GOTO_SCREEN(FeedratePercentScreen);            break;
80
-    case 7: GOTO_SCREEN(AdvancedSettingsMenu);             break;
81
-    case 8: GOTO_SCREEN(AboutScreen);                      break;
83
+    case  5: GOTO_SCREEN(MoveEScreen);                      break;
84
+    case  6: GOTO_SCREEN(FeedratePercentScreen);            break;
85
+    case  7: GOTO_SCREEN(AdvancedSettingsMenu);             break;
86
+    case  8: injectCommands_P(PSTR("M84"));                 break;
87
+    #if HAS_LEVELING
88
+    case 9:  GOTO_SCREEN(LevelingMenu);                     break;
89
+    #endif
90
+    case 10: GOTO_SCREEN(AboutScreen);                      break;
82
     default:
91
     default:
83
       return false;
92
       return false;
84
   }
93
   }

+ 7
- 5
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/cocoa_press_move_e_screen.cpp 查看文件

30
 using namespace FTDI;
30
 using namespace FTDI;
31
 using namespace ExtUI;
31
 using namespace ExtUI;
32
 
32
 
33
+constexpr static MoveAxisScreenData &mydata = screen_data.MoveAxisScreen;
34
+
33
 void MoveEScreen::onRedraw(draw_mode_t what) {
35
 void MoveEScreen::onRedraw(draw_mode_t what) {
34
   widgets_t w(what);
36
   widgets_t w(what);
35
   w.precision(1);
37
   w.precision(1);
37
   w.heading(                           GET_TEXT_F(MSG_E_MOVE));
39
   w.heading(                           GET_TEXT_F(MSG_E_MOVE));
38
   w.color(Theme::e_axis);
40
   w.color(Theme::e_axis);
39
   #if EXTRUDERS == 1
41
   #if EXTRUDERS == 1
40
-    w.adjuster(  8, GET_TEXT_F(MSG_AXIS_E),  screen_data.MoveAxis.e_rel[0], canMove(E0));
42
+    w.adjuster(  8, GET_TEXT_F(MSG_AXIS_E),  mydata.e_rel[0], canMove(E0));
41
   #elif HAS_MULTI_EXTRUDER
43
   #elif HAS_MULTI_EXTRUDER
42
-    w.adjuster(  8, GET_TEXT_F(MSG_AXIS_E1), screen_data.MoveAxis.e_rel[0], canMove(E0));
43
-    w.adjuster( 10, GET_TEXT_F(MSG_AXIS_E2), screen_data.MoveAxis.e_rel[1], canMove(E1));
44
+    w.adjuster(  8, GET_TEXT_F(MSG_AXIS_E1), mydata.e_rel[0], canMove(E0));
45
+    w.adjuster( 10, GET_TEXT_F(MSG_AXIS_E2), mydata.e_rel[1], canMove(E1));
44
     #if EXTRUDERS > 2
46
     #if EXTRUDERS > 2
45
-      w.adjuster( 12, GET_TEXT_F(MSG_AXIS_E3), screen_data.MoveAxis.e_rel[2], canMove(E2));
47
+      w.adjuster( 12, GET_TEXT_F(MSG_AXIS_E3), mydata.e_rel[2], canMove(E2));
46
     #endif
48
     #endif
47
     #if EXTRUDERS > 3
49
     #if EXTRUDERS > 3
48
-      w.adjuster( 14, GET_TEXT_F(MSG_AXIS_E4), screen_data.MoveAxis.e_rel[3], canMove(E3));
50
+      w.adjuster( 14, GET_TEXT_F(MSG_AXIS_E4), mydata.e_rel[3], canMove(E3));
49
     #endif
51
     #endif
50
   #endif
52
   #endif
51
   w.increments();
53
   w.increments();

+ 10
- 6
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/cocoa_press_preheat_menu.cpp 查看文件

32
 #define GRID_COLS 2
32
 #define GRID_COLS 2
33
 
33
 
34
 void PreheatMenu::onRedraw(draw_mode_t what) {
34
 void PreheatMenu::onRedraw(draw_mode_t what) {
35
-  const int16_t w = has_extra_heater() ? BTN_W(1) : BTN_W(2);
35
+  const int16_t w = TERN0(COCOA_PRESS_EXTRA_HEATER, has_extra_heater() ? BTN_W(1) : BTN_W(2));
36
   const int16_t h = BTN_H(1);
36
   const int16_t h = BTN_H(1);
37
 
37
 
38
   if (what & BACKGROUND) {
38
   if (what & BACKGROUND) {
42
        .tag(0)
42
        .tag(0)
43
        .cmd(COLOR_RGB(bg_text_enabled))
43
        .cmd(COLOR_RGB(bg_text_enabled))
44
        .font(Theme::font_medium)
44
        .font(Theme::font_medium)
45
-       .text  ( BTN_POS(1,1), w, h, GET_TEXT_F(MSG_INTERNAL));
46
-    if (has_extra_heater()) {
45
+       .text( BTN_POS(1,1), w, h, GET_TEXT_F(MSG_SELECT_CHOCOLATE_TYPE));
46
+    #if ENABLED(COCOA_PRESS_EXTRA_HEATER)
47
+      if (has_extra_heater()) {
47
         cmd.text( BTN_POS(2,1), w, h, GET_TEXT_F(MSG_EXTERNAL));
48
         cmd.text( BTN_POS(2,1), w, h, GET_TEXT_F(MSG_EXTERNAL));
48
-    }
49
+      }
50
+    #endif
49
   }
51
   }
50
 
52
 
51
   if (what & FOREGROUND) {
53
   if (what & FOREGROUND) {
55
        .tag(2).button(BTN_POS(1,2), w, h, F("Dark Chocolate"))
57
        .tag(2).button(BTN_POS(1,2), w, h, F("Dark Chocolate"))
56
        .tag(3).button(BTN_POS(1,3), w, h, F("Milk Chocolate"))
58
        .tag(3).button(BTN_POS(1,3), w, h, F("Milk Chocolate"))
57
        .tag(4).button(BTN_POS(1,4), w, h, F("White Chocolate"));
59
        .tag(4).button(BTN_POS(1,4), w, h, F("White Chocolate"));
58
-    if (has_extra_heater()) {
60
+    #if ENABLED(COCOA_PRESS_EXTRA_HEATER)
61
+      if (has_extra_heater()) {
59
         cmd.tag(5).button(BTN_POS(2,2), w, h, F("Dark Chocolate"))
62
         cmd.tag(5).button(BTN_POS(2,2), w, h, F("Dark Chocolate"))
60
            .tag(6).button(BTN_POS(2,3), w, h, F("Milk Chocolate"))
63
            .tag(6).button(BTN_POS(2,3), w, h, F("Milk Chocolate"))
61
            .tag(7).button(BTN_POS(2,4), w, h, F("White Chocolate"));
64
            .tag(7).button(BTN_POS(2,4), w, h, F("White Chocolate"));
62
-    }
65
+      }
66
+    #endif
63
     cmd.colors(action_btn)
67
     cmd.colors(action_btn)
64
        .tag(1) .button(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
68
        .tag(1) .button(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
65
   }
69
   }

+ 12
- 12
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/cocoa_press_preheat_screen.cpp 查看文件

101
     cmd.tag(0)
101
     cmd.tag(0)
102
        .font(font_small);
102
        .font(font_small);
103
     if (what & BACKGROUND) {
103
     if (what & BACKGROUND) {
104
-        cmd.text(   SUB_POS(1,1), SUB_SIZE(9,1), label)
104
+        cmd.text(  SUB_POS(1,1), SUB_SIZE(9,1), label)
105
            .button(SUB_POS(1,2), SUB_SIZE(5,1), F(""), OPT_FLAT);
105
            .button(SUB_POS(1,2), SUB_SIZE(5,1), F(""), OPT_FLAT);
106
     }
106
     }
107
 
107
 
126
   draw_message(what);
126
   draw_message(what);
127
   draw_time_remaining(what);
127
   draw_time_remaining(what);
128
   draw_interaction_buttons(what);
128
   draw_interaction_buttons(what);
129
-  draw_adjuster(what, 1, GET_TEXT_F(MSG_NOZZLE),  getTargetTemp_celsius(E0),      NOZZLE_ADJ_POS);
130
-  draw_adjuster(what, 3, GET_TEXT_F(MSG_BODY),    getTargetTemp_celsius(E1),      BODY_ADJ_POS);
131
-  draw_adjuster(what, 5, GET_TEXT_F(MSG_CHAMBER), getTargetTemp_celsius(CHAMBER), CHAMBER_ADJ_POS);
129
+  draw_adjuster(what, 2, GET_TEXT_F(MSG_NOZZLE),  getTargetTemp_celsius(E0),      NOZZLE_ADJ_POS);
130
+  draw_adjuster(what, 4, GET_TEXT_F(MSG_BODY),    getTargetTemp_celsius(E1),      BODY_ADJ_POS);
131
+  draw_adjuster(what, 6, GET_TEXT_F(MSG_CHAMBER), getTargetTemp_celsius(CHAMBER), CHAMBER_ADJ_POS);
132
 }
132
 }
133
 
133
 
134
 bool PreheatTimerScreen::onTouchHeld(uint8_t tag) {
134
 bool PreheatTimerScreen::onTouchHeld(uint8_t tag) {
135
-  const float increment = (tag == 5 || tag == 6) ? 1 : 0.1;
135
+  const float increment = (tag == 6 || tag == 7) ? 1 : 0.1;
136
   switch (tag) {
136
   switch (tag) {
137
-    case 1: UI_DECREMENT(TargetTemp_celsius, E0); break;
138
-    case 2: UI_INCREMENT(TargetTemp_celsius, E0); break;
139
-    case 3: UI_DECREMENT(TargetTemp_celsius, E1); break;
140
-    case 4: UI_INCREMENT(TargetTemp_celsius, E1); break;
141
-    case 5: UI_DECREMENT(TargetTemp_celsius, CHAMBER); break;
142
-    case 6: UI_INCREMENT(TargetTemp_celsius, CHAMBER); break;
137
+    case 2: UI_DECREMENT(TargetTemp_celsius, E0); break;
138
+    case 3: UI_INCREMENT(TargetTemp_celsius, E0); break;
139
+    case 4: UI_DECREMENT(TargetTemp_celsius, E1); break;
140
+    case 5: UI_INCREMENT(TargetTemp_celsius, E1); break;
141
+    case 6: UI_DECREMENT(TargetTemp_celsius, CHAMBER); break;
142
+    case 7: UI_INCREMENT(TargetTemp_celsius, CHAMBER); break;
143
     default:
143
     default:
144
       return false;
144
       return false;
145
   }
145
   }
149
 bool PreheatTimerScreen::onTouchEnd(uint8_t tag) {
149
 bool PreheatTimerScreen::onTouchEnd(uint8_t tag) {
150
   switch (tag) {
150
   switch (tag) {
151
     case 1: GOTO_PREVIOUS(); return true;
151
     case 1: GOTO_PREVIOUS(); return true;
152
-    default: break;
152
+    default: return current_screen.onTouchHeld(tag);
153
   }
153
   }
154
   return false;
154
   return false;
155
 }
155
 }

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

86
   int16_t x, y, h, v;
86
   int16_t x, y, h, v;
87
 
87
 
88
   if (what & BACKGROUND) {
88
   if (what & BACKGROUND) {
89
-    cmd.cmd(COLOR_RGB(bg_color));
90
-
91
     cmd.cmd(COLOR_RGB(fluid_rgb));
89
     cmd.cmd(COLOR_RGB(fluid_rgb));
92
-    cmd.font(font_medium);
90
+    cmd.font(font_medium).tag(10);
93
 
91
 
94
     ui.bounds(POLY(chocolate_label), x, y, h, v);
92
     ui.bounds(POLY(chocolate_label), x, y, h, v);
95
     cmd.text(x, y, h, v, GET_TEXT_F(MSG_CHOCOLATE));
93
     cmd.text(x, y, h, v, GET_TEXT_F(MSG_CHOCOLATE));
119
     char str[15];
117
     char str[15];
120
     cmd.cmd(COLOR_RGB(fluid_rgb));
118
     cmd.cmd(COLOR_RGB(fluid_rgb));
121
 
119
 
122
-    cmd.font(font_large);
120
+    cmd.font(font_large).tag(10);
123
 
121
 
124
     format_temp(str, getActualTemp_celsius(E0));
122
     format_temp(str, getActualTemp_celsius(E0));
125
     ui.bounds(POLY(h0_temp), x, y, h, v);
123
     ui.bounds(POLY(h0_temp), x, y, h, v);
144
 }
142
 }
145
 
143
 
146
 void StatusScreen::draw_syringe(draw_mode_t what) {
144
 void StatusScreen::draw_syringe(draw_mode_t what) {
147
-  #if NUM_SERVOS < 2
148
-    // Note, this requires a new pin 108 to be added to to access ADC9
149
-    // "ArduinoAddons/arduino-1.8.5/packages/ultimachine/hardware/sam/1.6.9-b/variants/archim/variant.cpp"
150
-    const int val = analogRead(108);
151
-    const float fill_level = float(val) / 1024;
145
+  #if ENABLED(COCOA_PRESS_CHOCOLATE_LEVEL_SENSOR)
146
+    const float fill_level = get_chocolate_fill_level();
152
   #else
147
   #else
153
     constexpr float fill_level = 1.0f;
148
     constexpr float fill_level = 1.0f;
154
   #endif
149
   #endif
192
   CommandProcessor cmd;
187
   CommandProcessor cmd;
193
   PolyUI ui(cmd, what);
188
   PolyUI ui(cmd, what);
194
 
189
 
195
-  ui.bounds(POLY(unload_cartridge_btn), x, y, h, v);
196
-
197
   cmd.font(font_medium).colors(normal_btn);
190
   cmd.font(font_medium).colors(normal_btn);
198
 
191
 
199
-  ui.bounds(POLY(unload_cartridge_btn), x, y, h, v);
200
-  cmd.tag(1).button(x, y, h, v, GET_TEXT_F(MSG_UNLOAD_CARTRIDGE));
192
+  ui.bounds(POLY(park_btn), x, y, h, v);
193
+  cmd.tag(1).button(x, y, h, v, GET_TEXT_F(MSG_FILAMENT_PARK_ENABLED));
201
 
194
 
202
   ui.bounds(POLY(load_chocolate_btn), x, y, h, v);
195
   ui.bounds(POLY(load_chocolate_btn), x, y, h, v);
203
-  cmd.tag(2).button(x, y, h, v, GET_TEXT_F(MSG_LOAD_CHOCOLATE));
196
+  cmd.tag(2).button(x, y, h, v, GET_TEXT_F(MSG_LOAD_UNLOAD));
204
 
197
 
205
   ui.bounds(POLY(preheat_chocolate_btn), x, y, h, v);
198
   ui.bounds(POLY(preheat_chocolate_btn), x, y, h, v);
206
   cmd.tag(3).button(x, y, h, v, GET_TEXT_F(MSG_PREHEAT_CHOCOLATE));
199
   cmd.tag(3).button(x, y, h, v, GET_TEXT_F(MSG_PREHEAT_CHOCOLATE));
242
 
235
 
243
 bool StatusScreen::onTouchEnd(uint8_t tag) {
236
 bool StatusScreen::onTouchEnd(uint8_t tag) {
244
   switch (tag) {
237
   switch (tag) {
245
-    case  1: GOTO_SCREEN(UnloadCartridgeScreen); break;
238
+    case  1: SpinnerDialogBox::enqueueAndWait_P(F("G0 X0 Y0")); break;
246
     case  2: GOTO_SCREEN(LoadChocolateScreen); break;
239
     case  2: GOTO_SCREEN(LoadChocolateScreen); break;
247
     case  3: GOTO_SCREEN(PreheatMenu); break;
240
     case  3: GOTO_SCREEN(PreheatMenu); break;
248
     case  4: GOTO_SCREEN(MainMenu); break;
241
     case  4: GOTO_SCREEN(MainMenu); break;
270
       PUSH_SCREEN(StatusScreen);
263
       PUSH_SCREEN(StatusScreen);
271
       break;
264
       break;
272
     case  9: GOTO_SCREEN(FilesScreen); break;
265
     case  9: GOTO_SCREEN(FilesScreen); break;
266
+    case 10: GOTO_SCREEN(TemperatureScreen); break;
273
     default: return false;
267
     default: return false;
274
   }
268
   }
275
   // If a passcode is enabled, the LockScreen will prevent the
269
   // If a passcode is enabled, the LockScreen will prevent the

+ 10
- 3
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/cocoa_press_ui.h 查看文件

11
  *   GNU General Public License for more details.                           *
11
  *   GNU General Public License for more details.                           *
12
  *                                                                          *
12
  *                                                                          *
13
  *   To view a copy of the GNU General Public License, go to the following  *
13
  *   To view a copy of the GNU General Public License, go to the following  *
14
- *   location: <https://www.gnu.org/licenses/>.                              *
14
+ *   location: <https://www.gnu.org/licenses/>.                             *
15
  ****************************************************************************/
15
  ****************************************************************************/
16
 
16
 
17
 /**
17
 /**
32
 const PROGMEM uint16_t syringe_outline[] = {0xED96, 0x14F0, 0xE65D, 0x10E9, 0xDED2, 0x0F9C, 0xD74B, 0x110E, 0xD01B, 0x1543, 0xCE80, 0x1836, 0xCE0A, 0x1C3A, 0xCE0F, 0x27AD, 0xCF0A, 0x2BD3, 0xD127, 0x2E5B, 0xD2A1, 0x2FF0, 0xD2A2, 0x9FC9, 0xD407, 0xA97A, 0xD7B9, 0xB10C, 0xD7BF, 0xBB58, 0xD978, 0xC2BE, 0xDD55, 0xC6EB, 0xDD58, 0xD159, 0xDE3B, 0xD3A8, 0xDFCF, 0xD3AF, 0xE0B8, 0xD04C, 0xE0B8, 0xC6EB, 0xE4A7, 0xC299, 0xE652, 0xBAF6, 0xE652, 0xB10C, 0xEA2E, 0xA8EA, 0xEB6C, 0x9E86, 0xEB6C, 0x2F58, 0xEF3C, 0x2B4E, 0xF003, 0x2583, 0xEFFD, 0x1AC2, 0xED96, 0x14F0, 0xED96, 0x14F0};
32
 const PROGMEM uint16_t syringe_outline[] = {0xED96, 0x14F0, 0xE65D, 0x10E9, 0xDED2, 0x0F9C, 0xD74B, 0x110E, 0xD01B, 0x1543, 0xCE80, 0x1836, 0xCE0A, 0x1C3A, 0xCE0F, 0x27AD, 0xCF0A, 0x2BD3, 0xD127, 0x2E5B, 0xD2A1, 0x2FF0, 0xD2A2, 0x9FC9, 0xD407, 0xA97A, 0xD7B9, 0xB10C, 0xD7BF, 0xBB58, 0xD978, 0xC2BE, 0xDD55, 0xC6EB, 0xDD58, 0xD159, 0xDE3B, 0xD3A8, 0xDFCF, 0xD3AF, 0xE0B8, 0xD04C, 0xE0B8, 0xC6EB, 0xE4A7, 0xC299, 0xE652, 0xBAF6, 0xE652, 0xB10C, 0xEA2E, 0xA8EA, 0xEB6C, 0x9E86, 0xEB6C, 0x2F58, 0xEF3C, 0x2B4E, 0xF003, 0x2583, 0xEFFD, 0x1AC2, 0xED96, 0x14F0, 0xED96, 0x14F0};
33
 const PROGMEM uint16_t syringe_fluid[] = {0xDE73, 0x2512, 0xDA0C, 0x261D, 0xD5B8, 0x29A0, 0xD4AE, 0x2D87, 0xD4AE, 0x9F60, 0xD585, 0xA63B, 0xDE44, 0xA9DE, 0xE32A, 0xA942, 0xE7E3, 0xA6A5, 0xE930, 0xA342, 0xE95D, 0x9C1D, 0xE95B, 0x31B8, 0xE955, 0x2B63, 0xE867, 0x2A67, 0xE790, 0x28DE, 0xE342, 0x25CB, 0xDE73, 0x2512};
33
 const PROGMEM uint16_t syringe_fluid[] = {0xDE73, 0x2512, 0xDA0C, 0x261D, 0xD5B8, 0x29A0, 0xD4AE, 0x2D87, 0xD4AE, 0x9F60, 0xD585, 0xA63B, 0xDE44, 0xA9DE, 0xE32A, 0xA942, 0xE7E3, 0xA6A5, 0xE930, 0xA342, 0xE95D, 0x9C1D, 0xE95B, 0x31B8, 0xE955, 0x2B63, 0xE867, 0x2A67, 0xE790, 0x28DE, 0xE342, 0x25CB, 0xDE73, 0x2512};
34
 const PROGMEM uint16_t syringe[] = {0xED91, 0x1502, 0xE658, 0x10FB, 0xDECE, 0x0FAE, 0xD746, 0x1120, 0xD016, 0x1555, 0xCE7B, 0x1848, 0xCE05, 0x1C4D, 0xCE0A, 0x27BF, 0xCF05, 0x2BE5, 0xD122, 0x2E6E, 0xD29C, 0x3002, 0xD29D, 0x9FDB, 0xD402, 0xA98C, 0xD7B4, 0xB11F, 0xD7BA, 0xBB6A, 0xD973, 0xC2D1, 0xDD50, 0xC6FD, 0xDD53, 0xD16C, 0xDE36, 0xD3BA, 0xDFCA, 0xD3C2, 0xE0B3, 0xD05E, 0xE0B3, 0xC6FD, 0xE4A2, 0xC2AB, 0xE64D, 0xBB09, 0xE64D, 0xB11F, 0xEA29, 0xA8FC, 0xEB67, 0x9E98, 0xEB67, 0x2F6B, 0xEF37, 0x2B60, 0xEFFE, 0x2595, 0xEFF8, 0x1AD5, 0xED91, 0x1502, 0xED91, 0x1502, 0xFFFF, 0xD1CF, 0x1A7E, 0xD84F, 0x16DB, 0xDF19, 0x15A9, 0xE5E0, 0x16EA, 0xEC5B, 0x1AA4, 0xEC9D, 0x1D34, 0xEC9D, 0x20CC, 0xE5F1, 0x1D41, 0xDF02, 0x1C12, 0xD812, 0x1D41, 0xD166, 0x20CC, 0xD16C, 0x1B45, 0xD1CF, 0x1A7E, 0xFFFF, 0xE3BD, 0xACFD, 0xDE8E, 0xAF4F, 0xD988, 0xAC0F, 0xD7CC, 0xA8CD, 0xDD1C, 0xAAA9, 0xE287, 0xAA5B, 0xE655, 0xA8BE, 0xE3BD, 0xACFD, 0xFFFF, 0xE802, 0x2DC5, 0xE809, 0x343C, 0xE808, 0x9FC8, 0xE7E3, 0xA296, 0xE70D, 0xA4B1, 0xE2C9, 0xA70E, 0xDE4E, 0xA790, 0xD6A1, 0xA457, 0xD5FF, 0x9F2B, 0xD5FF, 0x2DFD, 0xD6B2, 0x2B72, 0xDA78, 0x2861, 0xDE9D, 0x276F, 0xE300, 0x2824, 0xE70D, 0x2B13, 0xE7FF, 0x2DB6, 0xE800, 0x2DC5, 0xE802, 0x2DC5, 0xFFFF, 0xE2ED, 0xBA8B, 0xE1CC, 0xBF52, 0xDF1C, 0xC165, 0xDC64, 0xBF99, 0xDB1B, 0xBAFF, 0xDB19, 0xB433, 0xDF04, 0xB552, 0xE2EF, 0xB438, 0xE2ED, 0xBA8B, 0xFFFF, 0xEC09, 0x2893, 0xE925, 0x2A08, 0xE57D, 0x261D, 0xE149, 0x246F, 0xDBDE, 0x24A0, 0xD6BC, 0x2795, 0xD484, 0x2A46, 0xD1C0, 0x2853, 0xD166, 0x251E, 0xD80D, 0x2151, 0xDF02, 0x200C, 0xE5F6, 0x2151, 0xEC9D, 0x251E, 0xEC09, 0x2893};
34
 const PROGMEM uint16_t syringe[] = {0xED91, 0x1502, 0xE658, 0x10FB, 0xDECE, 0x0FAE, 0xD746, 0x1120, 0xD016, 0x1555, 0xCE7B, 0x1848, 0xCE05, 0x1C4D, 0xCE0A, 0x27BF, 0xCF05, 0x2BE5, 0xD122, 0x2E6E, 0xD29C, 0x3002, 0xD29D, 0x9FDB, 0xD402, 0xA98C, 0xD7B4, 0xB11F, 0xD7BA, 0xBB6A, 0xD973, 0xC2D1, 0xDD50, 0xC6FD, 0xDD53, 0xD16C, 0xDE36, 0xD3BA, 0xDFCA, 0xD3C2, 0xE0B3, 0xD05E, 0xE0B3, 0xC6FD, 0xE4A2, 0xC2AB, 0xE64D, 0xBB09, 0xE64D, 0xB11F, 0xEA29, 0xA8FC, 0xEB67, 0x9E98, 0xEB67, 0x2F6B, 0xEF37, 0x2B60, 0xEFFE, 0x2595, 0xEFF8, 0x1AD5, 0xED91, 0x1502, 0xED91, 0x1502, 0xFFFF, 0xD1CF, 0x1A7E, 0xD84F, 0x16DB, 0xDF19, 0x15A9, 0xE5E0, 0x16EA, 0xEC5B, 0x1AA4, 0xEC9D, 0x1D34, 0xEC9D, 0x20CC, 0xE5F1, 0x1D41, 0xDF02, 0x1C12, 0xD812, 0x1D41, 0xD166, 0x20CC, 0xD16C, 0x1B45, 0xD1CF, 0x1A7E, 0xFFFF, 0xE3BD, 0xACFD, 0xDE8E, 0xAF4F, 0xD988, 0xAC0F, 0xD7CC, 0xA8CD, 0xDD1C, 0xAAA9, 0xE287, 0xAA5B, 0xE655, 0xA8BE, 0xE3BD, 0xACFD, 0xFFFF, 0xE802, 0x2DC5, 0xE809, 0x343C, 0xE808, 0x9FC8, 0xE7E3, 0xA296, 0xE70D, 0xA4B1, 0xE2C9, 0xA70E, 0xDE4E, 0xA790, 0xD6A1, 0xA457, 0xD5FF, 0x9F2B, 0xD5FF, 0x2DFD, 0xD6B2, 0x2B72, 0xDA78, 0x2861, 0xDE9D, 0x276F, 0xE300, 0x2824, 0xE70D, 0x2B13, 0xE7FF, 0x2DB6, 0xE800, 0x2DC5, 0xE802, 0x2DC5, 0xFFFF, 0xE2ED, 0xBA8B, 0xE1CC, 0xBF52, 0xDF1C, 0xC165, 0xDC64, 0xBF99, 0xDB1B, 0xBAFF, 0xDB19, 0xB433, 0xDF04, 0xB552, 0xE2EF, 0xB438, 0xE2ED, 0xBA8B, 0xFFFF, 0xEC09, 0x2893, 0xE925, 0x2A08, 0xE57D, 0x261D, 0xE149, 0x246F, 0xDBDE, 0x24A0, 0xD6BC, 0x2795, 0xD484, 0x2A46, 0xD1C0, 0x2853, 0xD166, 0x251E, 0xD80D, 0x2151, 0xDF02, 0x200C, 0xE5F6, 0x2151, 0xEC9D, 0x251E, 0xEC09, 0x2893};
35
-const PROGMEM uint16_t unload_cartridge_btn[] = {0x0AAA, 0x0E1E, 0x57FF, 0x0E1E, 0x57FF, 0x33C3, 0x0AAA, 0x33C3, 0x0AAA, 0x0E1E};
35
+const PROGMEM uint16_t park_btn[] = {0x0AAA, 0x0E1E, 0x57FF, 0x0E1E, 0x57FF, 0x33C3, 0x0AAA, 0x33C3, 0x0AAA, 0x0E1E};
36
 const PROGMEM uint16_t pause_btn[] = {0x47FF, 0xCA58, 0x7FFF, 0xCA58, 0x7FFF, 0xEFFE, 0x47FF, 0xEFFE, 0x47FF, 0xCA58};
36
 const PROGMEM uint16_t pause_btn[] = {0x47FF, 0xCA58, 0x7FFF, 0xCA58, 0x7FFF, 0xEFFE, 0x47FF, 0xEFFE, 0x47FF, 0xCA58};
37
 const PROGMEM uint16_t load_chocolate_btn[] = {0x0AAA, 0x3D2C, 0x57FF, 0x3D2C, 0x57FF, 0x62D2, 0x0AAA, 0x62D2, 0x0AAA, 0x3D2C};
37
 const PROGMEM uint16_t load_chocolate_btn[] = {0x0AAA, 0x3D2C, 0x57FF, 0x3D2C, 0x57FF, 0x62D2, 0x0AAA, 0x62D2, 0x0AAA, 0x3D2C};
38
 const PROGMEM uint16_t preheat_chocolate_btn[] = {0x0AAA, 0x6C3B, 0x57FF, 0x6C3B, 0x57FF, 0x91E0, 0x0AAA, 0x91E0, 0x0AAA, 0x6C3B};
38
 const PROGMEM uint16_t preheat_chocolate_btn[] = {0x0AAA, 0x6C3B, 0x57FF, 0x6C3B, 0x57FF, 0x91E0, 0x0AAA, 0x91E0, 0x0AAA, 0x6C3B};
49
 const PROGMEM uint16_t h0_temp[] = {0x62A9, 0x41E1, 0x8FFE, 0x41E1, 0x8FFE, 0x5968, 0x62A9, 0x5968, 0x62A9, 0x41E1};
49
 const PROGMEM uint16_t h0_temp[] = {0x62A9, 0x41E1, 0x8FFE, 0x41E1, 0x8FFE, 0x5968, 0x62A9, 0x5968, 0x62A9, 0x41E1};
50
 const PROGMEM uint16_t h1_label[] = {0x8FFE, 0x2A5A, 0xBD53, 0x2A5A, 0xBD53, 0x41E1, 0x8FFE, 0x41E1, 0x8FFE, 0x2A5A};
50
 const PROGMEM uint16_t h1_label[] = {0x8FFE, 0x2A5A, 0xBD53, 0x2A5A, 0xBD53, 0x41E1, 0x8FFE, 0x41E1, 0x8FFE, 0x2A5A};
51
 const PROGMEM uint16_t h1_temp[] = {0x8FFE, 0x41E1, 0xBD53, 0x41E1, 0xBD53, 0x5968, 0x8FFE, 0x5968, 0x8FFE, 0x41E1};
51
 const PROGMEM uint16_t h1_temp[] = {0x8FFE, 0x41E1, 0xBD53, 0x41E1, 0xBD53, 0x5968, 0x8FFE, 0x5968, 0x8FFE, 0x41E1};
52
-const PROGMEM uint16_t extrude_btn[] = {0xC859, 0xDD2B, 0xF5AE, 0xDD2B, 0xF5AE, 0xEFFE, 0xC859, 0xEFFE, 0xC859, 0xDD2B};
53
 const PROGMEM uint16_t h2_label[] = {0x8FFE, 0x5E1D, 0xBD53, 0x5E1D, 0xBD53, 0x75A4, 0x8FFE, 0x75A4, 0x8FFE, 0x5E1D};
52
 const PROGMEM uint16_t h2_label[] = {0x8FFE, 0x5E1D, 0xBD53, 0x5E1D, 0xBD53, 0x75A4, 0x8FFE, 0x75A4, 0x8FFE, 0x5E1D};
54
 const PROGMEM uint16_t h2_temp[] = {0x8FFE, 0x75A4, 0xBD53, 0x75A4, 0xBD53, 0x8D2C, 0x8FFE, 0x8D2C, 0x8FFE, 0x75A4};
53
 const PROGMEM uint16_t h2_temp[] = {0x8FFE, 0x75A4, 0xBD53, 0x75A4, 0xBD53, 0x8D2C, 0x8FFE, 0x8D2C, 0x8FFE, 0x75A4};
54
+const PROGMEM uint16_t extrude_btn[] = {0xC859, 0xDD2B, 0xF5AE, 0xDD2B, 0xF5AE, 0xEFFE, 0xC859, 0xEFFE, 0xC859, 0xDD2B};
55
+const PROGMEM uint16_t load_screen_extrude[] = {0x25FB, 0x89AE, 0x2F58, 0x89AE, 0x2F58, 0xAAF6, 0x3406, 0xAAF6, 0x2AAA, 0xBB9A, 0x214D, 0xAAF6, 0x25FB, 0xAAF6, 0x25FB, 0x89AE};
56
+const PROGMEM uint16_t load_screen_retract[] = {0x25FC, 0x790A, 0x2F58, 0x790A, 0x2F58, 0x57C2, 0x3406, 0x57C2, 0x2AAA, 0x471D, 0x214D, 0x57C2, 0x25FC, 0x57C2, 0x25FC, 0x790A};
57
+const PROGMEM uint16_t load_screen_back_btn[] = {0x1555, 0xCA58, 0xC553, 0xCA58, 0xC553, 0xEFFE, 0x1555, 0xEFFE, 0x1555, 0xCA58};
58
+const PROGMEM uint16_t load_screen_unload_btn[] = {0x4AAA, 0x8EBD, 0xC553, 0x8EBD, 0xC553, 0xB463, 0x4AAA, 0xB463, 0x4AAA, 0x8EBD};
59
+const PROGMEM uint16_t load_screen_load_btn[] = {0x4AAA, 0x5322, 0xC553, 0x5322, 0xC553, 0x78C7, 0x4AAA, 0x78C7, 0x4AAA, 0x5322};
60
+const PROGMEM uint16_t load_sreen_title[] = {0x4AAA, 0x1787, 0xC553, 0x1787, 0xC553, 0x3D2C, 0x4AAA, 0x3D2C, 0x4AAA, 0x1787};
61
+const PROGMEM uint16_t load_screen_increment[] = {0x1555, 0x2E1D, 0x3FFF, 0x2E1D, 0x3FFF, 0x3D2C, 0x1555, 0x3D2C, 0x1555, 0x2E1D};

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

50
   }
50
   }
51
 }
51
 }
52
 
52
 
53
+void ConfirmUserRequestAlertBox::onIdle() {
54
+  if (!ExtUI::awaitingUserConfirm()) {
55
+    hide();
56
+  }
57
+}
58
+
53
 void ConfirmUserRequestAlertBox::show(const char* msg) {
59
 void ConfirmUserRequestAlertBox::show(const char* msg) {
54
   drawMessage(msg);
60
   drawMessage(msg);
55
   storeBackground();
61
   storeBackground();

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

70
 }
70
 }
71
 
71
 
72
 bool BaseMoveAxisScreen::onTouchHeld(uint8_t tag) {
72
 bool BaseMoveAxisScreen::onTouchHeld(uint8_t tag) {
73
-  #define UI_INCREMENT_AXIS(axis) UI_INCREMENT(AxisPosition_mm, axis);
74
-  #define UI_DECREMENT_AXIS(axis) UI_DECREMENT(AxisPosition_mm, axis);
73
+  #define UI_INCREMENT_AXIS(axis) setManualFeedrate(axis, increment); UI_INCREMENT(AxisPosition_mm, axis);
74
+  #define UI_DECREMENT_AXIS(axis) setManualFeedrate(axis, increment); UI_DECREMENT(AxisPosition_mm, axis);
75
   const float increment = getIncrement();
75
   const float increment = getIncrement();
76
   switch (tag) {
76
   switch (tag) {
77
     case  2: UI_DECREMENT_AXIS(X); break;
77
     case  2: UI_DECREMENT_AXIS(X); break;

+ 1
- 0
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screen_data.h 查看文件

58
   DECL_DATA_IF_INCLUDED(FTDI_BED_MESH_SCREEN)
58
   DECL_DATA_IF_INCLUDED(FTDI_BED_MESH_SCREEN)
59
   DECL_DATA_IF_INCLUDED(FTDI_STRESS_TEST_SCREEN)
59
   DECL_DATA_IF_INCLUDED(FTDI_STRESS_TEST_SCREEN)
60
   DECL_DATA_IF_INCLUDED(FTDI_COCOA_PREHEAT_SCREEN)
60
   DECL_DATA_IF_INCLUDED(FTDI_COCOA_PREHEAT_SCREEN)
61
+  DECL_DATA_IF_INCLUDED(FTDI_COCOA_LOAD_CHOCOLATE_SCREEN)
61
   DECL_DATA_IF_INCLUDED(FTDI_NUDGE_NOZZLE_SCREEN)
62
   DECL_DATA_IF_INCLUDED(FTDI_NUDGE_NOZZLE_SCREEN)
62
   DECL_DATA_IF_INCLUDED(FTDI_BASE_NUMERIC_ADJ_SCREEN)
63
   DECL_DATA_IF_INCLUDED(FTDI_BASE_NUMERIC_ADJ_SCREEN)
63
   DECL_DATA_IF_INCLUDED(FTDI_ALERT_DIALOG_BOX)
64
   DECL_DATA_IF_INCLUDED(FTDI_ALERT_DIALOG_BOX)

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

98
   DECL_SCREEN_IF_INCLUDED(FTDI_BIO_PRINTING_DIALOG_BOX)
98
   DECL_SCREEN_IF_INCLUDED(FTDI_BIO_PRINTING_DIALOG_BOX)
99
   DECL_SCREEN_IF_INCLUDED(FTDI_BIO_CONFIRMOME_XYZ)
99
   DECL_SCREEN_IF_INCLUDED(FTDI_BIO_CONFIRMOME_XYZ)
100
   DECL_SCREEN_IF_INCLUDED(FTDI_BIO_CONFIRMOME_E)
100
   DECL_SCREEN_IF_INCLUDED(FTDI_BIO_CONFIRMOME_E)
101
+  DECL_SCREEN_IF_INCLUDED(FTDI_COCOA_STATUS_SCREEN)
102
+  DECL_SCREEN_IF_INCLUDED(FTDI_COCOA_MAIN_MENU)
101
   DECL_SCREEN_IF_INCLUDED(FTDI_COCOA_PREHEAT_MENU)
103
   DECL_SCREEN_IF_INCLUDED(FTDI_COCOA_PREHEAT_MENU)
102
   DECL_SCREEN_IF_INCLUDED(FTDI_COCOA_PREHEAT_SCREEN)
104
   DECL_SCREEN_IF_INCLUDED(FTDI_COCOA_PREHEAT_SCREEN)
103
   DECL_SCREEN_IF_INCLUDED(FTDI_COCOA_UNLOAD_CARTRIDGE_SCREEN)
105
   DECL_SCREEN_IF_INCLUDED(FTDI_COCOA_UNLOAD_CARTRIDGE_SCREEN)

+ 2
- 3
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.h 查看文件

100
   #if ENABLED(TOUCH_UI_COCOA_PRESS)
100
   #if ENABLED(TOUCH_UI_COCOA_PRESS)
101
     PREHEAT_MENU_CACHE,
101
     PREHEAT_MENU_CACHE,
102
     PREHEAT_TIMER_SCREEN_CACHE,
102
     PREHEAT_TIMER_SCREEN_CACHE,
103
-    UNLOAD_CARTRIDGE_SCREEN_CACHE,
104
     LOAD_CHOCOLATE_SCREEN_CACHE,
103
     LOAD_CHOCOLATE_SCREEN_CACHE,
105
     MOVE_XYZ_SCREEN_CACHE,
104
     MOVE_XYZ_SCREEN_CACHE,
106
     MOVE_E_SCREEN_CACHE,
105
     MOVE_E_SCREEN_CACHE,
145
 #elif ENABLED(TOUCH_UI_COCOA_PRESS)
144
 #elif ENABLED(TOUCH_UI_COCOA_PRESS)
146
   #include "cocoa_press_status_screen.h"
145
   #include "cocoa_press_status_screen.h"
147
   #include "cocoa_press_main_menu.h"
146
   #include "cocoa_press_main_menu.h"
148
-  #include "cocoa_press_advanced_settings.h"
147
+  #include "cocoa_press_advanced_settings_menu.h"
149
   #include "cocoa_press_preheat_menu.h"
148
   #include "cocoa_press_preheat_menu.h"
150
   #include "cocoa_press_preheat_screen.h"
149
   #include "cocoa_press_preheat_screen.h"
151
-  #include "cocoa_press_unload_cartridge.h"
152
   #include "cocoa_press_load_chocolate.h"
150
   #include "cocoa_press_load_chocolate.h"
151
+  #include "move_axis_screen.h"
153
   #include "cocoa_press_move_xyz_screen.h"
152
   #include "cocoa_press_move_xyz_screen.h"
154
   #include "cocoa_press_move_e_screen.h"
153
   #include "cocoa_press_move_e_screen.h"
155
   #include "tune_menu.h"
154
   #include "tune_menu.h"

+ 6
- 0
Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/theme/colors.h 查看文件

85
     constexpr uint32_t logo_bg_rgb          = accent_color_1;
85
     constexpr uint32_t logo_bg_rgb          = accent_color_1;
86
     constexpr uint32_t logo_fill_rgb        = accent_color_0;
86
     constexpr uint32_t logo_fill_rgb        = accent_color_0;
87
     constexpr uint32_t logo_stroke_rgb      = accent_color_4;
87
     constexpr uint32_t logo_stroke_rgb      = accent_color_4;
88
+
89
+    constexpr uint32_t bed_mesh_lines_rgb   = 0xFFFFFF;
90
+    constexpr uint32_t bed_mesh_shadow_rgb  = 0x444444;
88
   #elif ANY(TOUCH_UI_COCOA_THEME, TOUCH_UI_FROZEN_THEME)
91
   #elif ANY(TOUCH_UI_COCOA_THEME, TOUCH_UI_FROZEN_THEME)
89
     constexpr uint32_t theme_darkest        = accent_color_1;
92
     constexpr uint32_t theme_darkest        = accent_color_1;
90
     constexpr uint32_t theme_dark           = accent_color_4;
93
     constexpr uint32_t theme_dark           = accent_color_4;
102
     constexpr uint32_t logo_bg_rgb          = accent_color_5;
105
     constexpr uint32_t logo_bg_rgb          = accent_color_5;
103
     constexpr uint32_t logo_fill_rgb        = accent_color_6;
106
     constexpr uint32_t logo_fill_rgb        = accent_color_6;
104
     constexpr uint32_t logo_stroke_rgb      = accent_color_2;
107
     constexpr uint32_t logo_stroke_rgb      = accent_color_2;
108
+
109
+    constexpr uint32_t bed_mesh_lines_rgb   = accent_color_6;
110
+    constexpr uint32_t bed_mesh_shadow_rgb  = 0x444444;
105
   #else
111
   #else
106
     constexpr uint32_t theme_darkest        = gray_color_1;
112
     constexpr uint32_t theme_darkest        = gray_color_1;
107
     constexpr uint32_t theme_dark           = gray_color_2;
113
     constexpr uint32_t theme_dark           = gray_color_2;

正在加载...
取消
保存