Bläddra i källkod

Fix Tune/Fan edit items

- Fixes #19617
- Followup to #18400
Scott Lahteine 4 år sedan
förälder
incheckning
d4b6542ce1

+ 2
- 2
Marlin/src/lcd/language/language_en.h Visa fil

657
 
657
 
658
 #if FAN_COUNT == 1
658
 #if FAN_COUNT == 1
659
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
659
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
660
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED
660
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED
661
 #else
661
 #else
662
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
662
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
663
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
663
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
664
 #endif
664
 #endif

+ 2
- 2
Marlin/src/lcd/language/language_hu.h Visa fil

623
 
623
 
624
 #if FAN_COUNT == 1
624
 #if FAN_COUNT == 1
625
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
625
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
626
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED
626
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED
627
 #else
627
 #else
628
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
628
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
629
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
629
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
630
 #endif
630
 #endif

+ 2
- 2
Marlin/src/lcd/language/language_ro.h Visa fil

631
 
631
 
632
 #if FAN_COUNT == 1
632
 #if FAN_COUNT == 1
633
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
633
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
634
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED
634
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED
635
 #else
635
 #else
636
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
636
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
637
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
637
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
638
 #endif
638
 #endif

+ 2
- 2
Marlin/src/lcd/language/language_ru.h Visa fil

767
 
767
 
768
 #if FAN_COUNT == 1
768
 #if FAN_COUNT == 1
769
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
769
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
770
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED
770
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED
771
 #else
771
 #else
772
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
772
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
773
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
773
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
774
 #endif
774
 #endif

+ 2
- 2
Marlin/src/lcd/language/language_tr.h Visa fil

590
 
590
 
591
 #if FAN_COUNT == 1
591
 #if FAN_COUNT == 1
592
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
592
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
593
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED
593
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED
594
 #else
594
 #else
595
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
595
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
596
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
596
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
597
 #endif
597
 #endif

+ 2
- 2
Marlin/src/lcd/language/language_uk.h Visa fil

762
 
762
 
763
 #if FAN_COUNT == 1
763
 #if FAN_COUNT == 1
764
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
764
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
765
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED
765
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED
766
 #else
766
 #else
767
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
767
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
768
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
768
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
769
 #endif
769
 #endif

+ 2
- 2
Marlin/src/lcd/language/language_zh_CN.h Visa fil

630
 
630
 
631
 #if FAN_COUNT == 1
631
 #if FAN_COUNT == 1
632
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
632
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
633
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED
633
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED
634
 #else
634
 #else
635
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
635
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
636
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
636
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
637
 #endif
637
 #endif

+ 2
- 2
Marlin/src/lcd/language/language_zh_TW.h Visa fil

501
 
501
 
502
 #if FAN_COUNT == 1
502
 #if FAN_COUNT == 1
503
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
503
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED
504
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED
504
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED
505
 #else
505
 #else
506
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
506
   #define MSG_FIRST_FAN_SPEED       MSG_FAN_SPEED_N
507
-  #define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
507
+  #define MSG_EXTRA_FIRST_FAN_SPEED MSG_EXTRA_FAN_SPEED_N
508
 #endif
508
 #endif

+ 28
- 0
Marlin/src/lcd/menu/menu_item.h Visa fil

452
 #if ENABLED(LEVEL_BED_CORNERS)
452
 #if ENABLED(LEVEL_BED_CORNERS)
453
   void _lcd_level_bed_corners();
453
   void _lcd_level_bed_corners();
454
 #endif
454
 #endif
