stop print during auto home and mesh bed leveling improved

This commit is contained in:
PavelSindler 2017-05-19 13:52:13 +02:00
parent 67c3e75a20
commit e5d10074cf
2 changed files with 29 additions and 13 deletions

View File

@ -2938,20 +2938,33 @@ void process_commands()
// We don't know where we are! HOME!
// Push the commands to the front of the message queue in the reverse order!
// There shall be always enough space reserved for these commands.
repeatcommand_front(); // repeat G80 with all its parameters
enquecommand_front_P((PSTR("G28 W0")));
if (lcd_commands_type != LCD_COMMAND_STOP_PRINT) {
repeatcommand_front(); // repeat G80 with all its parameters
enquecommand_front_P((PSTR("G28 W0")));
}
else {
mesh_bed_leveling_flag = false;
}
break;
}
if (run == false && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) {
temp_compensation_start();
run = true;
repeatcommand_front(); // repeat G80 with all its parameters
enquecommand_front_P((PSTR("G28 W0")));
if (lcd_commands_type != LCD_COMMAND_STOP_PRINT) {
temp_compensation_start();
run = true;
repeatcommand_front(); // repeat G80 with all its parameters
enquecommand_front_P((PSTR("G28 W0")));
}
else {
mesh_bed_leveling_flag = false;
}
break;
}
run = false;
if (lcd_commands_type == LCD_COMMAND_STOP_PRINT) {
mesh_bed_leveling_flag = false;
break;
}
// Save custom message state, set a new custom message state to display: Calibrating point 9.
bool custom_message_old = custom_message;
unsigned int custom_message_type_old = custom_message_type;

View File

@ -661,7 +661,7 @@ void lcd_commands()
cancel_heatup = true;
setTargetBed(0);
#ifndef SNMM
setTargetHotend(0, 0); //to heating when changing filament for multicolor
setTargetHotend(0, 0); //heating when changing filament for multicolor
setTargetHotend(0, 1);
setTargetHotend(0, 2);
#endif
@ -3743,18 +3743,21 @@ void lcd_sdcard_stop()
}
if ((int32_t)encoderPosition == 2)
{
cancel_heatup = true;
cancel_heatup = true;
#ifdef MESH_BED_LEVELING
mbl.active = false;
#endif
// Stop the stoppers, update the position from the stoppers.
planner_abort_hard();
// Because the planner_abort_hard() initialized current_position[Z] from the stepper,
// Z baystep is no more applied. Reset it.
babystep_reset();
if (mesh_bed_leveling_flag == false && homing_flag == false) {
planner_abort_hard();
// Because the planner_abort_hard() initialized current_position[Z] from the stepper,
// Z baystep is no more applied. Reset it.
babystep_reset();
}
// Clean the input command queue.
cmdqueue_reset();
lcd_setstatuspgm(MSG_PRINT_ABORTED);
lcd_update(2);
card.sdprinting = false;
card.closefile();