Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
committed by
Scott Lahteine
parent
54416f780d
commit
6cf2cf7bd4
@ -79,6 +79,8 @@
|
||||
|
||||
#if ENABLED(EXTENSIBLE_UI)
|
||||
#include "../lcd/extui/ui_api.h"
|
||||
#elif ENABLED(DWIN_CREALITY_LCD_ENHANCED)
|
||||
#include "../lcd/e3v2/enhanced/dwin.h"
|
||||
#endif
|
||||
|
||||
#define DEBUG_OUT ENABLED(DEBUG_LEVELING_FEATURE)
|
||||
@ -295,7 +297,7 @@ FORCE_INLINE void probe_specific_action(const bool deploy) {
|
||||
|
||||
TERN_(HOST_PROMPT_SUPPORT, host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Stow Probe"), CONTINUE_STR));
|
||||
TERN_(EXTENSIBLE_UI, ExtUI::onUserConfirmRequired_P(PSTR("Stow Probe")));
|
||||
|
||||
TERN_(DWIN_CREALITY_LCD_ENHANCED, DWIN_Popup_Confirm(ICON_BLTouch, PSTR("Stow Probe"), CONTINUE_STR));
|
||||
wait_for_user_response();
|
||||
ui.reset_status();
|
||||
|
||||
|
@ -71,9 +71,9 @@
|
||||
|
||||
#if ENABLED(EXTENSIBLE_UI)
|
||||
#include "../lcd/extui/ui_api.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(DWIN_CREALITY_LCD_JYERSUI)
|
||||
#elif ENABLED(DWIN_CREALITY_LCD_ENHANCED)
|
||||
#include "../lcd/e3v2/enhanced/dwin.h"
|
||||
#elif ENABLED(DWIN_CREALITY_LCD_JYERSUI)
|
||||
#include "../lcd/e3v2/jyersui/dwin.h"
|
||||
#endif
|
||||
|
||||
@ -441,14 +441,15 @@ typedef struct SettingsDataStruct {
|
||||
// EXTENSIBLE_UI
|
||||
//
|
||||
#if ENABLED(EXTENSIBLE_UI)
|
||||
// This is a significant hardware change; don't reserve space when not present
|
||||
uint8_t extui_data[ExtUI::eeprom_data_size];
|
||||
#endif
|
||||
|
||||
//
|
||||
// DWIN_CREALITY_LCD_JYERSUI
|
||||
// Ender-3 V2 DWIN
|
||||
//
|
||||
#if ENABLED(DWIN_CREALITY_LCD_JYERSUI)
|
||||
#if ENABLED(DWIN_CREALITY_LCD_ENHANCED)
|
||||
uint8_t dwin_data[eeprom_data_size];
|
||||
#elif ENABLED(DWIN_CREALITY_LCD_JYERSUI)
|
||||
uint8_t dwin_settings[CrealityDWIN.eeprom_data_size];
|
||||
#endif
|
||||
|
||||
@ -1358,9 +1359,16 @@ void MarlinSettings::postprocess() {
|
||||
#endif
|
||||
|
||||
//
|
||||
// Creality UI Settings
|
||||
// Creality DWIN User Data
|
||||
//
|
||||
#if ENABLED(DWIN_CREALITY_LCD_JYERSUI)
|
||||
#if ENABLED(DWIN_CREALITY_LCD_ENHANCED)
|
||||
{
|
||||
char dwin_data[eeprom_data_size] = { 0 };
|
||||
DWIN_StoreSettings(dwin_data);
|
||||
_FIELD_TEST(dwin_data);
|
||||
EEPROM_WRITE(dwin_data);
|
||||
}
|
||||
#elif ENABLED(DWIN_CREALITY_LCD_JYERSUI)
|
||||
{
|
||||
char dwin_settings[CrealityDWIN.eeprom_data_size] = { 0 };
|
||||
CrealityDWIN.Save_Settings(dwin_settings);
|
||||
@ -1488,6 +1496,8 @@ void MarlinSettings::postprocess() {
|
||||
stored_ver[1] = '\0';
|
||||
}
|
||||
DEBUG_ECHO_MSG("EEPROM version mismatch (EEPROM=", stored_ver, " Marlin=" EEPROM_VERSION ")");
|
||||
TERN_(DWIN_CREALITY_LCD_ENHANCED, ui.set_status(GET_TEXT(MSG_ERR_EEPROM_VERSION)));
|
||||
|
||||
IF_DISABLED(EEPROM_AUTO_INIT, ui.eeprom_alert_version());
|
||||
eeprom_error = true;
|
||||
}
|
||||
@ -2249,9 +2259,16 @@ void MarlinSettings::postprocess() {
|
||||
#endif
|
||||
|
||||
//
|
||||
// Creality UI Settings
|
||||
// Creality DWIN User Data
|
||||
//
|
||||
#if ENABLED(DWIN_CREALITY_LCD_JYERSUI)
|
||||
#if ENABLED(DWIN_CREALITY_LCD_ENHANCED)
|
||||
{
|
||||
const char dwin_data[eeprom_data_size] = { 0 };
|
||||
_FIELD_TEST(dwin_data);
|
||||
EEPROM_READ(dwin_data);
|
||||
if (!validating) DWIN_LoadSettings(dwin_data);
|
||||
}
|
||||
#elif ENABLED(DWIN_CREALITY_LCD_JYERSUI)
|
||||
{
|
||||
const char dwin_settings[CrealityDWIN.eeprom_data_size] = { 0 };
|
||||
_FIELD_TEST(dwin_settings);
|
||||
@ -2340,6 +2357,7 @@ void MarlinSettings::postprocess() {
|
||||
else if (working_crc != stored_crc) {
|
||||
eeprom_error = true;
|
||||
DEBUG_ERROR_MSG("EEPROM CRC mismatch - (stored) ", stored_crc, " != ", working_crc, " (calculated)!");
|
||||
TERN_(DWIN_CREALITY_LCD_ENHANCED, ui.set_status(GET_TEXT(MSG_ERR_EEPROM_CRC)));
|
||||
IF_DISABLED(EEPROM_AUTO_INIT, ui.eeprom_alert_crc());
|
||||
}
|
||||
else if (!validating) {
|
||||
@ -2656,7 +2674,7 @@ void MarlinSettings::reset() {
|
||||
#endif
|
||||
|
||||
TERN_(EXTENSIBLE_UI, ExtUI::onFactoryReset());
|
||||
|
||||
TERN_(DWIN_CREALITY_LCD_ENHANCED, DWIN_SetDataDefaults());
|
||||
TERN_(DWIN_CREALITY_LCD_JYERSUI, CrealityDWIN.Reset_Settings());
|
||||
|
||||
//
|
||||
|
@ -47,6 +47,8 @@
|
||||
|
||||
#if ENABLED(DWIN_CREALITY_LCD)
|
||||
#include "../lcd/e3v2/creality/dwin.h"
|
||||
#elif ENABLED(DWIN_CREALITY_LCD_ENHANCED)
|
||||
#include "../lcd/e3v2/enhanced/dwin.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(EXTENSIBLE_UI)
|
||||
@ -603,10 +605,12 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||
TERN_(HAS_AUTO_FAN, next_auto_fan_check_ms = next_temp_ms + 2500UL);
|
||||
|
||||
TERN_(EXTENSIBLE_UI, ExtUI::onPidTuning(ExtUI::result_t::PID_STARTED));
|
||||
TERN_(DWIN_CREALITY_LCD_ENHANCED, DWIN_PidTuning(isbed ? PID_BED_START : PID_EXTR_START));
|
||||
|
||||
if (target > GHV(CHAMBER_MAX_TARGET, BED_MAX_TARGET, temp_range[heater_id].maxtemp - (HOTEND_OVERSHOOT))) {
|
||||
SERIAL_ECHOLNPGM(STR_PID_TEMP_TOO_HIGH);
|
||||
TERN_(EXTENSIBLE_UI, ExtUI::onPidTuning(ExtUI::result_t::PID_TEMP_TOO_HIGH));
|
||||
TERN_(DWIN_CREALITY_LCD_ENHANCED, DWIN_PidTuning(PID_TEMP_TOO_HIGH));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -627,6 +631,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||
|
||||
// PID Tuning loop
|
||||
wait_for_heatup = true; // Can be interrupted with M108
|
||||
TERN_(HAS_STATUS_MESSAGE, ui.status_printf_P(0, PSTR(S_FMT), "Wait for heat up..."));
|
||||
while (wait_for_heatup) {
|
||||
|
||||
const millis_t ms = millis();
|
||||
@ -687,6 +692,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||
}
|
||||
}
|
||||
SHV((bias + d) >> 1);
|
||||
TERN_(HAS_STATUS_MESSAGE, ui.status_printf_P(0, PSTR(S_FMT " %i/%i"), GET_TEXT(MSG_PID_CYCLE), cycles, ncycles));
|
||||
cycles++;
|
||||
minT = target;
|
||||
}
|
||||
@ -699,6 +705,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||
if (current_temp > target + MAX_OVERSHOOT_PID_AUTOTUNE) {
|
||||
SERIAL_ECHOLNPGM(STR_PID_TEMP_TOO_HIGH);
|
||||
TERN_(EXTENSIBLE_UI, ExtUI::onPidTuning(ExtUI::result_t::PID_TEMP_TOO_HIGH));
|
||||
TERN_(DWIN_CREALITY_LCD_ENHANCED, DWIN_PidTuning(PID_TEMP_TOO_HIGH));
|
||||
break;
|
||||
}
|
||||
|
||||
@ -734,6 +741,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||
#endif
|
||||
if ((ms - _MIN(t1, t2)) > (MAX_CYCLE_TIME_PID_AUTOTUNE * 60L * 1000L)) {
|
||||
TERN_(DWIN_CREALITY_LCD, DWIN_Popup_Temperature(0));
|
||||
TERN_(DWIN_CREALITY_LCD_ENHANCED, DWIN_PidTuning(PID_TUNING_TIMEOUT));
|
||||
TERN_(EXTENSIBLE_UI, ExtUI::onPidTuning(ExtUI::result_t::PID_TUNING_TIMEOUT));
|
||||
SERIAL_ECHOLNPGM(STR_PID_TIMEOUT);
|
||||
break;
|
||||
@ -787,6 +795,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||
TERN_(PRINTER_EVENT_LEDS, printerEventLEDs.onPidTuningDone(color));
|
||||
|
||||
TERN_(EXTENSIBLE_UI, ExtUI::onPidTuning(ExtUI::result_t::PID_DONE));
|
||||
TERN_(DWIN_CREALITY_LCD_ENHANCED, DWIN_PidTuning(PID_DONE));
|
||||
|
||||
goto EXIT_M303;
|
||||
}
|
||||
@ -795,7 +804,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||
TERN_(HAL_IDLETASK, HAL_idletask());
|
||||
|
||||
// Run UI update
|
||||
TERN(DWIN_CREALITY_LCD, DWIN_Update(), ui.update());
|
||||
TERN(HAS_DWIN_E3V2_BASIC, DWIN_Update(), ui.update());
|
||||
}
|
||||
wait_for_heatup = false;
|
||||
|
||||
@ -804,6 +813,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||
TERN_(PRINTER_EVENT_LEDS, printerEventLEDs.onPidTuningDone(color));
|
||||
|
||||
TERN_(EXTENSIBLE_UI, ExtUI::onPidTuning(ExtUI::result_t::PID_DONE));
|
||||
TERN_(DWIN_CREALITY_LCD_ENHANCED, DWIN_PidTuning(PID_DONE));
|
||||
|
||||
EXIT_M303:
|
||||
TERN_(NO_FAN_SLOWING_IN_PID_TUNING, adaptive_fan_slowing = true);
|
||||
@ -1014,14 +1024,14 @@ void Temperature::_temp_error(const heater_id_t heater_id, PGM_P const serial_ms
|
||||
}
|
||||
|
||||
void Temperature::max_temp_error(const heater_id_t heater_id) {
|
||||
#if ENABLED(DWIN_CREALITY_LCD) && (HAS_HOTEND || HAS_HEATED_BED)
|
||||
#if HAS_DWIN_E3V2_BASIC && (HAS_HOTEND || HAS_HEATED_BED)
|
||||
DWIN_Popup_Temperature(1);
|
||||
#endif
|
||||
_temp_error(heater_id, PSTR(STR_T_MAXTEMP), GET_TEXT(MSG_ERR_MAXTEMP));
|
||||
}
|
||||
|
||||
void Temperature::min_temp_error(const heater_id_t heater_id) {
|
||||
#if ENABLED(DWIN_CREALITY_LCD) && (HAS_HOTEND || HAS_HEATED_BED)
|
||||
#if HAS_DWIN_E3V2_BASIC && (HAS_HOTEND || HAS_HEATED_BED)
|
||||
DWIN_Popup_Temperature(0);
|
||||
#endif
|
||||
_temp_error(heater_id, PSTR(STR_T_MINTEMP), GET_TEXT(MSG_ERR_MINTEMP));
|
||||
@ -1329,7 +1339,7 @@ void Temperature::manage_heater() {
|
||||
if (watch_hotend[e].check(degHotend(e))) // Increased enough?
|
||||
start_watching_hotend(e); // If temp reached, turn off elapsed check
|
||||
else {
|
||||
TERN_(DWIN_CREALITY_LCD, DWIN_Popup_Temperature(0));
|
||||
TERN_(HAS_DWIN_E3V2_BASIC, DWIN_Popup_Temperature(0));
|
||||
_temp_error((heater_id_t)e, str_t_heating_failed, GET_TEXT(MSG_HEATING_FAILED_LCD));
|
||||
}
|
||||
}
|
||||
@ -1372,7 +1382,7 @@ void Temperature::manage_heater() {
|
||||
if (watch_bed.check(degBed())) // Increased enough?
|
||||
start_watching_bed(); // If temp reached, turn off elapsed check
|
||||
else {
|
||||
TERN_(DWIN_CREALITY_LCD, DWIN_Popup_Temperature(0));
|
||||
TERN_(HAS_DWIN_E3V2_BASIC, DWIN_Popup_Temperature(0));
|
||||
_temp_error(H_BED, str_t_heating_failed, GET_TEXT(MSG_HEATING_FAILED_LCD));
|
||||
}
|
||||
}
|
||||
@ -2586,7 +2596,7 @@ void Temperature::init() {
|
||||
state = TRRunaway;
|
||||
|
||||
case TRRunaway:
|
||||
TERN_(DWIN_CREALITY_LCD, DWIN_Popup_Temperature(0));
|
||||
TERN_(HAS_DWIN_E3V2_BASIC, DWIN_Popup_Temperature(0));
|
||||
_temp_error(heater_id, str_t_thermal_runaway, GET_TEXT(MSG_THERMAL_RUNAWAY));
|
||||
}
|
||||
}
|
||||
@ -3600,7 +3610,7 @@ void Temperature::isr() {
|
||||
#if HAS_MULTI_HOTEND
|
||||
PSTR("E%c " S_FMT), '1' + e
|
||||
#else
|
||||
PSTR("E " S_FMT)
|
||||
PSTR("E1 " S_FMT)
|
||||
#endif
|
||||
, heating ? GET_TEXT(MSG_HEATING) : GET_TEXT(MSG_COOLING)
|
||||
);
|
||||
@ -3720,13 +3730,12 @@ void Temperature::isr() {
|
||||
|
||||
if (wait_for_heatup) {
|
||||
wait_for_heatup = false;
|
||||
#if ENABLED(DWIN_CREALITY_LCD)
|
||||
#if HAS_DWIN_E3V2_BASIC
|
||||
HMI_flag.heat_flag = 0;
|
||||
duration_t elapsed = print_job_timer.duration(); // print timer
|
||||
dwin_heat_time = elapsed.value;
|
||||
#else
|
||||
ui.reset_status();
|
||||
#endif
|
||||
ui.reset_status();
|
||||
TERN_(PRINTER_EVENT_LEDS, printerEventLEDs.onHeatingDone());
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user