455
+
456
+#if HAS_FAN
457
+
458
+  #include "../../module/temperature.h"
459
+
460
+  inline void on_fan_update() {
461
+    thermalManager.set_fan_speed(MenuItemBase::itemIndex, editable.uint8);
462
+  }
463
+
464
+  #if ENABLED(EXTRA_FAN_SPEED)
465
+    #define EDIT_EXTRA_FAN_SPEED(V...) EDIT_ITEM_FAST_N(V)
466
+  #else
467
+    #define EDIT_EXTRA_FAN_SPEED(...)
468
+  #endif
469
+
470
+  #define _FAN_EDIT_ITEMS(F,L) do{ \
471
+    editable.uint8 = thermalManager.fan_speed[F]; \
472
+    EDIT_ITEM_FAST_N(percent, F, MSG_##L, &editable.uint8, 0, 255, on_fan_update); \
473
+    EDIT_EXTRA_FAN_SPEED(percent, F, MSG_EXTRA_##L, &thermalManager.new_fan_speed[F], 3, 255); \
474
+  }while(0)
475
+
476
+  #if FAN_COUNT > 1
477
+    #define FAN_EDIT_ITEMS(F) _FAN_EDIT_ITEMS(F,FAN_SPEED_N)
478
+  #endif
479
+
480
+  #define SNFAN(N) (ENABLED(SINGLENOZZLE_STANDBY_FAN) && !HAS_FAN##N && EXTRUDERS > N)
481
+
482
+#endif // HAS_FAN

+ 7
- 30
Marlin/src/lcd/menu/menu_temperature.cpp Visa fil

191
   //
191
   //
192
   #if HAS_FAN
192
   #if HAS_FAN
193
 
193
 
194
-    auto on_fan_update = []{
195
-      thermalManager.set_fan_speed(MenuItemBase::itemIndex, editable.uint8);
196
-    };
197
-
198
-    #if ENABLED(EXTRA_FAN_SPEED)
199
-      #define EDIT_EXTRA_FAN_SPEED(V...) EDIT_ITEM_FAST_N(V)
200
-    #else
201
-      #define EDIT_EXTRA_FAN_SPEED(...)
202
-    #endif
203
-
204
-    #if FAN_COUNT > 1
205
-      #define FAN_EDIT_ITEMS(F) do{ \
206
-        editable.uint8 = thermalManager.fan_speed[F]; \
207
-        EDIT_ITEM_FAST_N(percent, F, MSG_FAN_SPEED_N, &editable.uint8, 0, 255, on_fan_update); \
208
-        EDIT_EXTRA_FAN_SPEED(percent, F, MSG_EXTRA_FAN_SPEED_N, &thermalManager.new_fan_speed[F], 3, 255); \
209
-      }while(0)
210
-    #endif
211
-
212
-    #define SNFAN(N) (ENABLED(SINGLENOZZLE_STANDBY_FAN) && !HAS_FAN##N && EXTRUDERS > N)
213
     #if SNFAN(1) || SNFAN(2) || SNFAN(3) || SNFAN(4) || SNFAN(5) || SNFAN(6) || SNFAN(7)
194
     #if SNFAN(1) || SNFAN(2) || SNFAN(3) || SNFAN(4) || SNFAN(5) || SNFAN(6) || SNFAN(7)
