浏览代码

🚑️ Fix preheat target bug

Fixes Jyers/Marlin#1651
David Ross Smith 3 年前
父节点
当前提交
13adcd5c08
共有 2 个文件被更改,包括 12 次插入14 次删除
  1. 4
    4
      Marlin/src/lcd/marlinui.cpp
  2. 8
    10
      Marlin/src/lcd/marlinui.h

+ 4
- 4
Marlin/src/lcd/marlinui.cpp 查看文件

150
 
150
 
151
   void MarlinUI::apply_preheat(const uint8_t m, const uint8_t pmask, const uint8_t e/*=active_extruder*/) {
151
   void MarlinUI::apply_preheat(const uint8_t m, const uint8_t pmask, const uint8_t e/*=active_extruder*/) {
152
     const preheat_t &pre = material_preset[m];
152
     const preheat_t &pre = material_preset[m];
153
-    TERN_(HAS_HOTEND,           if (TEST(pmask, PM_HOTEND))  thermalManager.setTargetHotend(pre.hotend_temp, e));
154
-    TERN_(HAS_HEATED_BED,       if (TEST(pmask, PM_BED))     thermalManager.setTargetBed(pre.bed_temp));
155
-    //TERN_(HAS_HEATED_CHAMBER, if (TEST(pmask, PM_CHAMBER)) thermalManager.setTargetBed(pre.chamber_temp));
156
-    TERN_(HAS_FAN,              if (TEST(pmask, PM_FAN))     thermalManager.set_fan_speed(0, pre.fan_speed));
153
+    TERN_(HAS_HOTEND,           if (TEST(pmask, PT_HOTEND))  thermalManager.setTargetHotend(pre.hotend_temp, e));
154
+    TERN_(HAS_HEATED_BED,       if (TEST(pmask, PT_BED))     thermalManager.setTargetBed(pre.bed_temp));
155
+    //TERN_(HAS_HEATED_CHAMBER, if (TEST(pmask, PT_CHAMBER)) thermalManager.setTargetBed(pre.chamber_temp));
156
+    TERN_(HAS_FAN,              if (TEST(pmask, PT_FAN))     thermalManager.set_fan_speed(0, pre.fan_speed));
157
   }
157
   }
158
 #endif
158
 #endif
159
 
159
 

+ 8
- 10
Marlin/src/lcd/marlinui.h 查看文件

496
   #endif
496
   #endif
497
 
497
 
498
   #if HAS_PREHEAT
498
   #if HAS_PREHEAT
499
-    enum PreheatMask : uint8_t { PM_HOTEND = _BV(0), PM_BED = _BV(1), PM_FAN = _BV(2), PM_CHAMBER = _BV(3) };
499
+    enum PreheatTarget : uint8_t { PT_HOTEND, PT_BED, PT_FAN, PT_CHAMBER, PT_ALL = 0xFF };
500
     static preheat_t material_preset[PREHEAT_COUNT];
500
     static preheat_t material_preset[PREHEAT_COUNT];
501
     static PGM_P get_preheat_label(const uint8_t m);
501
     static PGM_P get_preheat_label(const uint8_t m);
502
     static void apply_preheat(const uint8_t m, const uint8_t pmask, const uint8_t e=active_extruder);
502
     static void apply_preheat(const uint8_t m, const uint8_t pmask, const uint8_t e=active_extruder);
503
-    static void preheat_set_fan(const uint8_t m) { TERN_(HAS_FAN, apply_preheat(m, PM_FAN)); }
504
-    static void preheat_hotend(const uint8_t m, const uint8_t e=active_extruder) { TERN_(HAS_HOTEND, apply_preheat(m, PM_HOTEND)); }
503
+    static void preheat_set_fan(const uint8_t m) { TERN_(HAS_FAN, apply_preheat(m, _BV(PT_FAN))); }
504
+    static void preheat_hotend(const uint8_t m, const uint8_t e=active_extruder) { TERN_(HAS_HOTEND, apply_preheat(m, _BV(PT_HOTEND))); }
505
     static void preheat_hotend_and_fan(const uint8_t m, const uint8_t e=active_extruder) { preheat_hotend(m, e); preheat_set_fan(m); }
505
     static void preheat_hotend_and_fan(const uint8_t m, const uint8_t e=active_extruder) { preheat_hotend(m, e); preheat_set_fan(m); }
506
-    static void preheat_bed(const uint8_t m) { TERN_(HAS_HEATED_BED, apply_preheat(m, PM_BED)); }
507
-    static void preheat_all(const uint8_t m) { apply_preheat(m, 0xFF); }
506
+    static void preheat_bed(const uint8_t m) { TERN_(HAS_HEATED_BED, apply_preheat(m, _BV(PT_BED))); }
507
+    static void preheat_all(const uint8_t m) { apply_preheat(m, PT_ALL); }
508
   #endif
508
   #endif
509
 
509
 
510
-  #if SCREENS_CAN_TIME_OUT
511
-    static void reset_status_timeout(const millis_t ms) { return_to_status_ms = ms + LCD_TIMEOUT_TO_STATUS; }
512
-  #else
513
-    static void reset_status_timeout(const millis_t) {}
514
-  #endif
510
+  static void reset_status_timeout(const millis_t ms) {
511
+    TERN(SCREENS_CAN_TIME_OUT, return_to_status_ms = ms + LCD_TIMEOUT_TO_STATUS, UNUSED(ms));
512
+  }
515
 
513
 
516
   #if HAS_LCD_MENU
514
   #if HAS_LCD_MENU
517
 
515
 

正在加载...
取消
保存