Browse Source

Restore menu edit to 32bit value (#13976)

InsanityAutomation 6 years ago
parent
commit
991ee7552b

+ 2
- 2
Marlin/src/lcd/menu/menu.cpp View File

68
 // Value Editing
68
 // Value Editing
69
 PGM_P MenuItemBase::editLabel;
69
 PGM_P MenuItemBase::editLabel;
70
 void* MenuItemBase::editValue;
70
 void* MenuItemBase::editValue;
71
-int16_t MenuItemBase::minEditValue, MenuItemBase::maxEditValue;
71
+int32_t MenuItemBase::minEditValue, MenuItemBase::maxEditValue;
72
 screenFunc_t MenuItemBase::callbackFunc;
72
 screenFunc_t MenuItemBase::callbackFunc;
73
 bool MenuItemBase::liveEdit;
73
 bool MenuItemBase::liveEdit;
74
 
74
 
142
   }
142
   }
143
 }
143
 }
144
 
144
 
145
-void MenuItemBase::init(PGM_P const el, void * const ev, const int16_t minv, const int16_t maxv, const uint16_t ep, const screenFunc_t cs, const screenFunc_t cb, const bool le) {
145
+void MenuItemBase::init(PGM_P const el, void * const ev, const int32_t minv, const int32_t maxv, const uint16_t ep, const screenFunc_t cs, const screenFunc_t cb, const bool le) {
146
   ui.save_previous_screen();
146
   ui.save_previous_screen();
147
   ui.refresh();
147
   ui.refresh();
148
   editLabel = el;
148
   editLabel = el;

+ 12
- 12
Marlin/src/lcd/menu/menu.h View File

53
 DECLARE_MENU_EDIT_TYPE(uint16_t, uint16_3,    ui16tostr3,      1     );   // 123, -12   right-justified
53
 DECLARE_MENU_EDIT_TYPE(uint16_t, uint16_3,    ui16tostr3,      1     );   // 123, -12   right-justified
54
 DECLARE_MENU_EDIT_TYPE(uint16_t, uint16_4,    ui16tostr4,      0.1   );   // 1234, -123 right-justified
54
 DECLARE_MENU_EDIT_TYPE(uint16_t, uint16_4,    ui16tostr4,      0.1   );   // 1234, -123 right-justified
55
 DECLARE_MENU_EDIT_TYPE(float,    float3,      ftostr3,         1     );   // 123        right-justified
55
 DECLARE_MENU_EDIT_TYPE(float,    float3,      ftostr3,         1     );   // 123        right-justified
56
-DECLARE_MENU_EDIT_TYPE(float,    float52,     ftostr52,      100     );   // 123.45
56
+DECLARE_MENU_EDIT_TYPE(float,    float52,     ftostr52,      100     );   // 123.45, -23.45
57
 DECLARE_MENU_EDIT_TYPE(float,    float43,     ftostr43sign, 1000     );   // 1.234
57
 DECLARE_MENU_EDIT_TYPE(float,    float43,     ftostr43sign, 1000     );   // 1.234
58
 DECLARE_MENU_EDIT_TYPE(float,    float5,      ftostr5rj,       0.01f );   // 12345      right-justified
58
 DECLARE_MENU_EDIT_TYPE(float,    float5,      ftostr5rj,       0.01f );   // 12345      right-justified
59
 DECLARE_MENU_EDIT_TYPE(float,    float5_25,   ftostr5rj,       0.04f );   // 12345      right-justified (25 increment)
59
 DECLARE_MENU_EDIT_TYPE(float,    float5_25,   ftostr5rj,       0.04f );   // 12345      right-justified (25 increment)
60
-DECLARE_MENU_EDIT_TYPE(float,    float51,     ftostr51rj,     10     );   // 1234.5     right-justified
60
+DECLARE_MENU_EDIT_TYPE(float,    float51,     ftostr51rj,     10     );   // _1234.5    right-justified
61
 DECLARE_MENU_EDIT_TYPE(float,    float51sign, ftostr51sign,   10     );   // +1234.5
61
 DECLARE_MENU_EDIT_TYPE(float,    float51sign, ftostr51sign,   10     );   // +1234.5
62
 DECLARE_MENU_EDIT_TYPE(float,    float52sign, ftostr52sign,  100     );   // +123.45
62
 DECLARE_MENU_EDIT_TYPE(float,    float52sign, ftostr52sign,  100     );   // +123.45
63
 DECLARE_MENU_EDIT_TYPE(uint32_t, long5,       ftostr5rj,       0.01f );   // 12345      right-justified
63
 DECLARE_MENU_EDIT_TYPE(uint32_t, long5,       ftostr5rj,       0.01f );   // 12345      right-justified
123
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(uint16_3);         // 123, -12   right-justified
123
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(uint16_3);         // 123, -12   right-justified
124
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(uint16_4);         // 1234, -123 right-justified
124
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(uint16_4);         // 1234, -123 right-justified
125
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float3);           // 123        right-justified
125
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float3);           // 123        right-justified
126
-DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float52);          // 123.45
126
+DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float52);          // 123.45, -23.45
127
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float43);          // 1.234
127
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float43);          // 1.234
128
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float5);           // 12345      right-justified
128
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float5);           // 12345      right-justified
129
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float5_25);        // 12345      right-justified (25 increment)
129
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float5_25);        // 12345      right-justified (25 increment)
130
-DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float51);          // 1234.5     right-justified
130
+DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float51);          // _1234.5    right-justified
131
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float51sign);      // +1234.5
131
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float51sign);      // +1234.5
132
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float52sign);      // +123.45
132
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float52sign);      // +123.45
133
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(long5);            // 12345      right-justified
133
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(long5);            // 12345      right-justified
168
   private:
