Browse Source

Fix material preset editing

Scott Lahteine 5 years ago
parent
commit
43a994e0df

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

300
 
300
 
301
 #if PREHEAT_COUNT && DISABLED(SLIM_LCD_MENUS)
301
 #if PREHEAT_COUNT && DISABLED(SLIM_LCD_MENUS)
302
 
302
 
303
-  void _menu_configuration_preheat_settings(const uint8_t material) {
303
+  void _menu_configuration_preheat_settings(const uint8_t m) {
304
     #define _MINTEMP_ITEM(N) HEATER_##N##_MINTEMP,
304
     #define _MINTEMP_ITEM(N) HEATER_##N##_MINTEMP,
305
     #define _MAXTEMP_ITEM(N) HEATER_##N##_MAXTEMP,
305
     #define _MAXTEMP_ITEM(N) HEATER_##N##_MAXTEMP,
306
     #define MINTEMP_ALL _MIN(REPEAT(HOTENDS, _MINTEMP_ITEM) 999)
306
     #define MINTEMP_ALL _MIN(REPEAT(HOTENDS, _MINTEMP_ITEM) 999)
307
     #define MAXTEMP_ALL _MAX(REPEAT(HOTENDS, _MAXTEMP_ITEM) 0)
307
     #define MAXTEMP_ALL _MAX(REPEAT(HOTENDS, _MAXTEMP_ITEM) 0)
308
     START_MENU();
308
     START_MENU();
309
     BACK_ITEM(MSG_CONFIGURATION);
309
     BACK_ITEM(MSG_CONFIGURATION);
310
-    EDIT_ITEM(percent, MSG_FAN_SPEED, &ui.material_preset[material].fan_speed, 0, 255);
310
+    editable.uint8 = uint8_t(ui.material_preset[m].fan_speed);
311
+    EDIT_ITEM_N(percent, m, MSG_FAN_SPEED, &editable.uint8, 0, 255, []{ ui.material_preset[MenuItemBase::itemIndex].fan_speed = editable.uint8; });
311
     #if HAS_TEMP_HOTEND
312
     #if HAS_TEMP_HOTEND
312
-      EDIT_ITEM(int3, MSG_NOZZLE, &ui.material_preset[material].hotend_temp, MINTEMP_ALL, MAXTEMP_ALL - HOTEND_OVERSHOOT);
313
+      EDIT_ITEM(uint16_3, MSG_NOZZLE, &ui.material_preset[m].hotend_temp, MINTEMP_ALL, MAXTEMP_ALL - HOTEND_OVERSHOOT);
313
     #endif
314
     #endif
314
     #if HAS_HEATED_BED
315
     #if HAS_HEATED_BED
315
-      EDIT_ITEM(int3, MSG_BED, &ui.material_preset[material].bed_temp, BED_MINTEMP, BED_MAX_TARGET);
316
+      EDIT_ITEM(uint16_3, MSG_BED, &ui.material_preset[m].bed_temp, BED_MINTEMP, BED_MAX_TARGET);
316
     #endif
317
     #endif
317
     #if ENABLED(EEPROM_SETTINGS)
318
     #if ENABLED(EEPROM_SETTINGS)
318
       ACTION_ITEM(MSG_STORE_EEPROM, ui.store_settings);
319
       ACTION_ITEM(MSG_STORE_EEPROM, ui.store_settings);

+ 31
- 15
Marlin/src/lcd/menu/menu_temperature.cpp View File

83
       ACTION_ITEM_N_P(E, msg_preheat_h[M], []{ _preheat_both(M, MenuItemBase::itemIndex); }); \
83
       ACTION_ITEM_N_P(E, msg_preheat_h[M], []{ _preheat_both(M, MenuItemBase::itemIndex); }); \
84
       ACTION_ITEM_N_P(E, msg_preheat_end_e[M], []{ _preheat_end(M, MenuItemBase::itemIndex); }); \
84
       ACTION_ITEM_N_P(E, msg_preheat_end_e[M], []{ _preheat_end(M, MenuItemBase::itemIndex); }); \
85
     }while(0)
85
     }while(0)
86
-    #if HAS_HEATED_BED
86
+
87
+    #if HAS_MULTI_HOTEND
87
       #define PREHEAT_ITEMS(M,E) _PREHEAT_ITEMS(M,E)
88
       #define PREHEAT_ITEMS(M,E) _PREHEAT_ITEMS(M,E)
88
     #endif
89
     #endif
89
-  #else
90
-    #define PREHEAT_ITEMS(M,E) ACTION_ITEM_N(E, msg_preheat_h[M], []{ _preheat_end(M, MenuItemBase::itemIndex); })
90
+
91
+  #elif HAS_MULTI_HOTEND
92
+
93
+    #define PREHEAT_ITEMS(M,E) ACTION_ITEM_N_P(E, msg_preheat_h[M], []{ _preheat_end(M, MenuItemBase::itemIndex); })
94
+
91
   #endif
