From 49627069a50b5e6c2a80f49ccf1497f53e85f8ce Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 26 Jun 2019 03:42:21 -0500 Subject: [PATCH] Shorthand for home-after-deactivate --- Marlin/src/gcode/calibrate/G28.cpp | 14 +++----------- Marlin/src/module/motion.h | 10 ++++++++++ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Marlin/src/gcode/calibrate/G28.cpp b/Marlin/src/gcode/calibrate/G28.cpp index 22b688099..c30a32363 100644 --- a/Marlin/src/gcode/calibrate/G28.cpp +++ b/Marlin/src/gcode/calibrate/G28.cpp @@ -200,17 +200,9 @@ void GcodeSuite::G28(const bool always_home_all) { } #endif - if (parser.boolval('O')) { - if ( - #if ENABLED(HOME_AFTER_DEACTIVATE) - all_axes_known() // homing needed anytime steppers deactivate - #else - all_axes_homed() // homing needed only if never homed - #endif - ) { - if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("> homing not needed, skip\n<<< G28"); - return; - } + if (!homing_needed() && parser.boolval('O')) { + if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("> homing not needed, skip\n<<< G28"); + return; } // Wait for planner moves to finish! diff --git a/Marlin/src/module/motion.h b/Marlin/src/module/motion.h index 2252f4cac..d80309340 100644 --- a/Marlin/src/module/motion.h +++ b/Marlin/src/module/motion.h @@ -42,6 +42,16 @@ FORCE_INLINE bool all_axes_known() { return (axis_known_position & xyz_bits) == FORCE_INLINE void set_all_unhomed() { axis_homed = 0; } FORCE_INLINE void set_all_unknown() { axis_known_position = 0; } +FORCE_INLINE bool homing_needed() { + return !( + #if ENABLED(HOME_AFTER_DEACTIVATE) + all_axes_known() + #else + all_axes_homed() + #endif + ); +} + // Error margin to work around float imprecision constexpr float slop = 0.0001;