|
|
@@ -499,21 +499,20 @@ inline void AnycubicTouchscreenClass::StopPrint()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
card.abortFilePrintSoon();
|
|
|
|
card.abortFilePrintSoon();
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef ANYCUBIC_TFT_DEBUG
|
|
|
|
|
|
|
|
SERIAL_ECHOLNPGM("DEBUG: Stopped and cleared");
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print_job_timer.stop();
|
|
|
|
print_job_timer.stop();
|
|
|
|
thermalManager.disable_all_heaters();
|
|
|
|
thermalManager.disable_all_heaters();
|
|
|
|
thermalManager.zero_fan_speeds();
|
|
|
|
thermalManager.zero_fan_speeds();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef ANYCUBIC_TFT_DEBUG
|
|
|
|
|
|
|
|
SERIAL_ECHOLNPGM("DEBUG: Stopped and cleared");
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
ai3m_pause_state = 0;
|
|
|
|
ai3m_pause_state = 0;
|
|
|
|
#ifdef ANYCUBIC_TFT_DEBUG
|
|
|
|
#ifdef ANYCUBIC_TFT_DEBUG
|
|
|
|
SERIAL_ECHOPGM("DEBUG: AI3M Pause State: ", ai3m_pause_state);
|
|
|
|
SERIAL_ECHOPGM("DEBUG: AI3M Pause State: ", ai3m_pause_state);
|
|
|
|
SERIAL_EOL();
|
|
|
|
SERIAL_EOL();
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
IsParked = true;
|
|
|
|
|
|
|
|
TFTstate = ANYCUBIC_TFT_STATE_SDSTOP_REQ;
|
|
|
|
TFTstate = ANYCUBIC_TFT_STATE_SDSTOP_REQ;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@@ -588,21 +587,10 @@ void AnycubicTouchscreenClass::ReheatNozzle() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void AnycubicTouchscreenClass::ParkAfterStop(){
|
|
|
|
void AnycubicTouchscreenClass::ParkAfterStop(){
|
|
|
|
// only park the nozzle if homing was done before
|
|
|
|
|
|
|
|
if (!homing_needed_error()) {
|
|
|
|
|
|
|
|
// raize nozzle by 25mm respecting Z_MAX_POS
|
|
|
|
|
|
|
|
do_blocking_move_to_z(_MIN(current_position[Z_AXIS] + 25, Z_MAX_POS), 5);
|
|
|
|
|
|
|
|
#ifdef ANYCUBIC_TFT_DEBUG
|
|
|
|
|
|
|
|
SERIAL_ECHOLNPGM("DEBUG: SDSTOP: Park Z");
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// move bed and hotend to park position
|
|
|
|
|
|
|
|
do_blocking_move_to_xy((X_MIN_POS + 10), (Y_MAX_POS - 10), 100);
|
|
|
|
|
|
|
|
#ifdef ANYCUBIC_TFT_DEBUG
|
|
|
|
|
|
|
|
SERIAL_ECHOLNPGM("DEBUG: SDSTOP: Park XY");
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
queue.enqueue_now_P(PSTR("M84")); // disable stepper motors
|
|
|
|
queue.enqueue_now_P(PSTR("M84")); // disable stepper motors
|
|
|
|
queue.enqueue_now_P(PSTR("M27")); // force report of SD status
|
|
|
|
queue.enqueue_now_P(PSTR("M27")); // force report of SD status
|
|
|
|
|
|
|
|
|
|
|
|
ai3m_pause_state = 0;
|
|
|
|
ai3m_pause_state = 0;
|
|
|
|
#ifdef ANYCUBIC_TFT_DEBUG
|
|
|
|
#ifdef ANYCUBIC_TFT_DEBUG
|
|
|
|
SERIAL_ECHOPGM("DEBUG: AI3M Pause State: ", ai3m_pause_state);
|
|
|
|
SERIAL_ECHOPGM("DEBUG: AI3M Pause State: ", ai3m_pause_state);
|
|
|
@@ -741,7 +729,7 @@ void AnycubicTouchscreenClass::HandleSpecialMenu() {
|
|
|
|
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTOUCH_L)) != NULL)
|
|
|
|
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTOUCH_L)) != NULL)
|
|
|
|
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTOUCH_S)) != NULL)) {
|
|
|
|
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTOUCH_S)) != NULL)) {
|
|
|
|
SERIAL_ECHOLNPGM("Special Menu: BLTouch Leveling");
|
|
|
|
SERIAL_ECHOLNPGM("Special Menu: BLTouch Leveling");
|
|
|
|
queue.inject_P(PSTR("G28\nG29\nM500\nG90\nM300 S440 P200\nM300 S660 P250\nM300 S880 P300\nG1 Z30 F4000\nG1 X0 F4000\nG91\nM84"));
|
|
|
|
queue.inject_P(PSTR("G28\nG29\nM500\nG90\nM300 S440 P200\nM300 S660 P250\nM300 S880 P300\nG1 Z30 F4000\nG1 X0 F4000\nG91\nM84\nM420 S1"));
|
|
|
|
buzzer.tone(105, 1108);
|
|
|
|
buzzer.tone(105, 1108);
|
|
|
|
buzzer.tone(210, 1661);
|
|
|
|
buzzer.tone(210, 1661);
|
|
|
|
}
|
|
|
|
}
|
|
|
@@ -862,7 +850,7 @@ void AnycubicTouchscreenClass::HandleSpecialMenu() {
|
|
|
|
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_MENU_S)) != NULL)) {
|
|
|
|
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_MENU_S)) != NULL)) {
|
|
|
|
SERIAL_ECHOLNPGM("Special Menu: Enter Easy Level Menu");
|
|
|
|
SERIAL_ECHOLNPGM("Special Menu: Enter Easy Level Menu");
|
|
|
|
LevelMenu = true;
|
|
|
|
LevelMenu = true;
|
|
|
|
queue.inject_P(PSTR("G28\nG90\nG1 Z5\nG1 X15 Y15 F4000\nG1 Z0"));
|
|
|
|
queue.inject_P(PSTR("G28\nM420 S0\nG90\nG1 Z5\nG1 X15 Y15 F4000\nG1 Z0"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_P1_L)) != NULL)
|
|
|
|
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_P1_L)) != NULL)
|
|
|
|
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_P1_S)) != NULL)) {
|
|
|
|
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_P1_S)) != NULL)) {
|
|
|
@@ -930,7 +918,7 @@ void AnycubicTouchscreenClass::HandleSpecialMenu() {
|
|
|
|
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_EXIT_S)) != NULL)) {
|
|
|
|
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_EXIT_S)) != NULL)) {
|
|
|
|
SERIAL_ECHOLNPGM("Special Menu: Exit Easy Level Menu");
|
|
|
|
SERIAL_ECHOLNPGM("Special Menu: Exit Easy Level Menu");
|
|
|
|
LevelMenu = false;
|
|
|
|
LevelMenu = false;
|
|
|
|
queue.inject_P(PSTR("G90\nG1 Z10\nG1 X15 Y15 F4000"));
|
|
|
|
queue.inject_P(PSTR("G90\nG1 Z10\nG1 X15 Y15 F4000\nM420 S1"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
@@ -2286,6 +2274,9 @@ void AnycubicTouchscreenClass::GetCommandFromTFT() {
|
|
|
|
WRITE(HEATER_0_PIN, 0);
|
|
|
|
WRITE(HEATER_0_PIN, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(KNUTWURST_MEGA_P)
|
|
|
|
case 51:
|
|
|
|
case 51:
|
|
|
|
if (CodeSeen('H')) {
|
|
|
|
if (CodeSeen('H')) {
|
|
|
|
queue.enqueue_now_P(PSTR("G1 Z5 F500"));
|
|
|
|
queue.enqueue_now_P(PSTR("G1 Z5 F500"));
|
|
|
@@ -2310,11 +2301,11 @@ void AnycubicTouchscreenClass::GetCommandFromTFT() {
|
|
|
|
else if (CodeSeen('L')) {
|
|
|
|
else if (CodeSeen('L')) {
|
|
|
|
queue.enqueue_now_P(PSTR("G1 X100 Y100 Z50 F5000"));
|
|
|
|
queue.enqueue_now_P(PSTR("G1 X100 Y100 Z50 F5000"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
default:
|
|
|
|
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
TFTbufindw = (TFTbufindw + 1)%TFTBUFSIZE;
|
|
|
|
TFTbufindw = (TFTbufindw + 1)%TFTBUFSIZE;
|
|
|
|