From efb58a9a0d16f0907cfbf31899f423c08c50ef5b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 26 Nov 2025 23:04:31 -0600 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20Consolidate?= =?UTF-8?q?=20repetitious=20items?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Marlin/src/feature/fancheck.cpp | 64 +-- Marlin/src/feature/joystick.cpp | 16 +- Marlin/src/gcode/calibrate/G425.cpp | 104 +--- Marlin/src/gcode/config/M210.cpp | 38 +- .../lcd/extui/dgus_reloaded/DGUSRxHandler.cpp | 40 +- .../lcd/extui/dgus_reloaded/DGUSTxHandler.cpp | 148 ++--- Marlin/src/module/endstops.cpp | 529 +++++------------- Marlin/src/module/stepper/control.cpp | 72 +-- Marlin/src/module/temperature.cpp | 12 +- 9 files changed, 263 insertions(+), 760 deletions(-) diff --git a/Marlin/src/feature/fancheck.cpp b/Marlin/src/feature/fancheck.cpp index 844191e7e4..4978b8c999 100644 --- a/Marlin/src/feature/fancheck.cpp +++ b/Marlin/src/feature/fancheck.cpp @@ -42,30 +42,14 @@ bool FanCheck::enabled; void FanCheck::init() { #define _TACHINIT(N) TERN(E##N##_FAN_TACHO_PULLUP, SET_INPUT_PULLUP, TERN(E##N##_FAN_TACHO_PULLDOWN, SET_INPUT_PULLDOWN, SET_INPUT))(E##N##_FAN_TACHO_PIN) - #if HAS_E0_FAN_TACHO - _TACHINIT(0); - #endif - #if HAS_E1_FAN_TACHO - _TACHINIT(1); - #endif - #if HAS_E2_FAN_TACHO - _TACHINIT(2); - #endif - #if HAS_E3_FAN_TACHO - _TACHINIT(3); - #endif - #if HAS_E4_FAN_TACHO - _TACHINIT(4); - #endif - #if HAS_E5_FAN_TACHO - _TACHINIT(5); - #endif - #if HAS_E6_FAN_TACHO - _TACHINIT(6); - #endif - #if HAS_E7_FAN_TACHO - _TACHINIT(7); - #endif + TERF(HAS_E0_FAN_TACHO, _TACHINIT)(0); + TERF(HAS_E1_FAN_TACHO, _TACHINIT)(1); + TERF(HAS_E2_FAN_TACHO, _TACHINIT)(2); + TERF(HAS_E3_FAN_TACHO, _TACHINIT)(3); + TERF(HAS_E4_FAN_TACHO, _TACHINIT)(4); + TERF(HAS_E5_FAN_TACHO, _TACHINIT)(5); + TERF(HAS_E6_FAN_TACHO, _TACHINIT)(6); + TERF(HAS_E7_FAN_TACHO, _TACHINIT)(7); } void FanCheck::update_tachometers() { @@ -74,30 +58,14 @@ void FanCheck::update_tachometers() { #define _TACHO_CASE(N) case N: status = READ(E##N##_FAN_TACHO_PIN); break; for (uint8_t f = 0; f < TACHO_COUNT; ++f) { switch (f) { - #if HAS_E0_FAN_TACHO - _TACHO_CASE(0) - #endif - #if HAS_E1_FAN_TACHO - _TACHO_CASE(1) - #endif - #if HAS_E2_FAN_TACHO - _TACHO_CASE(2) - #endif - #if HAS_E3_FAN_TACHO - _TACHO_CASE(3) - #endif - #if HAS_E4_FAN_TACHO - _TACHO_CASE(4) - #endif - #if HAS_E5_FAN_TACHO - _TACHO_CASE(5) - #endif - #if HAS_E6_FAN_TACHO - _TACHO_CASE(6) - #endif - #if HAS_E7_FAN_TACHO - _TACHO_CASE(7) - #endif + TERF(HAS_E0_FAN_TACHO, _TACHO_CASE)(0) + TERF(HAS_E1_FAN_TACHO, _TACHO_CASE)(1) + TERF(HAS_E2_FAN_TACHO, _TACHO_CASE)(2) + TERF(HAS_E3_FAN_TACHO, _TACHO_CASE)(3) + TERF(HAS_E4_FAN_TACHO, _TACHO_CASE)(4) + TERF(HAS_E5_FAN_TACHO, _TACHO_CASE)(5) + TERF(HAS_E6_FAN_TACHO, _TACHO_CASE)(6) + TERF(HAS_E7_FAN_TACHO, _TACHO_CASE)(7) default: continue; } diff --git a/Marlin/src/feature/joystick.cpp b/Marlin/src/feature/joystick.cpp index 29addfcf1e..cbfab1fed8 100644 --- a/Marlin/src/feature/joystick.cpp +++ b/Marlin/src/feature/joystick.cpp @@ -67,18 +67,10 @@ Joystick joystick; #if ENABLED(JOYSTICK_DEBUG) void Joystick::report() { SERIAL_ECHOPGM("Joystick"); - #if HAS_JOY_ADC_X - SERIAL_ECHOPGM_P(SP_X_STR, JOY_X(x.getraw())); - #endif - #if HAS_JOY_ADC_Y - SERIAL_ECHOPGM_P(SP_Y_STR, JOY_Y(y.getraw())); - #endif - #if HAS_JOY_ADC_Z - SERIAL_ECHOPGM_P(SP_Z_STR, JOY_Z(z.getraw())); - #endif - #if HAS_JOY_ADC_EN - SERIAL_ECHO_TERNARY(READ(JOY_EN_PIN), " EN=", "HIGH (dis", "LOW (en", "abled)"); - #endif + TERF(HAS_JOY_ADC_X, SERIAL_ECHOPGM_P)(SP_X_STR, JOY_X(x.getraw())); + TERF(HAS_JOY_ADC_Y, SERIAL_ECHOPGM_P)(SP_Y_STR, JOY_Y(y.getraw())); + TERF(HAS_JOY_ADC_Z, SERIAL_ECHOPGM_P)(SP_Z_STR, JOY_Z(z.getraw())); + TERF(HAS_JOY_ADC_EN, SERIAL_ECHO_TERNARY)(READ(JOY_EN_PIN), " EN=", "HIGH (dis", "LOW (en", "abled)"); SERIAL_EOL(); } #endif diff --git a/Marlin/src/gcode/calibrate/G425.cpp b/Marlin/src/gcode/calibrate/G425.cpp index 338c776885..883d7b4b6f 100644 --- a/Marlin/src/gcode/calibrate/G425.cpp +++ b/Marlin/src/gcode/calibrate/G425.cpp @@ -468,102 +468,54 @@ inline void probe_sides(measurements_t &m, const float uncertainty) { inline void report_measured_center(const measurements_t &m) { SERIAL_ECHOLNPGM("Center:"); - #if HAS_X_CENTER - SERIAL_ECHOLNPGM_P(SP_X_STR, m.obj_center.x); - #endif - #if HAS_Y_CENTER - SERIAL_ECHOLNPGM_P(SP_Y_STR, m.obj_center.y); - #endif + TERF(HAS_X_CENTER, SERIAL_ECHOLNPGM_P)(SP_X_STR, m.obj_center.x); + TERF(HAS_Y_CENTER, SERIAL_ECHOLNPGM_P)(SP_Y_STR, m.obj_center.y); SERIAL_ECHOLNPGM_P(SP_Z_STR, m.obj_center.z); - #if HAS_I_CENTER - SERIAL_ECHOLNPGM_P(SP_I_STR, m.obj_center.i); - #endif - #if HAS_J_CENTER - SERIAL_ECHOLNPGM_P(SP_J_STR, m.obj_center.j); - #endif - #if HAS_K_CENTER - SERIAL_ECHOLNPGM_P(SP_K_STR, m.obj_center.k); - #endif - #if HAS_U_CENTER - SERIAL_ECHOLNPGM_P(SP_U_STR, m.obj_center.u); - #endif - #if HAS_V_CENTER - SERIAL_ECHOLNPGM_P(SP_V_STR, m.obj_center.v); - #endif - #if HAS_W_CENTER - SERIAL_ECHOLNPGM_P(SP_W_STR, m.obj_center.w); - #endif + TERF(HAS_I_CENTER, SERIAL_ECHOLNPGM_P)(SP_I_STR, m.obj_center.i); + TERF(HAS_J_CENTER, SERIAL_ECHOLNPGM_P)(SP_J_STR, m.obj_center.j); + TERF(HAS_K_CENTER, SERIAL_ECHOLNPGM_P)(SP_K_STR, m.obj_center.k); + TERF(HAS_U_CENTER, SERIAL_ECHOLNPGM_P)(SP_U_STR, m.obj_center.u); + TERF(HAS_V_CENTER, SERIAL_ECHOLNPGM_P)(SP_V_STR, m.obj_center.v); + TERF(HAS_W_CENTER, SERIAL_ECHOLNPGM_P)(SP_W_STR, m.obj_center.w); SERIAL_EOL(); } inline void report_measured_backlash(const measurements_t &m) { SERIAL_ECHOLNPGM("Backlash:"); #if AXIS_CAN_CALIBRATE(X) - #if ENABLED(CALIBRATION_MEASURE_LEFT) - SERIAL_ECHOLNPGM(" Left: ", m.backlash[LEFT]); - #endif - #if ENABLED(CALIBRATION_MEASURE_RIGHT) - SERIAL_ECHOLNPGM(" Right: ", m.backlash[RIGHT]); - #endif + TERF(CALIBRATION_MEASURE_LEFT, SERIAL_ECHOLNPGM)(" Left: ", m.backlash[LEFT]); + TERF(CALIBRATION_MEASURE_RIGHT, SERIAL_ECHOLNPGM)(" Right: ", m.backlash[RIGHT]); #endif #if AXIS_CAN_CALIBRATE(Y) - #if ENABLED(CALIBRATION_MEASURE_FRONT) - SERIAL_ECHOLNPGM(" Front: ", m.backlash[FRONT]); - #endif - #if ENABLED(CALIBRATION_MEASURE_BACK) - SERIAL_ECHOLNPGM(" Back: ", m.backlash[BACK]); - #endif + TERF(CALIBRATION_MEASURE_FRONT, SERIAL_ECHOLNPGM)(" Front: ", m.backlash[FRONT]); + TERF(CALIBRATION_MEASURE_BACK, SERIAL_ECHOLNPGM)(" Back: ", m.backlash[BACK]); #endif #if AXIS_CAN_CALIBRATE(Z) SERIAL_ECHOLNPGM(" Top: ", m.backlash[TOP]); #endif #if AXIS_CAN_CALIBRATE(I) - #if ENABLED(CALIBRATION_MEASURE_IMIN) - SERIAL_ECHOLNPGM(" " STR_I_MIN ": ", m.backlash[IMINIMUM]); - #endif - #if ENABLED(CALIBRATION_MEASURE_IMAX) - SERIAL_ECHOLNPGM(" " STR_I_MAX ": ", m.backlash[IMAXIMUM]); - #endif + TERF(CALIBRATION_MEASURE_IMIN, SERIAL_ECHOLNPGM)(" " STR_I_MIN ": ", m.backlash[IMINIMUM]); + TERF(CALIBRATION_MEASURE_IMAX, SERIAL_ECHOLNPGM)(" " STR_I_MAX ": ", m.backlash[IMAXIMUM]); #endif #if AXIS_CAN_CALIBRATE(J) - #if ENABLED(CALIBRATION_MEASURE_JMIN) - SERIAL_ECHOLNPGM(" " STR_J_MIN ": ", m.backlash[JMINIMUM]); - #endif - #if ENABLED(CALIBRATION_MEASURE_JMAX) - SERIAL_ECHOLNPGM(" " STR_J_MAX ": ", m.backlash[JMAXIMUM]); - #endif + TERF(CALIBRATION_MEASURE_JMIN, SERIAL_ECHOLNPGM)(" " STR_J_MIN ": ", m.backlash[JMINIMUM]); + TERF(CALIBRATION_MEASURE_JMAX, SERIAL_ECHOLNPGM)(" " STR_J_MAX ": ", m.backlash[JMAXIMUM]); #endif #if AXIS_CAN_CALIBRATE(K) - #if ENABLED(CALIBRATION_MEASURE_KMIN) - SERIAL_ECHOLNPGM(" " STR_K_MIN ": ", m.backlash[KMINIMUM]); - #endif - #if ENABLED(CALIBRATION_MEASURE_KMAX) - SERIAL_ECHOLNPGM(" " STR_K_MAX ": ", m.backlash[KMAXIMUM]); - #endif + TERF(CALIBRATION_MEASURE_KMIN, SERIAL_ECHOLNPGM)(" " STR_K_MIN ": ", m.backlash[KMINIMUM]); + TERF(CALIBRATION_MEASURE_KMAX, SERIAL_ECHOLNPGM)(" " STR_K_MAX ": ", m.backlash[KMAXIMUM]); #endif #if AXIS_CAN_CALIBRATE(U) - #if ENABLED(CALIBRATION_MEASURE_UMIN) - SERIAL_ECHOLNPGM(" " STR_U_MIN ": ", m.backlash[UMINIMUM]); - #endif - #if ENABLED(CALIBRATION_MEASURE_UMAX) - SERIAL_ECHOLNPGM(" " STR_U_MAX ": ", m.backlash[UMAXIMUM]); - #endif + TERF(CALIBRATION_MEASURE_UMIN, SERIAL_ECHOLNPGM)(" " STR_U_MIN ": ", m.backlash[UMINIMUM]); + TERF(CALIBRATION_MEASURE_UMAX, SERIAL_ECHOLNPGM)(" " STR_U_MAX ": ", m.backlash[UMAXIMUM]); #endif #if AXIS_CAN_CALIBRATE(V) - #if ENABLED(CALIBRATION_MEASURE_VMIN) - SERIAL_ECHOLNPGM(" " STR_V_MIN ": ", m.backlash[VMINIMUM]); - #endif - #if ENABLED(CALIBRATION_MEASURE_VMAX) - SERIAL_ECHOLNPGM(" " STR_V_MAX ": ", m.backlash[VMAXIMUM]); - #endif + TERF(CALIBRATION_MEASURE_VMIN, SERIAL_ECHOLNPGM)(" " STR_V_MIN ": ", m.backlash[VMINIMUM]); + TERF(CALIBRATION_MEASURE_VMAX, SERIAL_ECHOLNPGM)(" " STR_V_MAX ": ", m.backlash[VMAXIMUM]); #endif #if AXIS_CAN_CALIBRATE(W) - #if ENABLED(CALIBRATION_MEASURE_WMIN) - SERIAL_ECHOLNPGM(" " STR_W_MIN ": ", m.backlash[WMINIMUM]); - #endif - #if ENABLED(CALIBRATION_MEASURE_WMAX) - SERIAL_ECHOLNPGM(" " STR_W_MAX ": ", m.backlash[WMAXIMUM]); - #endif + TERF(CALIBRATION_MEASURE_WMIN, SERIAL_ECHOLNPGM)(" " STR_W_MIN ": ", m.backlash[WMINIMUM]); + TERF(CALIBRATION_MEASURE_WMAX, SERIAL_ECHOLNPGM)(" " STR_W_MAX ": ", m.backlash[WMAXIMUM]); #endif SERIAL_EOL(); } @@ -604,12 +556,8 @@ inline void probe_sides(measurements_t &m, const float uncertainty) { inline void report_measured_nozzle_dimensions(const measurements_t &m) { SERIAL_ECHOLNPGM("Nozzle Tip Outer Dimensions:"); - #if HAS_X_CENTER - SERIAL_ECHOLNPGM_P(SP_X_STR, m.nozzle_outer_dimension.x); - #endif - #if HAS_Y_CENTER - SERIAL_ECHOLNPGM_P(SP_Y_STR, m.nozzle_outer_dimension.y); - #endif + TERF(HAS_X_CENTER, SERIAL_ECHOLNPGM_P)(SP_X_STR, m.nozzle_outer_dimension.x); + TERF(HAS_Y_CENTER, SERIAL_ECHOLNPGM_P)(SP_Y_STR, m.nozzle_outer_dimension.y); SERIAL_EOL(); UNUSED(m); } diff --git a/Marlin/src/gcode/config/M210.cpp b/Marlin/src/gcode/config/M210.cpp index f07e009b4a..41dbd73db4 100644 --- a/Marlin/src/gcode/config/M210.cpp +++ b/Marlin/src/gcode/config/M210.cpp @@ -47,33 +47,17 @@ void GcodeSuite::M210() { if (!parser.seen_any()) return M210_report(); - #if HAS_X_AXIS - if (parser.floatval(AXIS1_PARAM) > 0) homing_feedrate_mm_m.x = parser.value_axis_units(X_AXIS); - #endif - #if HAS_Y_AXIS - if (parser.floatval(AXIS2_PARAM) > 0) homing_feedrate_mm_m.y = parser.value_axis_units(Y_AXIS); - #endif - #if HAS_Z_AXIS - if (parser.floatval(AXIS3_PARAM) > 0) homing_feedrate_mm_m.z = parser.value_axis_units(Z_AXIS); - #endif - #if HAS_I_AXIS - if (parser.floatval(AXIS4_PARAM) > 0) homing_feedrate_mm_m.i = parser.value_axis_units(I_AXIS); - #endif - #if HAS_J_AXIS - if (parser.floatval(AXIS5_PARAM) > 0) homing_feedrate_mm_m.j = parser.value_axis_units(J_AXIS); - #endif - #if HAS_K_AXIS - if (parser.floatval(AXIS6_PARAM) > 0) homing_feedrate_mm_m.k = parser.value_axis_units(K_AXIS); - #endif - #if HAS_U_AXIS - if (parser.floatval(AXIS7_PARAM) > 0) homing_feedrate_mm_m.u = parser.value_axis_units(U_AXIS); - #endif - #if HAS_V_AXIS - if (parser.floatval(AXIS8_PARAM) > 0) homing_feedrate_mm_m.v = parser.value_axis_units(V_AXIS); - #endif - #if HAS_W_AXIS - if (parser.floatval(AXIS9_PARAM) > 0) homing_feedrate_mm_m.w = parser.value_axis_units(W_AXIS); - #endif + NUM_AXIS_CODE( + if (parser.floatval(AXIS1_PARAM) > 0) homing_feedrate_mm_m.x = parser.value_axis_units(X_AXIS), + if (parser.floatval(AXIS2_PARAM) > 0) homing_feedrate_mm_m.y = parser.value_axis_units(Y_AXIS), + if (parser.floatval(AXIS3_PARAM) > 0) homing_feedrate_mm_m.z = parser.value_axis_units(Z_AXIS), + if (parser.floatval(AXIS4_PARAM) > 0) homing_feedrate_mm_m.i = parser.value_axis_units(I_AXIS), + if (parser.floatval(AXIS5_PARAM) > 0) homing_feedrate_mm_m.j = parser.value_axis_units(J_AXIS), + if (parser.floatval(AXIS6_PARAM) > 0) homing_feedrate_mm_m.k = parser.value_axis_units(K_AXIS), + if (parser.floatval(AXIS7_PARAM) > 0) homing_feedrate_mm_m.u = parser.value_axis_units(U_AXIS), + if (parser.floatval(AXIS8_PARAM) > 0) homing_feedrate_mm_m.v = parser.value_axis_units(V_AXIS), + if (parser.floatval(AXIS9_PARAM) > 0) homing_feedrate_mm_m.w = parser.value_axis_units(W_AXIS) + ); } void GcodeSuite::M210_report(const bool forReplay/*=true*/) { diff --git a/Marlin/src/lcd/extui/dgus_reloaded/DGUSRxHandler.cpp b/Marlin/src/lcd/extui/dgus_reloaded/DGUSRxHandler.cpp index c25163b7e6..68e1f95b79 100644 --- a/Marlin/src/lcd/extui/dgus_reloaded/DGUSRxHandler.cpp +++ b/Marlin/src/lcd/extui/dgus_reloaded/DGUSRxHandler.cpp @@ -231,12 +231,8 @@ void DGUSRxHandler::flowrate(DGUS_VP &vp, void *data_ptr) { ExtUI::setFlow_percent(flowrate, TERN(HAS_MULTI_EXTRUDER, ExtUI::getActiveTool(), ExtUI::E0)); break; #if HAS_MULTI_EXTRUDER - case DGUS_Addr::ADJUST_SetFlowrate_E0: - ExtUI::setFlow_percent(flowrate, ExtUI::E0); - break; - case DGUS_Addr::ADJUST_SetFlowrate_E1: - ExtUI::setFlow_percent(flowrate, ExtUI::E1); - break; + case DGUS_Addr::ADJUST_SetFlowrate_E0: ExtUI::setFlow_percent(flowrate, ExtUI::E0); break; + case DGUS_Addr::ADJUST_SetFlowrate_E1: ExtUI::setFlow_percent(flowrate, ExtUI::E1); break; #endif } @@ -265,12 +261,8 @@ void DGUSRxHandler::babystep(DGUS_VP &vp, void *data_ptr) { switch (adjust) { default: return; - case DGUS_Data::Adjust::INCREMENT: - steps = ExtUI::mmToWholeSteps(DGUS_PRINT_BABYSTEP, ExtUI::Z); - break; - case DGUS_Data::Adjust::DECREMENT: - steps = ExtUI::mmToWholeSteps(-DGUS_PRINT_BABYSTEP, ExtUI::Z); - break; + case DGUS_Data::Adjust::INCREMENT: steps = ExtUI::mmToWholeSteps(DGUS_PRINT_BABYSTEP, ExtUI::Z); break; + case DGUS_Data::Adjust::DECREMENT: steps = ExtUI::mmToWholeSteps(-DGUS_PRINT_BABYSTEP, ExtUI::Z); break; } ExtUI::smartAdjustAxis_steps(steps, ExtUI::Z, true); @@ -319,16 +311,10 @@ void DGUSRxHandler::tempTarget(DGUS_VP &vp, void *data_ptr) { switch (vp.addr) { default: return; - case DGUS_Addr::TEMP_SetTarget_Bed: - ExtUI::setTargetTemp_celsius(temp, ExtUI::BED); - break; - case DGUS_Addr::TEMP_SetTarget_H0: - ExtUI::setTargetTemp_celsius(temp, ExtUI::H0); - break; + case DGUS_Addr::TEMP_SetTarget_Bed: ExtUI::setTargetTemp_celsius(temp, ExtUI::BED); break; + case DGUS_Addr::TEMP_SetTarget_H0: ExtUI::setTargetTemp_celsius(temp, ExtUI::H0); break; #if HAS_MULTI_HOTEND - case DGUS_Addr::TEMP_SetTarget_H1: - ExtUI::setTargetTemp_celsius(temp, ExtUI::H1); - break; + case DGUS_Addr::TEMP_SetTarget_H1: ExtUI::setTargetTemp_celsius(temp, ExtUI::H1); break; #endif } @@ -349,16 +335,10 @@ void DGUSRxHandler::tempCool(DGUS_VP &vp, void *data_ptr) { ExtUI::setTargetTemp_celsius(0, ExtUI::H1); #endif break; - case DGUS_Data::Heater::BED: - ExtUI::setTargetTemp_celsius(0, ExtUI::BED); - break; - case DGUS_Data::Heater::H0: - ExtUI::setTargetTemp_celsius(0, ExtUI::H0); - break; + case DGUS_Data::Heater::BED: ExtUI::setTargetTemp_celsius(0, ExtUI::BED); break; + case DGUS_Data::Heater::H0: ExtUI::setTargetTemp_celsius(0, ExtUI::H0); break; #if HAS_MULTI_HOTEND - case DGUS_Data::Heater::H1: - ExtUI::setTargetTemp_celsius(0, ExtUI::H1); - break; + case DGUS_Data::Heater::H1: ExtUI::setTargetTemp_celsius(0, ExtUI::H1); break; #endif } diff --git a/Marlin/src/lcd/extui/dgus_reloaded/DGUSTxHandler.cpp b/Marlin/src/lcd/extui/dgus_reloaded/DGUSTxHandler.cpp index a2327d025f..d0059f056a 100644 --- a/Marlin/src/lcd/extui/dgus_reloaded/DGUSTxHandler.cpp +++ b/Marlin/src/lcd/extui/dgus_reloaded/DGUSTxHandler.cpp @@ -44,21 +44,11 @@ switch (file) { default: return; - case 0: - control = DGUS_Control::FILE0; - break; - case 1: - control = DGUS_Control::FILE1; - break; - case 2: - control = DGUS_Control::FILE2; - break; - case 3: - control = DGUS_Control::FILE3; - break; - case 4: - control = DGUS_Control::FILE4; - break; + case 0: control = DGUS_Control::FILE0; break; + case 1: control = DGUS_Control::FILE1; break; + case 2: control = DGUS_Control::FILE2; break; + case 3: control = DGUS_Control::FILE3; break; + case 4: control = DGUS_Control::FILE4; break; } if (state) { @@ -100,21 +90,11 @@ switch (vp.addr) { default: return; - case DGUS_Addr::SD_FileName0: - offset = 0; - break; - case DGUS_Addr::SD_FileName1: - offset = 1; - break; - case DGUS_Addr::SD_FileName2: - offset = 2; - break; - case DGUS_Addr::SD_FileName3: - offset = 3; - break; - case DGUS_Addr::SD_FileName4: - offset = 4; - break; + case DGUS_Addr::SD_FileName0: offset = 0; break; + case DGUS_Addr::SD_FileName1: offset = 1; break; + case DGUS_Addr::SD_FileName2: offset = 2; break; + case DGUS_Addr::SD_FileName3: offset = 3; break; + case DGUS_Addr::SD_FileName4: offset = 4; break; } if (screen.filelist.seek(screen.filelist_offset + offset)) { @@ -199,12 +179,8 @@ void DGUSTxHandler::percent(DGUS_VP &vp) { switch (vp.addr) { default: return; - case DGUS_Addr::STATUS_Percent: - progress = constrain(ExtUI::getProgress_percent(), 0, 100); - break; - case DGUS_Addr::STATUS_Percent_Complete: - progress = 100; - break; + case DGUS_Addr::STATUS_Percent: progress = constrain(ExtUI::getProgress_percent(), 0, 100); break; + case DGUS_Addr::STATUS_Percent_Complete: progress = 100; break; } dgus.write((uint16_t)DGUS_Addr::STATUS_Percent, Swap16(progress)); @@ -251,12 +227,8 @@ void DGUSTxHandler::flowrate(DGUS_VP &vp) { flowrate = ExtUI::getFlow_percent(TERN(HAS_MULTI_EXTRUDER, ExtUI::getActiveTool(), ExtUI::E0)); break; #if HAS_MULTI_EXTRUDER - case DGUS_Addr::ADJUST_Flowrate_E0: - flowrate = ExtUI::getFlow_percent(ExtUI::E0); - break; - case DGUS_Addr::ADJUST_Flowrate_E1: - flowrate = ExtUI::getFlow_percent(ExtUI::E1); - break; + case DGUS_Addr::ADJUST_Flowrate_E0: flowrate = ExtUI::getFlow_percent(ExtUI::E0); break; + case DGUS_Addr::ADJUST_Flowrate_E1: flowrate = ExtUI::getFlow_percent(ExtUI::E1); break; #endif } @@ -269,19 +241,13 @@ void DGUSTxHandler::tempMax(DGUS_VP &vp) { switch (vp.addr) { default: return; #if HAS_HEATED_BED - case DGUS_Addr::TEMP_Max_Bed: - temp = BED_MAX_TARGET; - break; + case DGUS_Addr::TEMP_Max_Bed: temp = BED_MAX_TARGET; break; #endif #if HAS_HOTEND - case DGUS_Addr::TEMP_Max_H0: - temp = thermalManager.hotend_max_target(0); - break; + case DGUS_Addr::TEMP_Max_H0: temp = thermalManager.hotend_max_target(0); break; #endif #if HAS_MULTI_HOTEND - case DGUS_Addr::TEMP_Max_H1: - temp = thermalManager.hotend_max_target(1); - break; + case DGUS_Addr::TEMP_Max_H1: temp = thermalManager.hotend_max_target(1); break; #endif } @@ -299,18 +265,10 @@ void DGUSTxHandler::stepIcons(DGUS_VP &vp) { DGUS_Data::StepSize size = *(DGUS_Data::StepSize*)vp.extra; switch (size) { - case DGUS_Data::StepSize::MM10: - icons |= (uint16_t)DGUS_Data::StepIcon::MM10; - break; - case DGUS_Data::StepSize::MM1: - icons |= (uint16_t)DGUS_Data::StepIcon::MM1; - break; - case DGUS_Data::StepSize::MMP1: - icons |= (uint16_t)DGUS_Data::StepIcon::MMP1; - break; - case DGUS_Data::StepSize::MMP01: - icons |= (uint16_t)DGUS_Data::StepIcon::MMP01; - break; + case DGUS_Data::StepSize::MM10: icons |= (uint16_t)DGUS_Data::StepIcon::MM10; break; + case DGUS_Data::StepSize::MM1: icons |= (uint16_t)DGUS_Data::StepIcon::MM1; break; + case DGUS_Data::StepSize::MMP1: icons |= (uint16_t)DGUS_Data::StepIcon::MMP1; break; + case DGUS_Data::StepSize::MMP01: icons |= (uint16_t)DGUS_Data::StepIcon::MMP01; break; } dgus.write((uint16_t)vp.addr, Swap16(icons)); @@ -362,21 +320,13 @@ void DGUSTxHandler::filamentIcons(DGUS_VP &vp) { #if HAS_MULTI_EXTRUDER switch (ExtUI::getActiveTool()) { default: break; - case ExtUI::E0: - icons |= (uint16_t)DGUS_Data::ExtruderIcon::E0; - break; - case ExtUI::E1: - icons |= (uint16_t)DGUS_Data::ExtruderIcon::E1; - break; + case ExtUI::E0: icons |= (uint16_t)DGUS_Data::ExtruderIcon::E0; break; + case ExtUI::E1: icons |= (uint16_t)DGUS_Data::ExtruderIcon::E1; break; } break; #endif - case DGUS_Data::Extruder::E0: - icons |= (uint16_t)DGUS_Data::ExtruderIcon::E0; - break; - case DGUS_Data::Extruder::E1: - icons |= (uint16_t)DGUS_Data::ExtruderIcon::E1; - break; + case DGUS_Data::Extruder::E0: icons |= (uint16_t)DGUS_Data::ExtruderIcon::E0; break; + case DGUS_Data::Extruder::E1: icons |= (uint16_t)DGUS_Data::ExtruderIcon::E1; break; } dgus.write((uint16_t)vp.addr, Swap16(icons)); @@ -403,15 +353,9 @@ void DGUSTxHandler::pidIcons(DGUS_VP &vp) { switch (screen.pid_heater) { default: return; - case DGUS_Data::Heater::BED: - icons |= (uint16_t)DGUS_Data::HeaterIcon::BED; - break; - case DGUS_Data::Heater::H0: - icons |= (uint16_t)DGUS_Data::HeaterIcon::H0; - break; - case DGUS_Data::Heater::H1: - icons |= (uint16_t)DGUS_Data::HeaterIcon::H1; - break; + case DGUS_Data::Heater::BED: icons |= (uint16_t)DGUS_Data::HeaterIcon::BED; break; + case DGUS_Data::Heater::H0: icons |= (uint16_t)DGUS_Data::HeaterIcon::H0; break; + case DGUS_Data::Heater::H1: icons |= (uint16_t)DGUS_Data::HeaterIcon::H1; break; } dgus.write((uint16_t)vp.addr, Swap16(icons)); @@ -423,18 +367,12 @@ void DGUSTxHandler::pidKp(DGUS_VP &vp) { switch (screen.pid_heater) { default: return; #if ENABLED(PIDTEMPBED) - case DGUS_Data::Heater::BED: - value = ExtUI::getBedPID_Kp(); - break; + case DGUS_Data::Heater::BED: value = ExtUI::getBedPID_Kp(); break; #endif #if ENABLED(PIDTEMP) - case DGUS_Data::Heater::H0: - value = ExtUI::getPID_Kp(ExtUI::E0); - break; + case DGUS_Data::Heater::H0: value = ExtUI::getPID_Kp(ExtUI::E0); break; #if HAS_MULTI_HOTEND - case DGUS_Data::Heater::H1: - value = ExtUI::getPID_Kp(ExtUI::E1); - break; + case DGUS_Data::Heater::H1: value = ExtUI::getPID_Kp(ExtUI::E1); break; #endif #endif } @@ -449,18 +387,12 @@ void DGUSTxHandler::pidKi(DGUS_VP &vp) { switch (screen.pid_heater) { default: return; #if ENABLED(PIDTEMPBED) - case DGUS_Data::Heater::BED: - value = ExtUI::getBedPID_Ki(); - break; + case DGUS_Data::Heater::BED: value = ExtUI::getBedPID_Ki(); break; #endif #if ENABLED(PIDTEMP) - case DGUS_Data::Heater::H0: - value = ExtUI::getPID_Ki(ExtUI::E0); - break; + case DGUS_Data::Heater::H0: value = ExtUI::getPID_Ki(ExtUI::E0); break; #if HAS_MULTI_HOTEND - case DGUS_Data::Heater::H1: - value = ExtUI::getPID_Ki(ExtUI::E1); - break; + case DGUS_Data::Heater::H1: value = ExtUI::getPID_Ki(ExtUI::E1); break; #endif #endif } @@ -475,18 +407,12 @@ void DGUSTxHandler::pidKd(DGUS_VP &vp) { switch (screen.pid_heater) { default: return; #if ENABLED(PIDTEMPBED) - case DGUS_Data::Heater::BED: - value = ExtUI::getBedPID_Kd(); - break; + case DGUS_Data::Heater::BED: value = ExtUI::getBedPID_Kd(); break; #endif #if ENABLED(PIDTEMP) - case DGUS_Data::Heater::H0: - value = ExtUI::getPID_Kd(ExtUI::E0); - break; + case DGUS_Data::Heater::H0: value = ExtUI::getPID_Kd(ExtUI::E0); break; #if HAS_MULTI_HOTEND - case DGUS_Data::Heater::H1: - value = ExtUI::getPID_Kd(ExtUI::E1); - break; + case DGUS_Data::Heater::H1: value = ExtUI::getPID_Kd(ExtUI::E1); break; #endif #endif } diff --git a/Marlin/src/module/endstops.cpp b/Marlin/src/module/endstops.cpp index 91d2fcd858..20b3b8b1d2 100644 --- a/Marlin/src/module/endstops.cpp +++ b/Marlin/src/module/endstops.cpp @@ -133,90 +133,34 @@ Endstops::endstop_mask_t Endstops::live_state = 0; void Endstops::init() { #define _INIT_ENDSTOP(T,A,N) TERN(ENDSTOPPULLUP_##A##T, SET_INPUT_PULLUP, TERN(ENDSTOPPULLDOWN_##A##T, SET_INPUT_PULLDOWN, SET_INPUT))(A##N##_##T##_PIN) - #if USE_X_MIN - _INIT_ENDSTOP(MIN,X,); - #endif - #if USE_X_MAX - _INIT_ENDSTOP(MAX,X,); - #endif - #if USE_X2_MIN - _INIT_ENDSTOP(MIN,X,2); - #endif - #if USE_X2_MAX - _INIT_ENDSTOP(MAX,X,2); - #endif - #if USE_Y_MIN - _INIT_ENDSTOP(MIN,Y,); - #endif - #if USE_Y_MAX - _INIT_ENDSTOP(MAX,Y,); - #endif - #if USE_Y2_MIN - _INIT_ENDSTOP(MIN,Y,2); - #endif - #if USE_Y2_MAX - _INIT_ENDSTOP(MAX,Y,2); - #endif - #if USE_Z_MIN - _INIT_ENDSTOP(MIN,Z,); - #endif - #if USE_Z_MAX - _INIT_ENDSTOP(MAX,Z,); - #endif - #if USE_Z2_MIN - _INIT_ENDSTOP(MIN,Z,2); - #endif - #if USE_Z2_MAX - _INIT_ENDSTOP(MAX,Z,2); - #endif - #if USE_Z3_MIN - _INIT_ENDSTOP(MIN,Z,3); - #endif - #if USE_Z3_MAX - _INIT_ENDSTOP(MAX,Z,3); - #endif - #if USE_Z4_MIN - _INIT_ENDSTOP(MIN,Z,4); - #endif - #if USE_Z4_MAX - _INIT_ENDSTOP(MAX,Z,4); - #endif - #if USE_I_MIN - _INIT_ENDSTOP(MIN,I,); - #endif - #if USE_I_MAX - _INIT_ENDSTOP(MAX,I,); - #endif - #if USE_J_MIN - _INIT_ENDSTOP(MIN,J,); - #endif - #if USE_J_MAX - _INIT_ENDSTOP(MAX,J,); - #endif - #if USE_K_MIN - _INIT_ENDSTOP(MIN,K,); - #endif - #if USE_K_MAX - _INIT_ENDSTOP(MAX,K,); - #endif - #if USE_U_MIN - _INIT_ENDSTOP(MIN,U,); - #endif - #if USE_U_MAX - _INIT_ENDSTOP(MAX,U,); - #endif - #if USE_V_MIN - _INIT_ENDSTOP(MIN,V,); - #endif - #if USE_V_MAX - _INIT_ENDSTOP(MAX,V,); - #endif - #if USE_W_MIN - _INIT_ENDSTOP(MIN,W,); - #endif - #if USE_W_MAX - _INIT_ENDSTOP(MAX,W,); - #endif + TERF(USE_X_MIN, _INIT_ENDSTOP)(MIN,X,); + TERF(USE_X_MAX, _INIT_ENDSTOP)(MAX,X,); + TERF(USE_X2_MIN, _INIT_ENDSTOP)(MIN,X,2); + TERF(USE_X2_MAX, _INIT_ENDSTOP)(MAX,X,2); + TERF(USE_Y_MIN, _INIT_ENDSTOP)(MIN,Y,); + TERF(USE_Y_MAX, _INIT_ENDSTOP)(MAX,Y,); + TERF(USE_Y2_MIN, _INIT_ENDSTOP)(MIN,Y,2); + TERF(USE_Y2_MAX, _INIT_ENDSTOP)(MAX,Y,2); + TERF(USE_Z_MIN, _INIT_ENDSTOP)(MIN,Z,); + TERF(USE_Z_MAX, _INIT_ENDSTOP)(MAX,Z,); + TERF(USE_Z2_MIN, _INIT_ENDSTOP)(MIN,Z,2); + TERF(USE_Z2_MAX, _INIT_ENDSTOP)(MAX,Z,2); + TERF(USE_Z3_MIN, _INIT_ENDSTOP)(MIN,Z,3); + TERF(USE_Z3_MAX, _INIT_ENDSTOP)(MAX,Z,3); + TERF(USE_Z4_MIN, _INIT_ENDSTOP)(MIN,Z,4); + TERF(USE_Z4_MAX, _INIT_ENDSTOP)(MAX,Z,4); + TERF(USE_I_MIN, _INIT_ENDSTOP)(MIN,I,); + TERF(USE_I_MAX, _INIT_ENDSTOP)(MAX,I,); + TERF(USE_J_MIN, _INIT_ENDSTOP)(MIN,J,); + TERF(USE_J_MAX, _INIT_ENDSTOP)(MAX,J,); + TERF(USE_K_MIN, _INIT_ENDSTOP)(MIN,K,); + TERF(USE_K_MAX, _INIT_ENDSTOP)(MAX,K,); + TERF(USE_U_MIN, _INIT_ENDSTOP)(MIN,U,); + TERF(USE_U_MAX, _INIT_ENDSTOP)(MAX,U,); + TERF(USE_V_MIN, _INIT_ENDSTOP)(MIN,V,); + TERF(USE_V_MAX, _INIT_ENDSTOP)(MAX,V,); + TERF(USE_W_MIN, _INIT_ENDSTOP)(MIN,W,); + TERF(USE_W_MAX, _INIT_ENDSTOP)(MAX,W,); #if USE_CALIBRATION #if ENABLED(CALIBRATION_PIN_PULLUP) @@ -458,99 +402,41 @@ void __O2 Endstops::report_states() { TERN_(BLTOUCH, bltouch._set_SW_mode()); SERIAL_ECHOLNPGM(STR_M119_REPORT); #define ES_REPORT(S) print_es_state(READ_ENDSTOP(S##_PIN) == S##_ENDSTOP_HIT_STATE, F(STR_##S)) - #if USE_X_MIN - ES_REPORT(X_MIN); - #endif - #if USE_X2_MIN - ES_REPORT(X2_MIN); - #endif - #if USE_X_MAX - ES_REPORT(X_MAX); - #endif - #if USE_X2_MAX - ES_REPORT(X2_MAX); - #endif - #if USE_Y_MIN - ES_REPORT(Y_MIN); - #endif - #if USE_Y2_MIN - ES_REPORT(Y2_MIN); - #endif - #if USE_Y_MAX - ES_REPORT(Y_MAX); - #endif - #if USE_Y2_MAX - ES_REPORT(Y2_MAX); - #endif - #if USE_Z_MIN - ES_REPORT(Z_MIN); - #endif - #if USE_Z2_MIN - ES_REPORT(Z2_MIN); - #endif - #if USE_Z3_MIN - ES_REPORT(Z3_MIN); - #endif - #if USE_Z4_MIN - ES_REPORT(Z4_MIN); - #endif - #if USE_Z_MAX - ES_REPORT(Z_MAX); - #endif - #if USE_Z2_MAX - ES_REPORT(Z2_MAX); - #endif - #if USE_Z3_MAX - ES_REPORT(Z3_MAX); - #endif - #if USE_Z4_MAX - ES_REPORT(Z4_MAX); - #endif - #if USE_I_MIN - ES_REPORT(I_MIN); - #endif - #if USE_I_MAX - ES_REPORT(I_MAX); - #endif - #if USE_J_MIN - ES_REPORT(J_MIN); - #endif - #if USE_J_MAX - ES_REPORT(J_MAX); - #endif - #if USE_K_MIN - ES_REPORT(K_MIN); - #endif - #if USE_K_MAX - ES_REPORT(K_MAX); - #endif - #if USE_U_MIN - ES_REPORT(U_MIN); - #endif - #if USE_U_MAX - ES_REPORT(U_MAX); - #endif - #if USE_V_MIN - ES_REPORT(V_MIN); - #endif - #if USE_V_MAX - ES_REPORT(V_MAX); - #endif - #if USE_W_MIN - ES_REPORT(W_MIN); - #endif - #if USE_W_MAX - ES_REPORT(W_MAX); - #endif - #if ENABLED(PROBE_ACTIVATION_SWITCH) - print_es_state(probe_switch_activated(), F(STR_PROBE_EN)); - #endif - #if USE_Z_MIN_PROBE - print_es_state(PROBE_TRIGGERED(), F(STR_Z_PROBE)); - #endif - #if USE_CALIBRATION - print_es_state(READ(CALIBRATION_PIN) != CALIBRATION_PIN_INVERTING, F(STR_CALIBRATION)); - #endif + TERF(USE_X_MIN, ES_REPORT)(X_MIN); + TERF(USE_X2_MIN, ES_REPORT)(X2_MIN); + TERF(USE_X_MAX, ES_REPORT)(X_MAX); + TERF(USE_X2_MAX, ES_REPORT)(X2_MAX); + TERF(USE_Y_MIN, ES_REPORT)(Y_MIN); + TERF(USE_Y2_MIN, ES_REPORT)(Y2_MIN); + TERF(USE_Y_MAX, ES_REPORT)(Y_MAX); + TERF(USE_Y2_MAX, ES_REPORT)(Y2_MAX); + TERF(USE_Z_MIN, ES_REPORT)(Z_MIN); + TERF(USE_Z2_MIN, ES_REPORT)(Z2_MIN); + TERF(USE_Z3_MIN, ES_REPORT)(Z3_MIN); + TERF(USE_Z4_MIN, ES_REPORT)(Z4_MIN); + TERF(USE_Z_MAX, ES_REPORT)(Z_MAX); + TERF(USE_Z2_MAX, ES_REPORT)(Z2_MAX); + TERF(USE_Z3_MAX, ES_REPORT)(Z3_MAX); + TERF(USE_Z4_MAX, ES_REPORT)(Z4_MAX); + TERF(USE_I_MIN, ES_REPORT)(I_MIN); + TERF(USE_I_MAX, ES_REPORT)(I_MAX); + TERF(USE_J_MIN, ES_REPORT)(J_MIN); + TERF(USE_J_MAX, ES_REPORT)(J_MAX); + TERF(USE_K_MIN, ES_REPORT)(K_MIN); + TERF(USE_K_MAX, ES_REPORT)(K_MAX); + TERF(USE_U_MIN, ES_REPORT)(U_MIN); + TERF(USE_U_MAX, ES_REPORT)(U_MAX); + TERF(USE_V_MIN, ES_REPORT)(V_MIN); + TERF(USE_V_MAX, ES_REPORT)(V_MAX); + TERF(USE_W_MIN, ES_REPORT)(W_MIN); + TERF(USE_W_MAX, ES_REPORT)(W_MAX); + + TERF(PROBE_ACTIVATION_SWITCH, print_es_state)(probe_switch_activated(), F(STR_PROBE_EN)); + + TERF(USE_Z_MIN_PROBE, print_es_state)(PROBE_TRIGGERED(), F(STR_Z_PROBE)); + + TERF(USE_CALIBRATION, print_es_state)(READ(CALIBRATION_PIN) != CALIBRATION_PIN_INVERTING, F(STR_CALIBRATION)); + #if MULTI_FILAMENT_SENSOR #define _CASE_RUNOUT(N) do{ \ SERIAL_ECHO(F(STR_FILAMENT)); \ @@ -719,42 +605,18 @@ void Endstops::update() { COPY_LIVE_STATE(Z_MAX, Z4_MAX); #endif - #if USE_I_MIN - UPDATE_LIVE_STATE(I, MIN); - #endif - #if USE_I_MAX - UPDATE_LIVE_STATE(I, MAX); - #endif - #if USE_J_MIN - UPDATE_LIVE_STATE(J, MIN); - #endif - #if USE_J_MAX - UPDATE_LIVE_STATE(J, MAX); - #endif - #if USE_K_MIN - UPDATE_LIVE_STATE(K, MIN); - #endif - #if USE_K_MAX - UPDATE_LIVE_STATE(K, MAX); - #endif - #if USE_U_MIN - UPDATE_LIVE_STATE(U, MIN); - #endif - #if USE_U_MAX - UPDATE_LIVE_STATE(U, MAX); - #endif - #if USE_V_MIN - UPDATE_LIVE_STATE(V, MIN); - #endif - #if USE_V_MAX - UPDATE_LIVE_STATE(V, MAX); - #endif - #if USE_W_MIN - UPDATE_LIVE_STATE(W, MIN); - #endif - #if USE_W_MAX - UPDATE_LIVE_STATE(W, MAX); - #endif + TERF(USE_I_MIN, UPDATE_LIVE_STATE)(I, MIN); + TERF(USE_I_MAX, UPDATE_LIVE_STATE)(I, MAX); + TERF(USE_J_MIN, UPDATE_LIVE_STATE)(J, MIN); + TERF(USE_J_MAX, UPDATE_LIVE_STATE)(J, MAX); + TERF(USE_K_MIN, UPDATE_LIVE_STATE)(K, MIN); + TERF(USE_K_MAX, UPDATE_LIVE_STATE)(K, MAX); + TERF(USE_U_MIN, UPDATE_LIVE_STATE)(U, MIN); + TERF(USE_U_MAX, UPDATE_LIVE_STATE)(U, MAX); + TERF(USE_V_MIN, UPDATE_LIVE_STATE)(V, MIN); + TERF(USE_V_MAX, UPDATE_LIVE_STATE)(V, MAX); + TERF(USE_W_MIN, UPDATE_LIVE_STATE)(W, MIN); + TERF(USE_W_MAX, UPDATE_LIVE_STATE)(W, MAX); #if ENDSTOP_NOISE_THRESHOLD @@ -1225,192 +1087,71 @@ void Endstops::update() { uint16_t live_state_local = 0; #define ES_GET_STATE(S) if (READ_ENDSTOP(S##_PIN)) SBI(live_state_local, S) - - #if USE_X_MIN - ES_GET_STATE(X_MIN); - #endif - #if USE_X_MAX - ES_GET_STATE(X_MAX); - #endif - #if USE_Y_MIN - ES_GET_STATE(Y_MIN); - #endif - #if USE_Y_MAX - ES_GET_STATE(Y_MAX); - #endif - #if USE_Z_MIN - ES_GET_STATE(Z_MIN); - #endif - #if USE_Z_MAX - ES_GET_STATE(Z_MAX); - #endif - #if USE_Z_MIN_PROBE - ES_GET_STATE(Z_MIN_PROBE); - #endif - #if USE_CALIBRATION - ES_GET_STATE(CALIBRATION); - #endif - #if USE_X2_MIN - ES_GET_STATE(X2_MIN); - #endif - #if USE_X2_MAX - ES_GET_STATE(X2_MAX); - #endif - #if USE_Y2_MIN - ES_GET_STATE(Y2_MIN); - #endif - #if USE_Y2_MAX - ES_GET_STATE(Y2_MAX); - #endif - #if USE_Z2_MIN - ES_GET_STATE(Z2_MIN); - #endif - #if USE_Z2_MAX - ES_GET_STATE(Z2_MAX); - #endif - #if USE_Z3_MIN - ES_GET_STATE(Z3_MIN); - #endif - #if USE_Z3_MAX - ES_GET_STATE(Z3_MAX); - #endif - #if USE_Z4_MIN - ES_GET_STATE(Z4_MIN); - #endif - #if USE_Z4_MAX - ES_GET_STATE(Z4_MAX); - #endif - #if USE_I_MAX - ES_GET_STATE(I_MAX); - #endif - #if USE_I_MIN - ES_GET_STATE(I_MIN); - #endif - #if USE_J_MAX - ES_GET_STATE(J_MAX); - #endif - #if USE_J_MIN - ES_GET_STATE(J_MIN); - #endif - #if USE_K_MAX - ES_GET_STATE(K_MAX); - #endif - #if USE_K_MIN - ES_GET_STATE(K_MIN); - #endif - #if USE_U_MAX - ES_GET_STATE(U_MAX); - #endif - #if USE_U_MIN - ES_GET_STATE(U_MIN); - #endif - #if USE_V_MAX - ES_GET_STATE(V_MAX); - #endif - #if USE_V_MIN - ES_GET_STATE(V_MIN); - #endif - #if USE_W_MAX - ES_GET_STATE(W_MAX); - #endif - #if USE_W_MIN - ES_GET_STATE(W_MIN); - #endif + TERF(USE_X_MIN, ES_GET_STATE)(X_MIN); + TERF(USE_X_MAX, ES_GET_STATE)(X_MAX); + TERF(USE_Y_MIN, ES_GET_STATE)(Y_MIN); + TERF(USE_Y_MAX, ES_GET_STATE)(Y_MAX); + TERF(USE_Z_MIN, ES_GET_STATE)(Z_MIN); + TERF(USE_Z_MAX, ES_GET_STATE)(Z_MAX); + TERF(USE_Z_MIN_PROBE, ES_GET_STATE)(Z_MIN_PROBE); + TERF(USE_CALIBRATION, ES_GET_STATE)(CALIBRATION); + TERF(USE_X2_MIN, ES_GET_STATE)(X2_MIN); + TERF(USE_X2_MAX, ES_GET_STATE)(X2_MAX); + TERF(USE_Y2_MIN, ES_GET_STATE)(Y2_MIN); + TERF(USE_Y2_MAX, ES_GET_STATE)(Y2_MAX); + TERF(USE_Z2_MIN, ES_GET_STATE)(Z2_MIN); + TERF(USE_Z2_MAX, ES_GET_STATE)(Z2_MAX); + TERF(USE_Z3_MIN, ES_GET_STATE)(Z3_MIN); + TERF(USE_Z3_MAX, ES_GET_STATE)(Z3_MAX); + TERF(USE_Z4_MIN, ES_GET_STATE)(Z4_MIN); + TERF(USE_Z4_MAX, ES_GET_STATE)(Z4_MAX); + TERF(USE_I_MAX, ES_GET_STATE)(I_MAX); + TERF(USE_I_MIN, ES_GET_STATE)(I_MIN); + TERF(USE_J_MAX, ES_GET_STATE)(J_MAX); + TERF(USE_J_MIN, ES_GET_STATE)(J_MIN); + TERF(USE_K_MAX, ES_GET_STATE)(K_MAX); + TERF(USE_K_MIN, ES_GET_STATE)(K_MIN); + TERF(USE_U_MAX, ES_GET_STATE)(U_MAX); + TERF(USE_U_MIN, ES_GET_STATE)(U_MIN); + TERF(USE_V_MAX, ES_GET_STATE)(V_MAX); + TERF(USE_V_MIN, ES_GET_STATE)(V_MIN); + TERF(USE_W_MAX, ES_GET_STATE)(W_MAX); + TERF(USE_W_MIN, ES_GET_STATE)(W_MIN); const uint16_t endstop_change = live_state_local ^ old_live_state_local; #define ES_REPORT_CHANGE(S) if (TEST(endstop_change, S)) SERIAL_ECHOPGM(" " STRINGIFY(S) ":", TEST(live_state_local, S)) if (endstop_change) { - #if USE_X_MIN - ES_REPORT_CHANGE(X_MIN); - #endif - #if USE_X_MAX - ES_REPORT_CHANGE(X_MAX); - #endif - #if USE_Y_MIN - ES_REPORT_CHANGE(Y_MIN); - #endif - #if USE_Y_MAX - ES_REPORT_CHANGE(Y_MAX); - #endif - #if USE_Z_MIN - ES_REPORT_CHANGE(Z_MIN); - #endif - #if USE_Z_MAX - ES_REPORT_CHANGE(Z_MAX); - #endif - #if USE_Z_MIN_PROBE - ES_REPORT_CHANGE(Z_MIN_PROBE); - #endif - #if USE_CALIBRATION - ES_REPORT_CHANGE(CALIBRATION); - #endif - #if USE_X2_MIN - ES_REPORT_CHANGE(X2_MIN); - #endif - #if USE_X2_MAX - ES_REPORT_CHANGE(X2_MAX); - #endif - #if USE_Y2_MIN - ES_REPORT_CHANGE(Y2_MIN); - #endif - #if USE_Y2_MAX - ES_REPORT_CHANGE(Y2_MAX); - #endif - #if USE_Z2_MIN - ES_REPORT_CHANGE(Z2_MIN); - #endif - #if USE_Z2_MAX - ES_REPORT_CHANGE(Z2_MAX); - #endif - #if USE_Z3_MIN - ES_REPORT_CHANGE(Z3_MIN); - #endif - #if USE_Z3_MAX - ES_REPORT_CHANGE(Z3_MAX); - #endif - #if USE_Z4_MIN - ES_REPORT_CHANGE(Z4_MIN); - #endif - #if USE_Z4_MAX - ES_REPORT_CHANGE(Z4_MAX); - #endif - #if USE_I_MIN - ES_REPORT_CHANGE(I_MIN); - #endif - #if USE_I_MAX - ES_REPORT_CHANGE(I_MAX); - #endif - #if USE_J_MIN - ES_REPORT_CHANGE(J_MIN); - #endif - #if USE_J_MAX - ES_REPORT_CHANGE(J_MAX); - #endif - #if USE_K_MIN - ES_REPORT_CHANGE(K_MIN); - #endif - #if USE_K_MAX - ES_REPORT_CHANGE(K_MAX); - #endif - #if USE_U_MIN - ES_REPORT_CHANGE(U_MIN); - #endif - #if USE_U_MAX - ES_REPORT_CHANGE(U_MAX); - #endif - #if USE_V_MIN - ES_REPORT_CHANGE(V_MIN); - #endif - #if USE_V_MAX - ES_REPORT_CHANGE(V_MAX); - #endif - #if USE_W_MIN - ES_REPORT_CHANGE(W_MIN); - #endif - #if USE_W_MAX - ES_REPORT_CHANGE(W_MAX); - #endif + TERF(USE_X_MIN, ES_REPORT_CHANGE)(X_MIN); + TERF(USE_X_MAX, ES_REPORT_CHANGE)(X_MAX); + TERF(USE_Y_MIN, ES_REPORT_CHANGE)(Y_MIN); + TERF(USE_Y_MAX, ES_REPORT_CHANGE)(Y_MAX); + TERF(USE_Z_MIN, ES_REPORT_CHANGE)(Z_MIN); + TERF(USE_Z_MAX, ES_REPORT_CHANGE)(Z_MAX); + TERF(USE_Z_MIN_PROBE, ES_REPORT_CHANGE)(Z_MIN_PROBE); + TERF(USE_CALIBRATION, ES_REPORT_CHANGE)(CALIBRATION); + TERF(USE_X2_MIN, ES_REPORT_CHANGE)(X2_MIN); + TERF(USE_X2_MAX, ES_REPORT_CHANGE)(X2_MAX); + TERF(USE_Y2_MIN, ES_REPORT_CHANGE)(Y2_MIN); + TERF(USE_Y2_MAX, ES_REPORT_CHANGE)(Y2_MAX); + TERF(USE_Z2_MIN, ES_REPORT_CHANGE)(Z2_MIN); + TERF(USE_Z2_MAX, ES_REPORT_CHANGE)(Z2_MAX); + TERF(USE_Z3_MIN, ES_REPORT_CHANGE)(Z3_MIN); + TERF(USE_Z3_MAX, ES_REPORT_CHANGE)(Z3_MAX); + TERF(USE_Z4_MIN, ES_REPORT_CHANGE)(Z4_MIN); + TERF(USE_Z4_MAX, ES_REPORT_CHANGE)(Z4_MAX); + TERF(USE_I_MIN, ES_REPORT_CHANGE)(I_MIN); + TERF(USE_I_MAX, ES_REPORT_CHANGE)(I_MAX); + TERF(USE_J_MIN, ES_REPORT_CHANGE)(J_MIN); + TERF(USE_J_MAX, ES_REPORT_CHANGE)(J_MAX); + TERF(USE_K_MIN, ES_REPORT_CHANGE)(K_MIN); + TERF(USE_K_MAX, ES_REPORT_CHANGE)(K_MAX); + TERF(USE_U_MIN, ES_REPORT_CHANGE)(U_MIN); + TERF(USE_U_MAX, ES_REPORT_CHANGE)(U_MAX); + TERF(USE_V_MIN, ES_REPORT_CHANGE)(V_MIN); + TERF(USE_V_MAX, ES_REPORT_CHANGE)(V_MAX); + TERF(USE_W_MIN, ES_REPORT_CHANGE)(W_MIN); + TERF(USE_W_MAX, ES_REPORT_CHANGE)(W_MAX); SERIAL_ECHOLNPGM("\n"); hal.set_pwm_duty(pin_t(LED_PIN), local_LED_status); diff --git a/Marlin/src/module/stepper/control.cpp b/Marlin/src/module/stepper/control.cpp index ec7ec878c4..6aaec687c8 100644 --- a/Marlin/src/module/stepper/control.cpp +++ b/Marlin/src/module/stepper/control.cpp @@ -96,12 +96,8 @@ #if ANY_PIN(MOTOR_CURRENT_PWM_XY, MOTOR_CURRENT_PWM_X, MOTOR_CURRENT_PWM_Y, MOTOR_CURRENT_PWM_I, MOTOR_CURRENT_PWM_J, MOTOR_CURRENT_PWM_K, MOTOR_CURRENT_PWM_U, MOTOR_CURRENT_PWM_V, MOTOR_CURRENT_PWM_W) case 0: #endif - #if HAS_MOTOR_CURRENT_PWM_Z - case 1: - #endif - #if HAS_MOTOR_CURRENT_PWM_E - case 2: - #endif + TERN_(HAS_MOTOR_CURRENT_PWM_Z, case 1:) + TERN_(HAS_MOTOR_CURRENT_PWM_E, case 2:) set_digipot_current(i, motor_current_setting[i]); default: break; } @@ -385,38 +381,22 @@ if (ms1 >= 0) switch (driver) { #if HAS_X_MS_PINS || HAS_X2_MS_PINS case X_AXIS: - #if HAS_X_MS_PINS - WRITE(X_MS1_PIN, ms1); - #endif - #if HAS_X2_MS_PINS - WRITE(X2_MS1_PIN, ms1); - #endif + TERF(HAS_X_MS_PINS, WRITE)(X_MS1_PIN, ms1); + TERF(HAS_X2_MS_PINS, WRITE)(X2_MS1_PIN, ms1); break; #endif #if HAS_Y_MS_PINS || HAS_Y2_MS_PINS case Y_AXIS: - #if HAS_Y_MS_PINS - WRITE(Y_MS1_PIN, ms1); - #endif - #if HAS_Y2_MS_PINS - WRITE(Y2_MS1_PIN, ms1); - #endif + TERF(HAS_Y_MS_PINS, WRITE)(Y_MS1_PIN, ms1); + TERF(HAS_Y2_MS_PINS, WRITE)(Y2_MS1_PIN, ms1); break; #endif #if HAS_SOME_Z_MS_PINS case Z_AXIS: - #if HAS_Z_MS_PINS - WRITE(Z_MS1_PIN, ms1); - #endif - #if HAS_Z2_MS_PINS - WRITE(Z2_MS1_PIN, ms1); - #endif - #if HAS_Z3_MS_PINS - WRITE(Z3_MS1_PIN, ms1); - #endif - #if HAS_Z4_MS_PINS - WRITE(Z4_MS1_PIN, ms1); - #endif + TERF(HAS_Z_MS_PINS, WRITE)(Z_MS1_PIN, ms1); + TERF(HAS_Z2_MS_PINS, WRITE)(Z2_MS1_PIN, ms1); + TERF(HAS_Z3_MS_PINS, WRITE)(Z3_MS1_PIN, ms1); + TERF(HAS_Z4_MS_PINS, WRITE)(Z4_MS1_PIN, ms1); break; #endif #if HAS_I_MS_PINS @@ -465,38 +445,22 @@ if (ms2 >= 0) switch (driver) { #if HAS_X_MS_PINS || HAS_X2_MS_PINS case X_AXIS: - #if HAS_X_MS_PINS - WRITE(X_MS2_PIN, ms2); - #endif - #if HAS_X2_MS_PINS - WRITE(X2_MS2_PIN, ms2); - #endif + TERF(HAS_X_MS_PINS, WRITE)(X_MS2_PIN, ms2); + TERF(HAS_X2_MS_PINS, WRITE)(X2_MS2_PIN, ms2); break; #endif #if HAS_Y_MS_PINS || HAS_Y2_MS_PINS case Y_AXIS: - #if HAS_Y_MS_PINS - WRITE(Y_MS2_PIN, ms2); - #endif - #if HAS_Y2_MS_PINS - WRITE(Y2_MS2_PIN, ms2); - #endif + TERF(HAS_Y_MS_PINS, WRITE)(Y_MS2_PIN, ms2); + TERF(HAS_Y2_MS_PINS, WRITE)(Y2_MS2_PIN, ms2); break; #endif #if HAS_SOME_Z_MS_PINS case Z_AXIS: - #if HAS_Z_MS_PINS - WRITE(Z_MS2_PIN, ms2); - #endif - #if HAS_Z2_MS_PINS - WRITE(Z2_MS2_PIN, ms2); - #endif - #if HAS_Z3_MS_PINS - WRITE(Z3_MS2_PIN, ms2); - #endif - #if HAS_Z4_MS_PINS - WRITE(Z4_MS2_PIN, ms2); - #endif + TERF(HAS_Z_MS_PINS, WRITE)(Z_MS2_PIN, ms2); + TERF(HAS_Z2_MS_PINS, WRITE)(Z2_MS2_PIN, ms2); + TERF(HAS_Z3_MS_PINS, WRITE)(Z3_MS2_PIN, ms2); + TERF(HAS_Z4_MS_PINS, WRITE)(Z4_MS2_PIN, ms2); break; #endif #if HAS_I_MS_PINS diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index 418f8c498a..96ea110963 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -4143,9 +4143,9 @@ void Temperature::isr() { REPEAT(HOTENDS, _PWM_LOW_E); #endif - TERF(HAS_HEATED_BED, _PWM_LOW)(BED, soft_pwm_bed); + TERF(HAS_HEATED_BED, _PWM_LOW)(BED, soft_pwm_bed); TERF(HAS_HEATED_CHAMBER, _PWM_LOW)(CHAMBER, soft_pwm_chamber); - TERF(HAS_COOLER, _PWM_LOW)(COOLER, soft_pwm_cooler); + TERF(HAS_COOLER, _PWM_LOW)(COOLER, soft_pwm_cooler); #if ENABLED(FAN_SOFT_PWM) #if HAS_FAN0 @@ -4208,9 +4208,9 @@ void Temperature::isr() { REPEAT(HOTENDS, _SLOW_PWM_E); #endif - TERF(HAS_HEATED_BED, _SLOW_PWM)(BED, soft_pwm_bed, temp_bed); + TERF(HAS_HEATED_BED, _SLOW_PWM)(BED, soft_pwm_bed, temp_bed); TERF(HAS_HEATED_CHAMBER, _SLOW_PWM)(CHAMBER, soft_pwm_chamber, temp_chamber); - TERF(HAS_COOLER, _SLOW_PWM)(COOLER, soft_pwm_cooler, temp_cooler); + TERF(HAS_COOLER, _SLOW_PWM)(COOLER, soft_pwm_cooler, temp_cooler); } // slow_pwm_count == 0 @@ -4219,9 +4219,9 @@ void Temperature::isr() { REPEAT(HOTENDS, _PWM_OFF_E); #endif - TERF(HAS_HEATED_BED, _PWM_OFF)(BED, soft_pwm_bed); + TERF(HAS_HEATED_BED, _PWM_OFF)(BED, soft_pwm_bed); TERF(HAS_HEATED_CHAMBER, _PWM_OFF)(CHAMBER, soft_pwm_chamber); - TERF(HAS_COOLER, _PWM_OFF)(COOLER, soft_pwm_cooler, temp_cooler); + TERF(HAS_COOLER, _PWM_OFF)(COOLER, soft_pwm_cooler, temp_cooler); #if ENABLED(FAN_SOFT_PWM) if (pwm_count_tmp >= 127) {