Browse Source

Add typedef extra_fan_t

Scott Lahteine 4 years ago
parent
commit
f7aaa2e1c7

+ 1
- 1
Marlin/src/lcd/menu/menu_item.h View File

473
   #define _FAN_EDIT_ITEMS(F,L) do{ \
473
   #define _FAN_EDIT_ITEMS(F,L) do{ \
474
     editable.uint8 = thermalManager.fan_speed[F]; \
474
     editable.uint8 = thermalManager.fan_speed[F]; \
475
     EDIT_ITEM_FAST_N(percent, F, MSG_##L, &editable.uint8, 0, 255, on_fan_update); \
475
     EDIT_ITEM_FAST_N(percent, F, MSG_##L, &editable.uint8, 0, 255, on_fan_update); \
476
-    EDIT_EXTRA_FAN_SPEED(percent, F, MSG_EXTRA_##L, &thermalManager.new_fan_speed[F], 3, 255); \
476
+    EDIT_EXTRA_FAN_SPEED(percent, F, MSG_EXTRA_##L, &thermalManager.extra_fan_speed[F].speed, 3, 255); \
477
   }while(0)
477
   }while(0)
478
 
478
 
479
   #if FAN_COUNT > 1
479
   #if FAN_COUNT > 1

+ 14
- 7
Marlin/src/module/temperature.cpp View File

273
   uint8_t Temperature::fan_speed[FAN_COUNT]; // = { 0 }
273
   uint8_t Temperature::fan_speed[FAN_COUNT]; // = { 0 }
274
 
274
 
275
   #if ENABLED(EXTRA_FAN_SPEED)
275
   #if ENABLED(EXTRA_FAN_SPEED)
276
-    uint8_t Temperature::old_fan_speed[FAN_COUNT], Temperature::new_fan_speed[FAN_COUNT];
277
 
276
 
278
-    void Temperature::set_temp_fan_speed(const uint8_t fan, const uint16_t tmp_temp) {
279
-      switch (tmp_temp) {
277
+    Temperature::extra_fan_t Temperature::extra_fan_speed[FAN_COUNT];
278
+
279
+    /**
280
+     * Handle the M106 P<fan> T<speed> command:
281
+     *  T1       = Restore fan speed saved on the last T2
282
+     *  T2       = Save the fan speed, then set to the last T<3-255> value
283
+     *  T<3-255> = Set the "extra fan speed"
284
+     */
285
+    void Temperature::set_temp_fan_speed(const uint8_t fan, const uint16_t command_or_speed) {
286
+      switch (command_or_speed) {
280
         case 1:
287
         case 1:
281
-          set_fan_speed(fan, old_fan_speed[fan]);
288
+          set_fan_speed(fan, extra_fan_speed[fan].saved);
282
           break;
289
           break;
283
         case 2:
290
         case 2:
284
-          old_fan_speed[fan] = fan_speed[fan];
285
-          set_fan_speed(fan, new_fan_speed[fan]);
291
+          extra_fan_speed[fan].saved = fan_speed[fan];
292
+          set_fan_speed(fan, extra_fan_speed[fan].speed);
286
           break;
293
           break;
287
         default:
294
         default:
288
-          new_fan_speed[fan] = _MIN(tmp_temp, 255U);
295
+          extra_fan_speed[fan].speed = _MIN(command_or_speed, 255U);
289
           break;
296
           break;
290
       }
297
       }
291
     }
298
     }

+ 3
- 2
Marlin/src/module/temperature.h View File

561
       }
561
       }
562
 
562
 
563
       #if ENABLED(EXTRA_FAN_SPEED)
563
       #if ENABLED(EXTRA_FAN_SPEED)
564
-        static uint8_t old_fan_speed[FAN_COUNT], new_fan_speed[FAN_COUNT];
565
-        static void set_temp_fan_speed(const uint8_t fan, const uint16_t tmp_temp);
564
+        typedef struct { uint8_t saved, speed; } extra_fan_t;
565
+        static extra_fan_t extra_fan_speed[FAN_COUNT];
566
+        static void set_temp_fan_speed(const uint8_t fan, const uint16_t command_or_speed);
566
       #endif
567
       #endif
567
 
568
 
568
       #if EITHER(PROBING_FANS_OFF, ADVANCED_PAUSE_FANS_PAUSE)
569
       #if EITHER(PROBING_FANS_OFF, ADVANCED_PAUSE_FANS_PAUSE)

Loading…
Cancel
Save