Implement missing Pause feature for Anycubic TFT

This commit is contained in:
Knutwurst
2021-11-11 09:13:51 +01:00
parent 62e2473450
commit d7cd75dba6

View File

@@ -88,6 +88,10 @@ fil_change_settings_t fc_settings[EXTRUDERS];
#include "../sd/cardreader.h"
#endif
#ifdef ANYCUBIC_TOUCHSCREEN
#include "../lcd/anycubic_touchscreen.h" //KNUTWURST
#endif
#if ENABLED(EMERGENCY_PARSER)
#define _PMSG(L) L##_M108
#else
@@ -528,6 +532,16 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep
ui.pause_show_message(PAUSE_MESSAGE_HEAT);
SERIAL_ECHO_MSG(_PMSG(STR_FILAMENT_CHANGE_HEAT));
#ifdef ANYCUBIC_TOUCHSCREEN // KNUTWURST
if (AnycubicTouchscreen.ai3m_pause_state < 3) {
AnycubicTouchscreen.ai3m_pause_state += 2;
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOPAIR(" DEBUG: NTO - AI3M Pause State set to: ", AnycubicTouchscreen.ai3m_pause_state);
SERIAL_EOL();
#endif
}
#endif
TERN_(HOST_PROMPT_SUPPORT, host_prompt_do(PROMPT_USER_CONTINUE, GET_TEXT(MSG_HEATER_TIMEOUT), GET_TEXT(MSG_REHEAT)));
TERN_(EXTENSIBLE_UI, ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_HEATER_TIMEOUT)));
@@ -561,6 +575,17 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep
IF_DISABLED(PAUSE_REHEAT_FAST_RESUME, wait_for_user = true);
nozzle_timed_out = false;
#ifdef ANYCUBIC_TOUCHSCREEN
if (AnycubicTouchscreen.ai3m_pause_state > 3) {
AnycubicTouchscreen.ai3m_pause_state -= 2;
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOPAIR(" DEBUG: NTO - AI3M Pause State set to: ", AnycubicTouchscreen.ai3m_pause_state);
SERIAL_EOL();
#endif
}
#endif
first_impatient_beep(max_beep_count);
}
idle_no_sleep();
@@ -607,6 +632,15 @@ void resume_print(const_float_t slow_load_length/*=0*/, const_float_t fast_load_
// Re-enable the heaters if they timed out
bool nozzle_timed_out = false;
#ifdef ANYCUBIC_TOUCHSCREEN // KNUTWURST
if (AnycubicTouchscreen.ai3m_pause_state > 3) {
AnycubicTouchscreen.ai3m_pause_state -= 2;
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOPAIR(" DEBUG: NTO - AI3M Pause State set to: ", AnycubicTouchscreen.ai3m_pause_state);
SERIAL_EOL();
#endif
}
#endif
HOTEND_LOOP() {
nozzle_timed_out |= thermalManager.heater_idle[e].timed_out;
thermalManager.reset_hotend_idle_timer(e);