diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 9ed2f88c..795a7c56 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -693,7 +693,6 @@ void crashdet_detected(uint8_t mask) st_synchronize(); static uint8_t crashDet_counter = 0; bool automatic_recovery_after_crash = true; - bool yesno; if (crashDet_counter++ == 0) { crashDetTimer.start(); @@ -734,18 +733,25 @@ void crashdet_detected(uint8_t mask) gcode_G28(true, true, false, false); //home X and Y st_synchronize(); - if(automatic_recovery_after_crash) - yesno = true; - else - yesno = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Crash detected. Resume print?"), false); - lcd_update_enable(true); - if (yesno) - { + if (automatic_recovery_after_crash) { enquecommand_P(PSTR("CRASH_RECOVER")); - } - else - { - enquecommand_P(PSTR("CRASH_CANCEL")); + }else{ + HotendTempBckp = degTargetHotend(active_extruder); + setTargetHotend(0, active_extruder); + bool yesno = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Crash detected. Resume print?"), false); + lcd_update_enable(true); + if (yesno) + { + char cmd1[10]; + strcpy(cmd1, "M109 S"); + strcat(cmd1, ftostr3(HotendTempBckp)); + enquecommand(cmd1); + enquecommand_P(PSTR("CRASH_RECOVER")); + } + else + { + enquecommand_P(PSTR("CRASH_CANCEL")); + } } }