95
   #endif
92
 
96
 
93
   void menu_preheat_m(const uint8_t m) {
97
   void menu_preheat_m(const uint8_t m) {
94
-    editable.int8 = m;
95
     #if HOTENDS == 1
98
     #if HOTENDS == 1
96
       PGM_P msg_preheat[]     = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1),         GET_TEXT(MSG_PREHEAT_2),         GET_TEXT(MSG_PREHEAT_3),         GET_TEXT(MSG_PREHEAT_4),          GET_TEXT(MSG_PREHEAT_5));
99
       PGM_P msg_preheat[]     = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1),         GET_TEXT(MSG_PREHEAT_2),         GET_TEXT(MSG_PREHEAT_3),         GET_TEXT(MSG_PREHEAT_4),          GET_TEXT(MSG_PREHEAT_5));
97
       PGM_P msg_preheat_end[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_END),     GET_TEXT(MSG_PREHEAT_2_END),     GET_TEXT(MSG_PREHEAT_3_END),     GET_TEXT(MSG_PREHEAT_4_END),      GET_TEXT(MSG_PREHEAT_5_END));
100
       PGM_P msg_preheat_end[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_END),     GET_TEXT(MSG_PREHEAT_2_END),     GET_TEXT(MSG_PREHEAT_3_END),     GET_TEXT(MSG_PREHEAT_4_END),      GET_TEXT(MSG_PREHEAT_5_END));
99
       PGM_P msg_preheat_all[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_ALL),     GET_TEXT(MSG_PREHEAT_2_ALL),     GET_TEXT(MSG_PREHEAT_3_ALL),     GET_TEXT(MSG_PREHEAT_4_ALL),      GET_TEXT(MSG_PREHEAT_5_ALL));
102
       PGM_P msg_preheat_all[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_ALL),     GET_TEXT(MSG_PREHEAT_2_ALL),     GET_TEXT(MSG_PREHEAT_3_ALL),     GET_TEXT(MSG_PREHEAT_4_ALL),      GET_TEXT(MSG_PREHEAT_5_ALL));
100
     #endif
103
     #endif
101
     PGM_P msg_preheat_end_e[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_END_E),   GET_TEXT(MSG_PREHEAT_2_END_E),   GET_TEXT(MSG_PREHEAT_3_END_E),   GET_TEXT(MSG_PREHEAT_4_END_E),    GET_TEXT(MSG_PREHEAT_5_END_E));
104
     PGM_P msg_preheat_end_e[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_END_E),   GET_TEXT(MSG_PREHEAT_2_END_E),   GET_TEXT(MSG_PREHEAT_3_END_E),   GET_TEXT(MSG_PREHEAT_4_END_E),    GET_TEXT(MSG_PREHEAT_5_END_E));
102
-    PGM_P msg_preheat_bed[]   = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_BEDONLY), GET_TEXT(MSG_PREHEAT_2_BEDONLY), GET_TEXT(MSG_PREHEAT_3_BEDONLY), GET_TEXT(MSG_PREHEAT_4_BEDONLY),  GET_TEXT(MSG_PREHEAT_5_BEDONLY));
103
-    PGM_P msg_preheat_h[]     = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_H),       GET_TEXT(MSG_PREHEAT_2_H),       GET_TEXT(MSG_PREHEAT_3_H),       GET_TEXT(MSG_PREHEAT_4_H),        GET_TEXT(MSG_PREHEAT_5_H));
105
+
106
+    #if HAS_MULTI_HOTEND
107
+      PGM_P msg_preheat_h[]   = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_H),       GET_TEXT(MSG_PREHEAT_2_H),       GET_TEXT(MSG_PREHEAT_3_H),       GET_TEXT(MSG_PREHEAT_4_H),        GET_TEXT(MSG_PREHEAT_5_H));
108
+    #endif
109
+
110
+    MenuItemBase::itemIndex = m;
104
 
111
 
105
     START_MENU();
112
     START_MENU();
106
     BACK_ITEM(MSG_TEMPERATURE);
113
     BACK_ITEM(MSG_TEMPERATURE);
114
+
107
     #if HOTENDS == 1
115
     #if HOTENDS == 1
116
+
108
       #if HAS_HEATED_BED
117
       #if HAS_HEATED_BED
109
-        ACTION_ITEM_P(msg_preheat[m], []{ _preheat_both(editable.int8, 0); });
110
-        ACTION_ITEM_P(msg_preheat_end[m], []{ _preheat_end(editable.int8, 0); });
118
+        ACTION_ITEM_P(msg_preheat[m], []{ _preheat_both(MenuItemBase::itemIndex, 0); });
119
+        ACTION_ITEM_P(msg_preheat_end[m], []{ _preheat_end(MenuItemBase::itemIndex, 0); });
111
       #else