168
   private:
169
     static PGM_P editLabel;
169
     static PGM_P editLabel;
170
     static void *editValue;
170
     static void *editValue;
171
-    static int16_t minEditValue, maxEditValue;
171
+    static int32_t minEditValue, maxEditValue;
172
     static screenFunc_t callbackFunc;
172
     static screenFunc_t callbackFunc;
173
     static bool liveEdit;
173
     static bool liveEdit;
174
   protected:
174
   protected:
175
-    typedef char* (*strfunc_t)(const int16_t);
176
-    typedef void (*loadfunc_t)(void *, const int16_t);
177
-    static void init(PGM_P const el, void * const ev, const int16_t minv, const int16_t maxv, const uint16_t ep, const screenFunc_t cs, const screenFunc_t cb, const bool le);
175
+    typedef char* (*strfunc_t)(const int32_t);
176
+    typedef void (*loadfunc_t)(void *, const int32_t);
177
+    static void init(PGM_P const el, void * const ev, const int32_t minv, const int32_t maxv, const uint16_t ep, const screenFunc_t cs, const screenFunc_t cb, const bool le);
178
     static void edit(strfunc_t, loadfunc_t);
178
     static void edit(strfunc_t, loadfunc_t);
179
 };
179
 };
180
 
180
 
184
     typedef typename NAME::type_t type_t;
184
     typedef typename NAME::type_t type_t;
185
     static inline float unscale(const float value)    { return value * (1.0f / NAME::scale);  }
185
     static inline float unscale(const float value)    { return value * (1.0f / NAME::scale);  }
186
     static inline float scale(const float value)      { return value * NAME::scale;           }
186
     static inline float scale(const float value)      { return value * NAME::scale;           }
187
-    static void load(void *ptr, const int16_t value)  { *((type_t*)ptr) = unscale(value);     }
188
-    static char* to_string(const int16_t value)       { return NAME::strfunc(unscale(value)); }
187
+    static void load(void *ptr, const int32_t value)  { *((type_t*)ptr) = unscale(value);     }
188
+    static char* to_string(const int32_t value)       { return NAME::strfunc(unscale(value)); }
189
   public:
189
   public:
190
     static void action_edit(PGM_P const pstr, type_t * const ptr, const type_t minValue, const type_t maxValue, const screenFunc_t callback=nullptr, const bool live=false) {
190
     static void action_edit(PGM_P const pstr, type_t * const ptr, const type_t minValue, const type_t maxValue, const screenFunc_t callback=nullptr, const bool live=false) {
191
       // Make sure minv and maxv fit within int16_t
191
       // Make sure minv and maxv fit within int16_t
192
-      const int16_t minv = MAX(scale(minValue), INT16_MIN),
193
-                    maxv = MIN(scale(maxValue), INT16_MAX);
192
+      const int32_t minv = MAX(scale(minValue), INT_MIN),
193
+                    maxv = MIN(scale(maxValue), INT_MAX);
194
       init(pstr, ptr, minv, maxv - minv, scale(*ptr) - minv, edit, callback, live);
194
       init(pstr, ptr, minv, maxv - minv, scale(*ptr) - minv, edit, callback, live);
195
     }
195
     }
196
     static void edit() { MenuItemBase::edit(to_string, load); }
196
     static void edit() { MenuItemBase::edit(to_string, load); }

