Use MMU cutter only as last resort. Cut filament only before last load retry.

This commit is contained in:
Marek Bel 2019-09-10 18:36:14 +02:00
parent 5a1005e143
commit bb1fb49894
1 changed files with 11 additions and 7 deletions

View File

@ -1577,19 +1577,23 @@ void mmu_continue_loading(bool blocking)
increment_load_fail();
// no break
case Ls::Retry:
#ifdef MMU_HAS_CUTTER
if (1 == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED))
++retry; // overflow not handled, as it is not dangerous.
if (retry >= max_retry)
{
mmu_command(MmuCmd::K0 + tmp_extruder);
manage_response(true, true, MMU_UNLOAD_MOVE);
}
state = Ls::Unload;
#ifdef MMU_HAS_CUTTER
if (1 == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED))
{
mmu_command(MmuCmd::K0 + tmp_extruder);
manage_response(true, true, MMU_UNLOAD_MOVE);
}
#endif //MMU_HAS_CUTTER
}
mmu_command(MmuCmd::T0 + tmp_extruder);
manage_response(true, true, MMU_TCODE_MOVE);
success = load_more();
if (success) success = can_load();
++retry; // overflow not handled, as it is not dangerous.
if (retry >= max_retry) state = Ls::Unload;
break;
case Ls::Unload:
stop_and_save_print_to_ram(0, 0);