Bläddra i källkod

crash detection: turn off nozzle when waiting for user

PavelSindler 6 år sedan
förälder
incheckning
2f5bb80e98
2 ändrade filer med 19 tillägg och 12 borttagningar
  1. 1 0
      .gitignore
  2. 18 12
      Firmware/Marlin_main.cpp

+ 1 - 0
.gitignore

@@ -9,3 +9,4 @@ Firmware/Doc
 /Firmware/Firmware.sln
 /Firmware/Firmware.vcxproj
 /Firmware/Firmware.vcxproj.filters
+/Firmware/Firmware - Shortcut.lnk

+ 18 - 12
Firmware/Marlin_main.cpp

@@ -686,7 +686,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();
@@ -727,18 +726,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"));
+		}
 	}
 }