소스 검색

Add REPORT_FAN_CHANGE as an option

Scott Lahteine 5 년 전
부모
커밋
2d33a9fd7c
4개의 변경된 파일24개의 추가작업 그리고 26개의 파일을 삭제
  1. 2
    0
      Marlin/Configuration_adv.h
  2. 3
    3
      Marlin/src/lcd/menu/menu_temperature.cpp
  3. 12
    9
      Marlin/src/module/temperature.cpp
  4. 7
    14
      Marlin/src/module/temperature.h

+ 2
- 0
Marlin/Configuration_adv.h 파일 보기

3104
 //#define M114_REALTIME       // Real current position based on forward kinematics
3104
 //#define M114_REALTIME       // Real current position based on forward kinematics
3105
 //#define M114_LEGACY         // M114 used to synchronize on every call. Enable if needed.
3105
 //#define M114_LEGACY         // M114 used to synchronize on every call. Enable if needed.
3106
 
3106
 
3107
+//#define REPORT_FAN_CHANGE   // Report the new fan speed when changed by M106 (and others)
3108
+
3107
 /**
3109
 /**
3108
  * Set the number of proportional font spaces required to fill up a typical character space.
3110
  * Set the number of proportional font spaces required to fill up a typical character space.
3109
  * This can help to better align the output of commands like `G29 O` Mesh Output.
3111
  * This can help to better align the output of commands like `G29 O` Mesh Output.

+ 3
- 3
Marlin/src/lcd/menu/menu_temperature.cpp 파일 보기

161
   // Nozzle [1-5]:
161
   // Nozzle [1-5]:
162
   //
162
   //
163
   #if HOTENDS == 1
163
   #if HOTENDS == 1
164
-    EDIT_ITEM_FAST(int3, MSG_NOZZLE, &thermalManager.temp_hotend[0].target, 0, HEATER_0_MAXTEMP - HOTEND_OVERSHOOT, []{ thermalManager.start_watching_hotend(0); });
164
+    EDIT_ITEM_FAST(int3, MSG_NOZZLE, &thermalManager.temp_hotend[0].target, 0, HEATER_0_MAXTEMP - (HOTEND_OVERSHOOT), []{ thermalManager.start_watching_hotend(0); });
165
   #elif HAS_MULTI_HOTEND
165
   #elif HAS_MULTI_HOTEND
166
     HOTEND_LOOP()
166
     HOTEND_LOOP()
167
-      EDIT_ITEM_FAST_N(int3, e, MSG_NOZZLE_N, &thermalManager.temp_hotend[e].target, 0, thermalManager.heater_maxtemp[e] - HOTEND_OVERSHOOT, []{ thermalManager.start_watching_hotend(MenuItemBase::itemIndex); });
167
+      EDIT_ITEM_FAST_N(int3, e, MSG_NOZZLE_N, &thermalManager.temp_hotend[e].target, 0, thermalManager.heater_maxtemp[e] - (HOTEND_OVERSHOOT), []{ thermalManager.start_watching_hotend(MenuItemBase::itemIndex); });
168
   #endif
168
   #endif
169
 
169
 
170
   #if ENABLED(SINGLENOZZLE_STANDBY_TEMP)
170
   #if ENABLED(SINGLENOZZLE_STANDBY_TEMP)
171
     LOOP_S_L_N(e, 1, EXTRUDERS)
171
     LOOP_S_L_N(e, 1, EXTRUDERS)
172
-      EDIT_ITEM_FAST_N(uint16_3, e, MSG_NOZZLE_STANDBY, &singlenozzle_temp[e], 0, thermalManager.heater_maxtemp[0] - HOTEND_OVERSHOOT);
172
+      EDIT_ITEM_FAST_N(uint16_3, e, MSG_NOZZLE_STANDBY, &singlenozzle_temp[e], 0, thermalManager.heater_maxtemp[0] - (HOTEND_OVERSHOOT));
173
   #endif
173
   #endif
174
 
174
 
175
   //
175
   //

+ 12
- 9
Marlin/src/module/temperature.cpp 파일 보기

216
     if (target >= FAN_COUNT) return;
216
     if (target >= FAN_COUNT) return;
217
 
217
 
218
     fan_speed[target] = speed;
218
     fan_speed[target] = speed;
219
-    report_fan_speed(target);
220
-  }
221
 
219
 
222
-  /**
223
-   * Report print fan speed for a target extruder
224
-   */
225
-  void Temperature::report_fan_speed(const uint8_t target) {
226
-    if (target >= FAN_COUNT) return;
227
-    PORT_REDIRECT(SERIAL_BOTH);
228
-    SERIAL_ECHOLNPAIR("M106 P", target, " S", fan_speed[target]);
220
+    TERN_(REPORT_FAN_CHANGE, report_fan_speed(target));
229
   }