120
       #else
112
-        ACTION_ITEM_P(msg_preheat[m], []{ _preheat_end(editable.int8, 0); });
121
+        ACTION_ITEM_P(msg_preheat[m], []{ _preheat_end(MenuItemBase::itemIndex, 0); });
113
       #endif
122
       #endif
123
+
114
     #elif HAS_MULTI_HOTEND
124
     #elif HAS_MULTI_HOTEND
125
+
115
       #if HAS_HEATED_BED
126
       #if HAS_HEATED_BED
116
-        _PREHEAT_ITEMS(editable.int8,0);
127
+        _PREHEAT_ITEMS(MenuItemBase::itemIndex,0);
117
       #endif
128
       #endif
118
-      LOOP_S_L_N(n, 1, HOTENDS) PREHEAT_ITEMS(editable.int8,n);
129
+
130
+      LOOP_S_L_N(n, 1, HOTENDS) PREHEAT_ITEMS(MenuItemBase::itemIndex,n);
119
       ACTION_ITEM_P(msg_preheat_all[m], []() {
131
       ACTION_ITEM_P(msg_preheat_all[m], []() {
120
-        TERN_(HAS_HEATED_BED, _preheat_bed(editable.int8));
121
-        HOTEND_LOOP() thermalManager.setTargetHotend(ui.material_preset[editable.int8].hotend_temp, e);
132
+        TERN_(HAS_HEATED_BED, _preheat_bed(MenuItemBase::itemIndex));
133
+        HOTEND_LOOP() thermalManager.setTargetHotend(ui.material_preset[MenuItemBase::itemIndex].hotend_temp, e);
122
       });
134
       });
123
-    #endif // HAS_MULTI_HOTEND
135
+
136
+    #endif
137
+
124
     #if HAS_HEATED_BED
138
     #if HAS_HEATED_BED
125
-      ACTION_ITEM_P(msg_preheat_bed[m], []{ _preheat_bed(editable.int8); });
139
+      PGM_P msg_preheat_bed[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_BEDONLY), GET_TEXT(MSG_PREHEAT_2_BEDONLY), GET_TEXT(MSG_PREHEAT_3_BEDONLY), GET_TEXT(MSG_PREHEAT_4_BEDONLY), GET_TEXT(MSG_PREHEAT_5_BEDONLY));
140
+      ACTION_ITEM_P(msg_preheat_bed[m], []{ _preheat_bed(MenuItemBase::itemIndex); });
126
     #endif
141
     #endif
142
+
127
     END_MENU();
143
     END_MENU();
128
   }
144
   }
129
 
145
 

+ 1
- 1
Marlin/src/module/temperature.cpp View File

151
 
151
 
152
 #if HAS_HOTEND
152
 #if HAS_HOTEND
153
   hotend_info_t Temperature::temp_hotend[HOTEND_TEMPS]; // = { 0 }
153
   hotend_info_t Temperature::temp_hotend[HOTEND_TEMPS]; // = { 0 }
154
-  const int16_t Temperature::heater_maxtemp[HOTENDS] = ARRAY_BY_HOTENDS(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP, HEATER_4_MAXTEMP, HEATER_5_MAXTEMP, HEATER_6_MAXTEMP, HEATER_7_MAXTEMP);
154
+  const uint16_t Temperature::heater_maxtemp[HOTENDS] = ARRAY_BY_HOTENDS(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP, HEATER_4_MAXTEMP, HEATER_5_MAXTEMP, HEATER_6_MAXTEMP, HEATER_7_MAXTEMP);
155
 #endif
155
 #endif
156
 
156
 
157
 #if ENABLED(AUTO_POWER_E_FANS)
157
 #if ENABLED(AUTO_POWER_E_FANS)

+ 1
- 1
Marlin/src/module/temperature.h View File

330
     #if HAS_HOTEND
330
     #if HAS_HOTEND
331
       #define HOTEND_TEMPS (HOTENDS + ENABLED(TEMP_SENSOR_1_AS_REDUNDANT))
331
       #define HOTEND_TEMPS (HOTENDS + ENABLED(TEMP_SENSOR_1_AS_REDUNDANT))
332
       static hotend_info_t temp_hotend[HOTEND_TEMPS];
332
       static hotend_info_t temp_hotend[HOTEND_TEMPS];
333
-      static const int16_t heater_maxtemp[HOTENDS];
333
+      static const uint16_t heater_maxtemp[HOTENDS];
334
     #endif
334
     #endif
335
     TERN_(HAS_HEATED_BED, static bed_info_t temp_bed);
335
     TERN_(HAS_HEATED_BED, static bed_info_t temp_bed);
336
     TERN_(HAS_TEMP_PROBE, static probe_info_t temp_probe);
336
     TERN_(HAS_TEMP_PROBE, static probe_info_t temp_probe);

Loading…
Cancel
Save