+ 4
- 4
Marlin/src/lcd/menu/menu_advanced.cpp View File

131
 
131
 
132
     #if ENABLED(LIN_ADVANCE)
132
     #if ENABLED(LIN_ADVANCE)
133
       #if EXTRUDERS == 1
133
       #if EXTRUDERS == 1
134
-        MENU_ITEM_EDIT(float51, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999);
134
+        MENU_ITEM_EDIT(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999);
135
       #elif EXTRUDERS > 1
135
       #elif EXTRUDERS > 1
136
-        #define EDIT_ADVANCE_K(N) MENU_ITEM_EDIT(float51, MSG_ADVANCE_K MSG_E##N, &planner.extruder_advance_K[N-1], 0, 999)
136
+        #define EDIT_ADVANCE_K(N) MENU_ITEM_EDIT(float52, MSG_ADVANCE_K MSG_E##N, &planner.extruder_advance_K[N-1], 0, 999)
137
         EDIT_ADVANCE_K(1);
137
         EDIT_ADVANCE_K(1);
138
         EDIT_ADVANCE_K(2);
138
         EDIT_ADVANCE_K(2);
139
         #if EXTRUDERS > 2
139
         #if EXTRUDERS > 2
669
     MENU_ITEM(submenu, MSG_FILAMENT, menu_advanced_filament);
669
     MENU_ITEM(submenu, MSG_FILAMENT, menu_advanced_filament);
670
   #elif ENABLED(LIN_ADVANCE)
670
   #elif ENABLED(LIN_ADVANCE)
671
     #if EXTRUDERS == 1
671
     #if EXTRUDERS == 1
672
-      MENU_ITEM_EDIT(float51, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999);
672
+      MENU_ITEM_EDIT(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999);
673
     #elif EXTRUDERS > 1
673
     #elif EXTRUDERS > 1
674
-      #define EDIT_ADVANCE_K(N) MENU_ITEM_EDIT(float51, MSG_ADVANCE_K MSG_E##N, &planner.extruder_advance_K[N-1], 0, 999)
674
+      #define EDIT_ADVANCE_K(N) MENU_ITEM_EDIT(float52, MSG_ADVANCE_K MSG_E##N, &planner.extruder_advance_K[N-1], 0, 999)
675
       EDIT_ADVANCE_K(1);
675
       EDIT_ADVANCE_K(1);
676
       EDIT_ADVANCE_K(2);
676
       EDIT_ADVANCE_K(2);
677
       #if EXTRUDERS > 2
677
       #if EXTRUDERS > 2

+ 1
- 1
Marlin/src/lcd/menu/menu_bed_leveling.cpp View File

278
   #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
278
   #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
279
     MENU_ITEM(submenu, MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
279
     MENU_ITEM(submenu, MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
280
   #elif HAS_BED_PROBE
280
   #elif HAS_BED_PROBE
281
-    MENU_ITEM_EDIT(float52sign, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
281
+    MENU_ITEM_EDIT(float52, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
282
   #endif
282
   #endif
283
 
283
 
284
   #if ENABLED(LEVEL_BED_CORNERS)
284
   #if ENABLED(LEVEL_BED_CORNERS)

+ 5
- 5
Marlin/src/lcd/menu/menu_configuration.cpp View File

134
     START_MENU();
134
     START_MENU();
135
     MENU_BACK(MSG_MAIN);
135
     MENU_BACK(MSG_MAIN);
136
     #if ENABLED(DUAL_X_CARRIAGE)
136
     #if ENABLED(DUAL_X_CARRIAGE)
137
-      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_X_OFFSET, &hotend_offset[X_AXIS][1], MIN(X2_HOME_POS, X2_MAX_POS) - 25.0, MAX(X2_HOME_POS, X2_MAX_POS) + 25.0, _recalc_offsets);
137
+      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float52, MSG_X_OFFSET, &hotend_offset[X_AXIS][1], MIN(X2_HOME_POS, X2_MAX_POS) - 25.0, MAX(X2_HOME_POS, X2_MAX_POS) + 25.0, _recalc_offsets);
138
     #else
138
     #else
139
-      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_X_OFFSET, &hotend_offset[X_AXIS][1], -10.0, 10.0, _recalc_offsets);
139
+      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float52, MSG_X_OFFSET, &hotend_offset[X_AXIS][1], -10.0, 10.0, _recalc_offsets);
140
     #endif
140
     #endif
