Fix G29 no_action with A and Q

This commit is contained in:
Scott Lahteine 2018-01-23 13:05:15 -06:00
parent b2dcb75c6c
commit df5c06ab7b

View File

@ -4362,32 +4362,40 @@ void home_all_axes() { gcode_G28(true); }
*/ */
inline void gcode_G29() { inline void gcode_G29() {
#if ENABLED(DEBUG_LEVELING_FEATURE) || ENABLED(PROBE_MANUALLY)
const bool seenQ = parser.seen('Q');
#else
constexpr bool seenQ = false;
#endif
// G29 Q is also available if debugging // G29 Q is also available if debugging
#if ENABLED(DEBUG_LEVELING_FEATURE) #if ENABLED(DEBUG_LEVELING_FEATURE)
const bool query = parser.seen('Q');
const uint8_t old_debug_flags = marlin_debug_flags; const uint8_t old_debug_flags = marlin_debug_flags;
if (query) marlin_debug_flags |= DEBUG_LEVELING; if (seenQ) marlin_debug_flags |= DEBUG_LEVELING;
if (DEBUGGING(LEVELING)) { if (DEBUGGING(LEVELING)) {
DEBUG_POS(">>> G29", current_position); DEBUG_POS(">>> G29", current_position);
log_machine_info(); log_machine_info();
} }
marlin_debug_flags = old_debug_flags; marlin_debug_flags = old_debug_flags;
#if DISABLED(PROBE_MANUALLY) #if DISABLED(PROBE_MANUALLY)
if (query) return; if (seenQ) return;
#endif #endif
#endif #endif
#if ENABLED(PROBE_MANUALLY) #if ENABLED(PROBE_MANUALLY)
const bool seenA = parser.seen('A'), seenQ = parser.seen('Q'), no_action = seenA || seenQ; const bool seenA = parser.seen('A');
#else
constexpr bool seenA = false;
#endif #endif
#if ENABLED(DEBUG_LEVELING_FEATURE) && DISABLED(PROBE_MANUALLY) const bool no_action = seenA || seenQ,
const bool faux = parser.boolval('C'); faux =
#elif ENABLED(PROBE_MANUALLY) #if ENABLED(DEBUG_LEVELING_FEATURE) && DISABLED(PROBE_MANUALLY)
const bool faux = no_action; parser.boolval('C')
#else #else
bool constexpr faux = false; no_action
#endif #endif
;
// Don't allow auto-leveling without homing first // Don't allow auto-leveling without homing first
if (axis_unhomed_error()) return; if (axis_unhomed_error()) return;
@ -4618,7 +4626,7 @@ void home_all_axes() { gcode_G28(true); }
// Disable auto bed leveling during G29. // Disable auto bed leveling during G29.
// Be formal so G29 can be done successively without G28. // Be formal so G29 can be done successively without G28.
set_bed_leveling_enabled(false); if (!no_action) set_bed_leveling_enabled(false);
#if HAS_BED_PROBE #if HAS_BED_PROBE
// Deploy the probe. Probe will raise if needed. // Deploy the probe. Probe will raise if needed.