221
   }
230
 
222
 
223
+  #if ENABLED(REPORT_FAN_CHANGE)
224
+    /**
225
+     * Report print fan speed for a target extruder
226
+     */
227
+    void Temperature::report_fan_speed(const uint8_t target) {
228
+      if (target >= FAN_COUNT) return;
229
+      PORT_REDIRECT(SERIAL_BOTH);
230
+      SERIAL_ECHOLNPAIR("M106 P", target, " S", fan_speed[target]);
231
+    }
232
+  #endif
233
+
231
   #if EITHER(PROBING_FANS_OFF, ADVANCED_PAUSE_FANS_PAUSE)
234
   #if EITHER(PROBING_FANS_OFF, ADVANCED_PAUSE_FANS_PAUSE)
232
 
235
 
233
     void Temperature::set_fans_paused(const bool p) {
236
     void Temperature::set_fans_paused(const bool p) {

+ 7
- 14
Marlin/src/module/temperature.h 파일 보기

474
       #define FANS_LOOP(I) LOOP_L_N(I, FAN_COUNT)
474
       #define FANS_LOOP(I) LOOP_L_N(I, FAN_COUNT)
475
 
475
 
476
       static void set_fan_speed(const uint8_t target, const uint16_t speed);
476
       static void set_fan_speed(const uint8_t target, const uint16_t speed);
477
-      static void report_fan_speed(const uint8_t target);
477
+
478
+      #if ENABLED(REPORT_FAN_CHANGE)
479
+        static void report_fan_speed(const uint8_t target);
480
+      #endif
478
 
481
 
479
       #if EITHER(PROBING_FANS_OFF, ADVANCED_PAUSE_FANS_PAUSE)
482
       #if EITHER(PROBING_FANS_OFF, ADVANCED_PAUSE_FANS_PAUSE)
480
         static bool fans_paused;
483
         static bool fans_paused;
487
 
490
 
488
       static inline uint8_t scaledFanSpeed(const uint8_t target, const uint8_t fs) {
491
       static inline uint8_t scaledFanSpeed(const uint8_t target, const uint8_t fs) {
489
         UNUSED(target); // Potentially unused!
492
         UNUSED(target); // Potentially unused!
490
-        return (fs * uint16_t(
491
-          #if ENABLED(ADAPTIVE_FAN_SLOWING)
492
-            fan_speed_scaler[target]
493
-          #else
494
-            128
495
-          #endif
496
-        )) >> 7;
493
+        return (fs * uint16_t(TERN(ADAPTIVE_FAN_SLOWING, fan_speed_scaler[target], 128))) >> 7;
497
       }
494
       }
498
 
495
 
499
       static inline uint8_t scaledFanSpeed(const uint8_t target) {
496
       static inline uint8_t scaledFanSpeed(const uint8_t target) {
629
       static void setTargetBed(const int16_t celsius) {
626
       static void setTargetBed(const int16_t celsius) {
630
         TERN_(AUTO_POWER_CONTROL, powerManager.power_on());
627
         TERN_(AUTO_POWER_CONTROL, powerManager.power_on());
631
         temp_bed.target =
628
         temp_bed.target =
632
-          #ifdef BED_MAXTEMP
629
+          #ifdef BED_MAX_TARGET
633
             _MIN(celsius, BED_MAX_TARGET)
630
             _MIN(celsius, BED_MAX_TARGET)
634
           #else
631
           #else
635
             celsius
632
             celsius
790
 
787
 
791
     #define HAS_MAX6675 EITHER(HEATER_0_USES_MAX6675, HEATER_1_USES_MAX6675)
788
     #define HAS_MAX6675 EITHER(HEATER_0_USES_MAX6675, HEATER_1_USES_MAX6675)
792
     #if HAS_MAX6675
789
     #if HAS_MAX6675
793
-      #if BOTH(HEATER_0_USES_MAX6675, HEATER_1_USES_MAX6675)
794
-        #define COUNT_6675 2
795
-      #else
796
-        #define COUNT_6675 1
797
-      #endif
790
+      #define COUNT_6675 1 + BOTH(HEATER_0_USES_MAX6675, HEATER_1_USES_MAX6675)
798
       #if COUNT_6675 > 1
791
       #if COUNT_6675 > 1
799
         #define READ_MAX6675(N) read_max6675(N)
792
         #define READ_MAX6675(N) read_max6675(N)
800
       #else
793
       #else

Loading…
취소
저장