141
-    MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_Y_OFFSET, &hotend_offset[Y_AXIS][1], -10.0, 10.0, _recalc_offsets);
142
-    MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_Z_OFFSET, &hotend_offset[Z_AXIS][1], Z_PROBE_LOW_POINT, 10.0, _recalc_offsets);
141
+    MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float52, MSG_Y_OFFSET, &hotend_offset[Y_AXIS][1], -10.0, 10.0, _recalc_offsets);
142
+    MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float52, MSG_Z_OFFSET, &hotend_offset[Z_AXIS][1], Z_PROBE_LOW_POINT, 10.0, _recalc_offsets);
143
     #if ENABLED(EEPROM_SETTINGS)
143
     #if ENABLED(EEPROM_SETTINGS)
144
       MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
144
       MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
145
     #endif
145
     #endif
287
   #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
287
   #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
288
     MENU_ITEM(submenu, MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
288
     MENU_ITEM(submenu, MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
289
   #elif HAS_BED_PROBE
289
   #elif HAS_BED_PROBE
290
-    MENU_ITEM_EDIT(float52sign, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
290
+    MENU_ITEM_EDIT(float52, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
291
   #endif
291
   #endif
292
 
292
 
293
   const bool busy = printer_busy();
293
   const bool busy = printer_busy();

+ 3
- 3
Marlin/src/lcd/menu/menu_delta_calibrate.cpp View File

94
 void lcd_delta_settings() {
94
 void lcd_delta_settings() {
95
   START_MENU();
95
   START_MENU();
96
   MENU_BACK(MSG_DELTA_CALIBRATE);
96
   MENU_BACK(MSG_DELTA_CALIBRATE);
97
-  MENU_ITEM_EDIT_CALLBACK(float51, MSG_DELTA_HEIGHT, &delta_height, delta_height - 10, delta_height + 10, _recalc_delta_settings);
97
+  MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_DELTA_HEIGHT, &delta_height, delta_height - 10, delta_height + 10, _recalc_delta_settings);
98
   #define EDIT_ENDSTOP_ADJ(LABEL,N) MENU_ITEM_EDIT_CALLBACK(float43, LABEL, &delta_endstop_adj[_AXIS(N)], -5, 5, _recalc_delta_settings)
98
   #define EDIT_ENDSTOP_ADJ(LABEL,N) MENU_ITEM_EDIT_CALLBACK(float43, LABEL, &delta_endstop_adj[_AXIS(N)], -5, 5, _recalc_delta_settings)
99
   EDIT_ENDSTOP_ADJ("Ex",A);
99
   EDIT_ENDSTOP_ADJ("Ex",A);
100
   EDIT_ENDSTOP_ADJ("Ey",B);
100
   EDIT_ENDSTOP_ADJ("Ey",B);
101
   EDIT_ENDSTOP_ADJ("Ez",C);
101
   EDIT_ENDSTOP_ADJ("Ez",C);
102
-  MENU_ITEM_EDIT_CALLBACK(float51, MSG_DELTA_RADIUS, &delta_radius, delta_radius - 5, delta_radius + 5, _recalc_delta_settings);
102
+  MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_DELTA_RADIUS, &delta_radius, delta_radius - 5, delta_radius + 5, _recalc_delta_settings);
103
   #define EDIT_ANGLE_TRIM(LABEL,N) MENU_ITEM_EDIT_CALLBACK(float43, LABEL, &delta_tower_angle_trim[_AXIS(N)], -5, 5, _recalc_delta_settings)
103
   #define EDIT_ANGLE_TRIM(LABEL,N) MENU_ITEM_EDIT_CALLBACK(float43, LABEL, &delta_tower_angle_trim[_AXIS(N)], -5, 5, _recalc_delta_settings)
104
   EDIT_ANGLE_TRIM("Tx",A);
104
   EDIT_ANGLE_TRIM("Tx",A);
105
   EDIT_ANGLE_TRIM("Ty",B);
105
   EDIT_ANGLE_TRIM("Ty",B);
106
   EDIT_ANGLE_TRIM("Tz",C);
106
   EDIT_ANGLE_TRIM("Tz",C);
107
-  MENU_ITEM_EDIT_CALLBACK(float51, MSG_DELTA_DIAG_ROD, &delta_diagonal_rod, delta_diagonal_rod - 5, delta_diagonal_rod + 5, _recalc_delta_settings);
107
+  MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_DELTA_DIAG_ROD, &delta_diagonal_rod, delta_diagonal_rod - 5, delta_diagonal_rod + 5, _recalc_delta_settings);
108
   END_MENU();
108
   END_MENU();
109
 }
109
 }
110
 
110
 

Loading…
Cancel
Save