Fix tool-change for MIXING_EXTRUDER with < 2 virtual tools (#12417)

Fix #12416

Better handling of `ENABLED(MIXING_EXTRUDER) && !MIXING_VIRTUAL_TOOLS > 1` -  to not fall through to the general case. Fix compiler warnings for `#elif EXTRUDERS < 2`.
This commit is contained in:
AnHardt 2018-11-13 11:56:10 +01:00 committed by Scott Lahteine
parent d631267548
commit 9ad3aed0ef

View File

@ -498,25 +498,28 @@ inline void invalid_extruder_error(const uint8_t e) {
* previous tool out of the way and the new tool into place. * previous tool out of the way and the new tool into place.
*/ */
void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool no_move/*=false*/) { void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool no_move/*=false*/) {
#if ENABLED(MIXING_EXTRUDER) && MIXING_VIRTUAL_TOOLS > 1 #if ENABLED(MIXING_EXTRUDER)
if (tmp_extruder >= MIXING_VIRTUAL_TOOLS) UNUSED(fr_mm_s);
return invalid_extruder_error(tmp_extruder); UNUSED(no_move);
if (tmp_extruder >= MIXING_VIRTUAL_TOOLS)
return invalid_extruder_error(tmp_extruder);
#if MIXING_VIRTUAL_TOOLS > 1
// T0-Tnnn: Switch virtual tool by changing the index to the mix // T0-Tnnn: Switch virtual tool by changing the index to the mix
mixer.T(uint_fast8_t(tmp_extruder)); mixer.T(uint_fast8_t(tmp_extruder));
UNUSED(fr_mm_s); #endif
UNUSED(no_move);
#elif EXTRUDERS < 2 #elif EXTRUDERS < 2
UNUSED(fr_mm_s);
UNUSED(no_move);
if (tmp_extruder) invalid_extruder_error(tmp_extruder); if (tmp_extruder) invalid_extruder_error(tmp_extruder);
return; return;
#else #else
#if DISABLED(MIXING_EXTRUDER) planner.synchronize();
planner.synchronize();
#endif
#if ENABLED(DUAL_X_CARRIAGE) // Only T0 allowed if the Printer is in DXC_DUPLICATION_MODE or DXC_SCALED_DUPLICATION_MODE #if ENABLED(DUAL_X_CARRIAGE) // Only T0 allowed if the Printer is in DXC_DUPLICATION_MODE or DXC_SCALED_DUPLICATION_MODE
if (tmp_extruder != 0 && dxc_is_duplicating()) if (tmp_extruder != 0 && dxc_is_duplicating())