214
       auto singlenozzle_item = [&](const uint8_t f) {
195
       auto singlenozzle_item = [&](const uint8_t f) {
215
         editable.uint8 = singlenozzle_fan_speed[f];
196
         editable.uint8 = singlenozzle_fan_speed[f];
218
     #endif
199
     #endif
219
 
200
 
220
     #if HAS_FAN0
201
     #if HAS_FAN0
221
-      editable.uint8 = thermalManager.fan_speed[0];
222
-      EDIT_ITEM_FAST_N(percent, 0, MSG_FIRST_FAN_SPEED, &editable.uint8, 0, 255, on_fan_update);
223
-      #if ENABLED(EXTRA_FAN_SPEED)
224
-        EDIT_ITEM_FAST_N(percent, 0, MSG_FIRST_EXTRA_FAN_SPEED, &thermalManager.new_fan_speed[0], 3, 255);
225
-      #endif
202
+      _FAN_EDIT_ITEMS(0,FIRST_FAN_SPEED);
226
     #endif
203
     #endif
227
     #if HAS_FAN1
204
     #if HAS_FAN1
228
       FAN_EDIT_ITEMS(1);
205
       FAN_EDIT_ITEMS(1);
232
     #if HAS_FAN2
209
     #if HAS_FAN2
233
       FAN_EDIT_ITEMS(2);
210
       FAN_EDIT_ITEMS(2);
234
     #elif SNFAN(2)
211
     #elif SNFAN(2)
235
-      singlenozzle_item(1);
212
+      singlenozzle_item(2);
236
     #endif
213
     #endif
237
     #if HAS_FAN3
214
     #if HAS_FAN3
238
       FAN_EDIT_ITEMS(3);
215
       FAN_EDIT_ITEMS(3);
239
     #elif SNFAN(3)
216
     #elif SNFAN(3)
240
-      singlenozzle_item(1);
217
+      singlenozzle_item(3);
241
     #endif
218
     #endif
242
     #if HAS_FAN4
219
     #if HAS_FAN4
243
       FAN_EDIT_ITEMS(4);
220
       FAN_EDIT_ITEMS(4);
244
     #elif SNFAN(4)
221
     #elif SNFAN(4)
245
-      singlenozzle_item(1);
222
+      singlenozzle_item(4);
246
     #endif
223
     #endif
247
     #if HAS_FAN5
224
     #if HAS_FAN5
248
       FAN_EDIT_ITEMS(5);
225
       FAN_EDIT_ITEMS(5);
249
     #elif SNFAN(5)
226
     #elif SNFAN(5)
250
-      singlenozzle_item(1);
227
+      singlenozzle_item(5);
251
     #endif
228
     #endif
252
     #if HAS_FAN6
229
     #if HAS_FAN6
253
       FAN_EDIT_ITEMS(6);
230
       FAN_EDIT_ITEMS(6);
254
     #elif SNFAN(6)
231
     #elif SNFAN(6)
255
-      singlenozzle_item(1);
232
+      singlenozzle_item(6);
256
     #endif
233
     #endif
257
     #if HAS_FAN7
234
     #if HAS_FAN7
258
       FAN_EDIT_ITEMS(7);
235
       FAN_EDIT_ITEMS(7);
259
     #elif SNFAN(7)
236
     #elif SNFAN(7)
260
-      singlenozzle_item(1);
237
+      singlenozzle_item(7);
261
     #endif
238
     #endif
262
 
239
 
263
   #endif // HAS_FAN
240
   #endif // HAS_FAN

+ 14
- 33
Marlin/src/lcd/menu/menu_tune.cpp Visa fil

142
   //
142
   //
143
   #if HAS_FAN
143
   #if HAS_FAN
144
 
144
 
145
-    auto on_fan_update = []{
146
-      thermalManager.set_fan_speed(MenuItemBase::itemIndex, editable.uint8);
147
-    };
148
-
149
-    #if HAS_FAN1 || HAS_FAN2 || HAS_FAN3 || HAS_FAN4 || HAS_FAN5 || HAS_FAN6 || HAS_FAN7
150
-      auto fan_edit_items = [&](const uint8_t f) {
151
-        editable.uint8 = thermalManager.fan_speed[f];
152
-        EDIT_ITEM_FAST_N(percent, f, MSG_FAN_SPEED_N, &editable.uint8, 0, 255, on_fan_update);
153
-        #if ENABLED(EXTRA_FAN_SPEED)
154
-          EDIT_ITEM_FAST_N(percent, f, MSG_EXTRA_FAN_SPEED_N, &thermalManager.new_fan_speed[f], 3, 255);
155
-        #endif
156
-      };
157
-    #endif
158
-
159
-    #define SNFAN(N) (ENABLED(SINGLENOZZLE_STANDBY_FAN) && !HAS_FAN##N && EXTRUDERS > N)
160
     #if SNFAN(1) || SNFAN(2) || SNFAN(3) || SNFAN(4) || SNFAN(5) || SNFAN(6) || SNFAN(7)
145
     #if SNFAN(1) || SNFAN(2) || SNFAN(3) || SNFAN(4) || SNFAN(5) || SNFAN(6) || SNFAN(7)
161
       auto singlenozzle_item = [&](const uint8_t f) {
146
       auto singlenozzle_item = [&](const uint8_t f) {
162
         editable.uint8 = singlenozzle_fan_speed[f];
147
         editable.uint8 = singlenozzle_fan_speed[f];
165
     #endif
150
     #endif
166
 
151
 
167
     #if HAS_FAN0
152
     #if HAS_FAN0
168
-      editable.uint8 = thermalManager.fan_speed[0];
169
-      EDIT_ITEM_FAST_N(percent, 0, MSG_FIRST_FAN_SPEED, &editable.uint8, 0, 255, on_fan_update);
170
-      #if ENABLED(EXTRA_FAN_SPEED)
171
-        EDIT_ITEM_FAST_N(percent, 0, MSG_FIRST_EXTRA_FAN_SPEED, &thermalManager.new_fan_speed[0], 3, 255);
172
-      #endif
153
+      _FAN_EDIT_ITEMS(0,FIRST_FAN_SPEED);
173
     #endif
154
     #endif
174
     #if HAS_FAN1
155
     #if HAS_FAN1
175
-      fan_edit_items(1);
156
+      FAN_EDIT_ITEMS(1);
176
     #elif SNFAN(1)
157
     #elif SNFAN(1)
177
       singlenozzle_item(1);
158
       singlenozzle_item(1);
178
     #endif
159
     #endif
179
     #if HAS_FAN2
160
     #if HAS_FAN2
180
-      fan_edit_items(2);
161
+      FAN_EDIT_ITEMS(2);
181
     #elif SNFAN(2)
162
     #elif SNFAN(2)
182
-      singlenozzle_item(1);
163
+      singlenozzle_item(2);
183
     #endif
164
     #endif
184
     #if HAS_FAN3
165
     #if HAS_FAN3
185
-      fan_edit_items(3);
166
+      FAN_EDIT_ITEMS(3);
186
     #elif SNFAN(3)
167
     #elif SNFAN(3)
187
-      singlenozzle_item(1);
168
+      singlenozzle_item(3);
188
     #endif
169
     #endif
189
     #if HAS_FAN4
170
     #if HAS_FAN4
190
-      fan_edit_items(4);
171
+      FAN_EDIT_ITEMS(4);
191
     #elif SNFAN(4)
172
     #elif SNFAN(4)
192
-      singlenozzle_item(1);
173
+      singlenozzle_item(4);
193
     #endif
174
     #endif
194
     #if HAS_FAN5
175
     #if HAS_FAN5
195
-      fan_edit_items(5);
176
+      FAN_EDIT_ITEMS(5);
196
     #elif SNFAN(5)
177
     #elif SNFAN(5)
197
-      singlenozzle_item(1);
178
+      singlenozzle_item(5);
198
     #endif
179
     #endif
199
     #if HAS_FAN6
180
     #if HAS_FAN6
200
-      fan_edit_items(6);
181
+      FAN_EDIT_ITEMS(6);
201
     #elif SNFAN(6)
182
     #elif SNFAN(6)
202
-      singlenozzle_item(1);
183
+      singlenozzle_item(6);
203
     #endif
184
     #endif
204
     #if HAS_FAN7
185
     #if HAS_FAN7
205
-      fan_edit_items(7);
186
+      FAN_EDIT_ITEMS(7);
206
     #elif SNFAN(7)
187
     #elif SNFAN(7)
207
-      singlenozzle_item(1);
188
+      singlenozzle_item(7);
208
     #endif
189
     #endif
209
 
190
 
210
   #endif // HAS_FAN
191
   #endif // HAS_FAN

Laddar…
Avbryt
Spara