Browse Source

🐛 Fix FTDI Eve Touch UI progmem strings (#22439)

Marcio T 4 years ago
parent
commit
4111d1d5ad
No account linked to committer's email address

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/confirm_home_e.cpp View File

36
   switch (tag) {
36
   switch (tag) {
37
     case 1:
37
     case 1:
38
       #if defined(AXIS_LEVELING_COMMANDS) && defined(PARK_AND_RELEASE_COMMANDS)
38
       #if defined(AXIS_LEVELING_COMMANDS) && defined(PARK_AND_RELEASE_COMMANDS)
39
-        SpinnerDialogBox::enqueueAndWait_P(PSTR(
39
+        SpinnerDialogBox::enqueueAndWait(F(
40
           "G28 E\n"
40
           "G28 E\n"
41
           AXIS_LEVELING_COMMANDS "\n"
41
           AXIS_LEVELING_COMMANDS "\n"
42
           PARK_AND_RELEASE_COMMANDS
42
           PARK_AND_RELEASE_COMMANDS

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/confirm_home_xyz.cpp View File

36
   switch (tag) {
36
   switch (tag) {
37
     case 1:
37
     case 1:
38
       #ifdef PARK_AND_RELEASE_COMMANDS
38
       #ifdef PARK_AND_RELEASE_COMMANDS
39
-        SpinnerDialogBox::enqueueAndWait_P(PSTR(
39
+        SpinnerDialogBox::enqueueAndWait(F(
40
          "G28\n"
40
          "G28\n"
41
          PARK_AND_RELEASE_COMMANDS
41
          PARK_AND_RELEASE_COMMANDS
42
         ));
42
         ));

+ 9
- 9
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/main_menu.cpp View File

67
   const bool e_homed = isAxisPositionKnown(E0);
67
   const bool e_homed = isAxisPositionKnown(E0);
68
 
68
 
69
   switch (tag) {
69
   switch (tag) {
70
-    case 1: SaveSettingsDialogBox::promptToSaveSettings();                               break;
71
-    case 2: GOTO_SCREEN(BioConfirmHomeXYZ);                                              break;
72
-    case 3: SpinnerDialogBox::enqueueAndWait_P(e_homed ? PSTR("G0 E0 F120") : PSTR("G112")); break;
73
-    case 4: StatusScreen::unlockMotors();                                                break;
70
+    case 1: SaveSettingsDialogBox::promptToSaveSettings();                           break;
71
+    case 2: GOTO_SCREEN(BioConfirmHomeXYZ);                                          break;
72
+    case 3: SpinnerDialogBox::enqueueAndWait(e_homed ? F("G0 E0 F120") : F("G112")); break;
73
+    case 4: StatusScreen::unlockMotors();                                            break;
74
     #ifdef AXIS_LEVELING_COMMANDS
74
     #ifdef AXIS_LEVELING_COMMANDS
75
-    case 5: SpinnerDialogBox::enqueueAndWait_P(PSTR(AXIS_LEVELING_COMMANDS));            break;
75
+    case 5: SpinnerDialogBox::enqueueAndWait(F(AXIS_LEVELING_COMMANDS));             break;
76
     #endif
76
     #endif
77
-    case 6: GOTO_SCREEN(TemperatureScreen);                                              break;
78
-    case 7: GOTO_SCREEN(InterfaceSettingsScreen);                                        break;
79
-    case 8: GOTO_SCREEN(AdvancedSettingsMenu);                                           break;
80
-    case 9: GOTO_SCREEN(AboutScreen);                                                    break;
77
+    case 6: GOTO_SCREEN(TemperatureScreen);                                          break;
78
+    case 7: GOTO_SCREEN(InterfaceSettingsScreen);                                    break;
79
+    case 8: GOTO_SCREEN(AdvancedSettingsMenu);                                       break;
80
+    case 9: GOTO_SCREEN(AboutScreen);                                                break;
81
     default:
81
     default:
82
       return false;
82
       return false;
83
   }
83
   }

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/status_screen.cpp View File

316
     case  9: GOTO_SCREEN(FilesScreen); break;
316
     case  9: GOTO_SCREEN(FilesScreen); break;
317
     case 10: GOTO_SCREEN(MainMenu); break;
317
     case 10: GOTO_SCREEN(MainMenu); break;
318
     case 13: GOTO_SCREEN(BioConfirmHomeE); break;
318
     case 13: GOTO_SCREEN(BioConfirmHomeE); break;
319
-    case 14: SpinnerDialogBox::enqueueAndWait_P(PSTR("G28Z")); break;
319
+    case 14: SpinnerDialogBox::enqueueAndWait(F("G28Z")); break;
320
     case 15: GOTO_SCREEN(TemperatureScreen);  break;
320
     case 15: GOTO_SCREEN(TemperatureScreen);  break;
321
     case 16: fine_motion = !fine_motion; break;
321
     case 16: fine_motion = !fine_motion; break;
322
     default: return false;
322
     default: return false;

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/tune_menu.cpp View File

67
     case 3: GOTO_SCREEN(TemperatureScreen);                      break;
67
     case 3: GOTO_SCREEN(TemperatureScreen);                      break;
68
     case 4: GOTO_SCREEN(NudgeNozzleScreen);                      break;
68
     case 4: GOTO_SCREEN(NudgeNozzleScreen);                      break;
69
     case 5: GOTO_SCREEN(BioConfirmHomeXYZ);                      break;
69
     case 5: GOTO_SCREEN(BioConfirmHomeXYZ);                      break;
70
-    case 6: SpinnerDialogBox::enqueueAndWait_P(PSTR("G0 E0 F120")); break;
70
+    case 6: SpinnerDialogBox::enqueueAndWait(F("G0 E0 F120")); break;
71
     case 7: StatusScreen::unlockMotors();                        break;
71
     case 7: StatusScreen::unlockMotors();                        break;
72
     default:
72
     default:
73
       return false;
73
       return false;

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/leveling_menu.cpp View File

82
     case 3: BedMeshViewScreen::show(); break;
82
     case 3: BedMeshViewScreen::show(); break;
83
     case 4: BedMeshEditScreen::show(); break;
83
     case 4: BedMeshEditScreen::show(); break;
84
     case 5: injectCommands_P(PSTR("M280 P0 S60")); break;
84
     case 5: injectCommands_P(PSTR("M280 P0 S60")); break;
85
-    case 6: SpinnerDialogBox::enqueueAndWait_P(PSTR("M280 P0 S90\nG4 P100\nM280 P0 S120")); break;
85
+    case 6: SpinnerDialogBox::enqueueAndWait(F("M280 P0 S90\nG4 P100\nM280 P0 S120")); break;
86
     default: return false;
86
     default: return false;
87
   }
87
   }
88
   return true;
88
   return true;

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/screens.h View File

108
 #include "../generic/display_tuning_screen.h"
108
 #include "../generic/display_tuning_screen.h"
109
 #include "../generic/statistics_screen.h"
109
 #include "../generic/statistics_screen.h"
110
 #include "../generic/stepper_current_screen.h"
110
 #include "../generic/stepper_current_screen.h"
111
-#include "../generic/leveling_menu.h"
112
 #include "../generic/z_offset_screen.h"
111
 #include "../generic/z_offset_screen.h"
113
 #include "../generic/bed_mesh_base.h"
112
 #include "../generic/bed_mesh_base.h"
114
 #include "../generic/bed_mesh_view_screen.h"
113
 #include "../generic/bed_mesh_view_screen.h"
130
 #include "preheat_menu.h"
129
 #include "preheat_menu.h"
131
 #include "preheat_screen.h"
130
 #include "preheat_screen.h"
132
 #include "load_chocolate.h"
131
 #include "load_chocolate.h"
132
+#include "leveling_menu.h"
133
 #include "move_xyz_screen.h"
133
 #include "move_xyz_screen.h"
134
 #include "move_e_screen.h"
134
 #include "move_e_screen.h"

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/status_screen.cpp View File

233
 
233
 
234
 bool StatusScreen::onTouchEnd(uint8_t tag) {
234
 bool StatusScreen::onTouchEnd(uint8_t tag) {
235
   switch (tag) {
235
   switch (tag) {
236
-    case  1: SpinnerDialogBox::enqueueAndWait_P(PSTR("G28 O\nG27")); break;
236
+    case  1: SpinnerDialogBox::enqueueAndWait(F("G28 O\nG27")); break;
237
     case  2: GOTO_SCREEN(LoadChocolateScreen); break;
237
     case  2: GOTO_SCREEN(LoadChocolateScreen); break;
238
     case  3: GOTO_SCREEN(PreheatMenu); break;
238
     case  3: GOTO_SCREEN(PreheatMenu); break;
239
     case  4: GOTO_SCREEN(MainMenu); break;
239
     case  4: GOTO_SCREEN(MainMenu); break;

+ 4
- 4
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/alert_dialog_box.cpp View File

43
 }
43
 }
44
 
44
 
45
 template<typename T>
45
 template<typename T>
46
-void AlertDialogBox::show(const T message) {
46
+void AlertDialogBox::show(T message) {
47
   drawMessage(message);
47
   drawMessage(message);
48
   storeBackground();
48
   storeBackground();
49
   mydata.isError = false;
49
   mydata.isError = false;
51
 }
51
 }
52
 
52
 
53
 template<typename T>
53
 template<typename T>
54
-void AlertDialogBox::showError(const T message) {
54
+void AlertDialogBox::showError(T message) {
55
   drawMessage(message);
55
   drawMessage(message);
56
   storeBackground();
56
   storeBackground();
57
   mydata.isError = true;
57
   mydata.isError = true;
64
 }
64
 }
65
 
65
 
66
 template void AlertDialogBox::show(const char *);
66
 template void AlertDialogBox::show(const char *);
67
-template void AlertDialogBox::show(const progmem_str);
67
+template void AlertDialogBox::show(progmem_str);
68
 template void AlertDialogBox::showError(const char *);
68
 template void AlertDialogBox::showError(const char *);
69
-template void AlertDialogBox::showError(const progmem_str);
69
+template void AlertDialogBox::showError(progmem_str);
70
 
70
 
71
 #endif // FTDI_ALERT_DIALOG_BOX
71
 #endif // FTDI_ALERT_DIALOG_BOX

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/bed_mesh_edit_screen.cpp View File

191
 
191
 
192
 void BedMeshEditScreen::show() {
192
 void BedMeshEditScreen::show() {
193
   // On entry, always home (to account for possible Z offset changes) and save current mesh
193
   // On entry, always home (to account for possible Z offset changes) and save current mesh
194
-  SpinnerDialogBox::enqueueAndWait_P(PSTR("G28\nG29 S1"));
194
+  SpinnerDialogBox::enqueueAndWait(F("G28\nG29 S1"));
195
   // After the spinner, go to this screen.
195
   // After the spinner, go to this screen.
196
   current_screen.forget();
196
   current_screen.forget();
197
   PUSH_SCREEN(BedMeshEditScreen);
197
   PUSH_SCREEN(BedMeshEditScreen);

+ 6
- 2
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/dialog_box_base_class.cpp View File

32
 #define GRID_ROWS 8
32
 #define GRID_ROWS 8
33
 
33
 
34
 template<typename T>
34
 template<typename T>
35
-void DialogBoxBaseClass::drawMessage(const T message, int16_t font) {
35
+void DialogBoxBaseClass::drawMessage(T message, int16_t font) {
36
   CommandProcessor cmd;
36
   CommandProcessor cmd;
37
   cmd.cmd(CMD_DLSTART)
37
   cmd.cmd(CMD_DLSTART)
38
      .cmd(CLEAR_COLOR_RGB(bg_color))
38
      .cmd(CLEAR_COLOR_RGB(bg_color))
59
      .tag(1).button(BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_OKAY));
59
      .tag(1).button(BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_OKAY));
60
 }
60
 }
61
 
61
 
62
-void DialogBoxBaseClass::drawButton(const progmem_str label) {
62
+template<typename T>
63
+void DialogBoxBaseClass::drawButton(T label) {
63
   CommandProcessor cmd;
64
   CommandProcessor cmd;
64
   cmd.font(font_medium)
65
   cmd.font(font_medium)
65
      .tag(1).button(BTN_POS(1,8), BTN_SIZE(2,1), label);
66
      .tag(1).button(BTN_POS(1,8), BTN_SIZE(2,1), label);
66
 }
67
 }
67
 
68
 
69
+template void DialogBoxBaseClass::drawButton(const char *);
70
+template void DialogBoxBaseClass::drawButton(progmem_str);
71
+
68
 void DialogBoxBaseClass::drawSpinner() {
72
 void DialogBoxBaseClass::drawSpinner() {
69
   CommandProcessor cmd;
73
   CommandProcessor cmd;
70
   cmd.cmd(COLOR_RGB(bg_text_enabled))
74
   cmd.cmd(COLOR_RGB(bg_text_enabled))

+ 2
- 2
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/dialog_box_base_class.h View File

27
 
27
 
28
 class DialogBoxBaseClass : public BaseScreen {
28
 class DialogBoxBaseClass : public BaseScreen {
29
   protected:
29
   protected:
30
-    template<typename T> static void drawMessage(const T, int16_t font = 0);
30
+    template<typename T> static void drawMessage(T, int16_t font = 0);
31
+    template<typename T> static void drawButton(T);
31
     static void drawYesNoButtons(uint8_t default_btn = 0);
32
     static void drawYesNoButtons(uint8_t default_btn = 0);
32
     static void drawOkayButton();
33
     static void drawOkayButton();
33
     static void drawSpinner();
34
     static void drawSpinner();
34
-    static void drawButton(const progmem_str);
35
 
35
 
36
     static void onRedraw(draw_mode_t) {};
36
     static void onRedraw(draw_mode_t) {};
37
   public:
37
   public:

+ 3
- 3
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/leveling_menu.cpp View File

104
   switch (tag) {
104
   switch (tag) {
105
     case 1: GOTO_PREVIOUS(); break;
105
     case 1: GOTO_PREVIOUS(); break;
106
     #if EITHER(Z_STEPPER_AUTO_ALIGN,MECHANICAL_GANTRY_CALIBRATION)
106
     #if EITHER(Z_STEPPER_AUTO_ALIGN,MECHANICAL_GANTRY_CALIBRATION)
107
-      case 2: SpinnerDialogBox::enqueueAndWait_P(PSTR("G34")); break;
107
+      case 2: SpinnerDialogBox::enqueueAndWait(F("G34")); break;
108
     #endif
108
     #endif
109
     #if HAS_BED_PROBE
109
     #if HAS_BED_PROBE
110
       case 3:
110
       case 3:
114
         #if ENABLED(AUTO_BED_LEVELING_UBL)
114
         #if ENABLED(AUTO_BED_LEVELING_UBL)
115
           BedMeshViewScreen::doProbe();
115
           BedMeshViewScreen::doProbe();
116
         #else
116
         #else
117
-          SpinnerDialogBox::enqueueAndWait_P(PSTR(BED_LEVELING_COMMANDS));
117
+          SpinnerDialogBox::enqueueAndWait(F(BED_LEVELING_COMMANDS));
118
         #endif
118
         #endif
119
         break;
119
         break;
120
     #endif
120
     #endif
127
     #endif
127
     #endif
128
     #if ENABLED(BLTOUCH)
128
     #if ENABLED(BLTOUCH)
129
       case 7: injectCommands_P(PSTR("M280 P0 S60")); break;
129
       case 7: injectCommands_P(PSTR("M280 P0 S60")); break;
130
-      case 8: SpinnerDialogBox::enqueueAndWait_P(PSTR("M280 P0 S90\nG4 P100\nM280 P0 S120")); break;
130
+      case 8: SpinnerDialogBox::enqueueAndWait(F("M280 P0 S90\nG4 P100\nM280 P0 S120")); break;
131
     #endif
131
     #endif
132
     default: return false;
132
     default: return false;
133
   }
133
   }

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/main_menu.cpp View File

104
 
104
 
105
   switch (tag) {
105
   switch (tag) {
106
     case 1:  SaveSettingsDialogBox::promptToSaveSettings();           break;
106
     case 1:  SaveSettingsDialogBox::promptToSaveSettings();           break;
107
-    case 2:  SpinnerDialogBox::enqueueAndWait_P(PSTR("G28"));            break;
107
+    case 2:  SpinnerDialogBox::enqueueAndWait(F("G28"));            break;
108
     #if ENABLED(NOZZLE_CLEAN_FEATURE)
108
     #if ENABLED(NOZZLE_CLEAN_FEATURE)
109
       case 3: injectCommands_P(PSTR("G12")); GOTO_SCREEN(StatusScreen); break;
109
       case 3: injectCommands_P(PSTR("G12")); GOTO_SCREEN(StatusScreen); break;
110
     #endif
110
     #endif

+ 4
- 4
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/move_axis_screen.cpp View File

98
     case 14: UI_DECREMENT_AXIS(E3); mydata.e_rel[3] -= increment; break;
98
     case 14: UI_DECREMENT_AXIS(E3); mydata.e_rel[3] -= increment; break;
99
     case 15: UI_INCREMENT_AXIS(E3); mydata.e_rel[3] += increment; break;
99
     case 15: UI_INCREMENT_AXIS(E3); mydata.e_rel[3] += increment; break;
100
     #endif
100
     #endif
101
-    case 20: SpinnerDialogBox::enqueueAndWait_P(PSTR("G28X")); break;
102
-    case 21: SpinnerDialogBox::enqueueAndWait_P(PSTR("G28Y")); break;
103
-    case 22: SpinnerDialogBox::enqueueAndWait_P(PSTR("G28Z")); break;
104
-    case 23: SpinnerDialogBox::enqueueAndWait_P(PSTR("G28")); break;
101
+    case 20: SpinnerDialogBox::enqueueAndWait(F("G28X")); break;
102
+    case 21: SpinnerDialogBox::enqueueAndWait(F("G28Y")); break;
103
+    case 22: SpinnerDialogBox::enqueueAndWait(F("G28Z")); break;
104
+    case 23: SpinnerDialogBox::enqueueAndWait(F("G28")); break;
105
     case 24: raiseZtoTop(); break;
105
     case 24: raiseZtoTop(); break;
106
     default:
106
     default:
107
       return false;
107
       return false;

+ 8
- 5
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.cpp View File

34
 void SpinnerDialogBox::onRedraw(draw_mode_t) {
34
 void SpinnerDialogBox::onRedraw(draw_mode_t) {
35
 }
35
 }
36
 
36
 
37
-void SpinnerDialogBox::show(const progmem_str message) {
37
+void SpinnerDialogBox::show(progmem_str message) {
38
   drawMessage(message);
38
   drawMessage(message);
39
   drawSpinner();
39
   drawSpinner();
40
   storeBackground();
40
   storeBackground();
46
   cmd.stop().execute();
46
   cmd.stop().execute();
47
 }
47
 }
48
 
48
 
49
-void SpinnerDialogBox::enqueueAndWait_P(const progmem_str commands) {
50
-  enqueueAndWait_P(GET_TEXT_F(MSG_PLEASE_WAIT), commands);
49
+void SpinnerDialogBox::enqueueAndWait(progmem_str message, progmem_str commands) {
50
+  show(message);
51
+  GOTO_SCREEN(SpinnerDialogBox);
52
+  ExtUI::injectCommands_P((const char*)commands);
53
+  mydata.auto_hide = true;
51
 }
54
 }
52
 
55
 
53
-void SpinnerDialogBox::enqueueAndWait_P(const progmem_str message, const progmem_str commands) {
56
+void SpinnerDialogBox::enqueueAndWait(progmem_str message, char *commands) {
54
   show(message);
57
   show(message);
55
   GOTO_SCREEN(SpinnerDialogBox);
58
   GOTO_SCREEN(SpinnerDialogBox);
56
-  ExtUI::injectCommands_P((const char*)commands);
59
+  ExtUI::injectCommands(commands);
57
   mydata.auto_hide = true;
60
   mydata.auto_hide = true;
58
 }
61
 }
59
 
62
 

+ 7
- 3
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.h View File

34
     static void onRedraw(draw_mode_t);
34
     static void onRedraw(draw_mode_t);
35
     static void onIdle();
35
     static void onIdle();
36
 
36
 
37
-    static void show(const progmem_str);
37
+    static void show(progmem_str);
38
     static void hide();
38
     static void hide();
39
-    static void enqueueAndWait_P(const progmem_str commands);
40
-    static void enqueueAndWait_P(const progmem_str message, const progmem_str commands);
39
+
40
+    template<typename T>
41
+    static void enqueueAndWait(T commands) {enqueueAndWait(GET_TEXT_F(MSG_PLEASE_WAIT), commands);}
42
+
43
+    static void enqueueAndWait(progmem_str message, char *commands);
44
+    static void enqueueAndWait(progmem_str message, progmem_str commands);
41
 };
45
 };

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/z_offset_screen.cpp View File

84
   strcat(cmd, str);
84
   strcat(cmd, str);
85
   injectCommands(cmd);
85
   injectCommands(cmd);
86
   // Show instructions for user.
86
   // Show instructions for user.
87
-  AlertDialogBox::show(PSTR("After the printer finishes homing, adjust the Z Offset so that a sheet of paper can pass between the nozzle and bed with slight resistance."));
87
+  AlertDialogBox::show(F("After the printer finishes homing, adjust the Z Offset so that a sheet of paper can pass between the nozzle and bed with slight resistance."));
88
 }
88
 }
89
 
89
 
90
 bool ZOffsetScreen::wizardRunning() {
90
 bool ZOffsetScreen::wizardRunning() {

Loading…
Cancel
Save