Browse Source

🏗️ Allow headless Flow Meter (#22234)

vanilla_fb_2.0.x
Mike La Spina 3 years ago
committed by Scott Lahteine
parent
commit
5026797310
  1. 23
      Marlin/src/feature/cooler.cpp
  2. 6
      Marlin/src/feature/cooler.h
  3. 2
      Marlin/src/gcode/gcode.cpp
  4. 2
      Marlin/src/module/temperature.cpp
  5. 3
      ini/features.ini

23
Marlin/src/feature/cooler.cpp

@ -22,26 +22,27 @@
#include "../inc/MarlinConfig.h" #include "../inc/MarlinConfig.h"
#if HAS_COOLER #if EITHER(HAS_COOLER, LASER_COOLANT_FLOW_METER)
#include "cooler.h" #include "cooler.h"
Cooler cooler; Cooler cooler;
uint8_t Cooler::mode = 0; #if HAS_COOLER
uint16_t Cooler::capacity; uint8_t Cooler::mode = 0;
uint16_t Cooler::load; uint16_t Cooler::capacity;
bool Cooler::enabled = false; uint16_t Cooler::load;
bool Cooler::enabled = false;
#endif
#if ENABLED(LASER_COOLANT_FLOW_METER) #if ENABLED(LASER_COOLANT_FLOW_METER)
bool Cooler::flowmeter = false; bool Cooler::flowmeter = false;
millis_t Cooler::flowmeter_next_ms; // = 0 millis_t Cooler::flowmeter_next_ms; // = 0
volatile uint16_t Cooler::flowpulses; volatile uint16_t Cooler::flowpulses;
float Cooler::flowrate; float Cooler::flowrate;
#if ENABLED(FLOWMETER_SAFETY)
bool Cooler::flowsafety_enabled = true;
bool Cooler::flowfault = false;
#endif
#endif #endif
#if ENABLED(FLOWMETER_SAFETY) #endif // HAS_COOLER || LASER_COOLANT_FLOW_METER
bool Cooler::flowsafety_enabled = true;
bool Cooler::fault = false;
#endif
#endif // HAS_COOLER

6
Marlin/src/feature/cooler.h

@ -94,12 +94,12 @@ public:
} }
#if ENABLED(FLOWMETER_SAFETY) #if ENABLED(FLOWMETER_SAFETY)
static bool fault; // Flag that the cooler is in a fault state static bool flowfault; // Flag that the cooler is in a fault state
static bool flowsafety_enabled; // Flag to disable the cutter if flow rate is too low static bool flowsafety_enabled; // Flag to disable the cutter if flow rate is too low
static void flowsafety_toggle() { flowsafety_enabled = !flowsafety_enabled; } static void flowsafety_toggle() { flowsafety_enabled = !flowsafety_enabled; }
static bool check_flow_too_low() { static bool check_flow_too_low() {
const bool too_low = flowsafety_enabled && flowrate < (FLOWMETER_MIN_LITERS_PER_MINUTE); const bool too_low = flowsafety_enabled && flowrate < (FLOWMETER_MIN_LITERS_PER_MINUTE);
if (too_low) fault = true; flowfault = too_low;
return too_low; return too_low;
} }
#endif #endif

2
Marlin/src/gcode/gcode.cpp

@ -292,7 +292,7 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) {
#endif #endif
#if ENABLED(FLOWMETER_SAFETY) #if ENABLED(FLOWMETER_SAFETY)
if (cooler.fault) { if (cooler.flowfault) {
SERIAL_ECHO_MSG(STR_FLOWMETER_FAULT); SERIAL_ECHO_MSG(STR_FLOWMETER_FAULT);
return; return;
} }

2
Marlin/src/module/temperature.cpp

@ -1555,7 +1555,7 @@ void Temperature::manage_heater() {
#if ENABLED(FLOWMETER_SAFETY) #if ENABLED(FLOWMETER_SAFETY)
if (cutter.enabled() && cooler.check_flow_too_low()) { if (cutter.enabled() && cooler.check_flow_too_low()) {
cutter.disable(); cutter.disable();
ui.flow_fault(); TERN_(HAS_DISPLAY, ui.flow_fault());
} }
#endif #endif
#endif #endif

3
ini/features.ini

@ -202,7 +202,8 @@ SDSUPPORT = src_filter=+<src/sd/cardreader.cpp> +<s
HAS_MEDIA_SUBCALLS = src_filter=+<src/gcode/sd/M32.cpp> HAS_MEDIA_SUBCALLS = src_filter=+<src/gcode/sd/M32.cpp>
GCODE_REPEAT_MARKERS = src_filter=+<src/feature/repeat.cpp> +<src/gcode/sd/M808.cpp> GCODE_REPEAT_MARKERS = src_filter=+<src/feature/repeat.cpp> +<src/gcode/sd/M808.cpp>
HAS_EXTRUDERS = src_filter=+<src/gcode/units/M82_M83.cpp> +<src/gcode/temp/M104_M109.cpp> +<src/gcode/config/M221.cpp> HAS_EXTRUDERS = src_filter=+<src/gcode/units/M82_M83.cpp> +<src/gcode/temp/M104_M109.cpp> +<src/gcode/config/M221.cpp>
HAS_COOLER = src_filter=+<src/feature/cooler.cpp> +<src/gcode/temp/M143_M193.cpp> HAS_COOLER = src_filter=+<src/gcode/temp/M143_M193.cpp>
HAS_COOLER|LASER_COOLANT_FLOW_METER = src_filter=+<src/feature/cooler.cpp>
AUTO_REPORT_TEMPERATURES = src_filter=+<src/gcode/temp/M155.cpp> AUTO_REPORT_TEMPERATURES = src_filter=+<src/gcode/temp/M155.cpp>
INCH_MODE_SUPPORT = src_filter=+<src/gcode/units/G20_G21.cpp> INCH_MODE_SUPPORT = src_filter=+<src/gcode/units/G20_G21.cpp>
TEMPERATURE_UNITS_SUPPORT = src_filter=+<src/gcode/units/M149.cpp> TEMPERATURE_UNITS_SUPPORT = src_filter=+<src/gcode/units/M149.cpp>

Loading…
Cancel
Save