🐛 Fix ProUI with disabled PID, mesh, etc.
This commit is contained in:
parent
7eccd3dd8c
commit
202114c018
|
@ -61,15 +61,9 @@ void GcodeSuite::M303() {
|
|||
const heater_id_t hid = (heater_id_t)parser.intval('E');
|
||||
celsius_t default_temp;
|
||||
switch (hid) {
|
||||
#if ENABLED(PIDTEMP)
|
||||
case 0 ... HOTENDS - 1: default_temp = PREHEAT_1_TEMP_HOTEND; break;
|
||||
#endif
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
case H_BED: default_temp = PREHEAT_1_TEMP_BED; break;
|
||||
#endif
|
||||
#if ENABLED(PIDTEMPCHAMBER)
|
||||
case H_CHAMBER: default_temp = PREHEAT_1_TEMP_CHAMBER; break;
|
||||
#endif
|
||||
OPTCODE(PIDTEMP, case 0 ... HOTENDS - 1: default_temp = PREHEAT_1_TEMP_HOTEND; break)
|
||||
OPTCODE(PIDTEMPBED, case H_BED: default_temp = PREHEAT_1_TEMP_BED; break)
|
||||
OPTCODE(PIDTEMPCHAMBER, case H_CHAMBER: default_temp = PREHEAT_1_TEMP_CHAMBER; break)
|
||||
default:
|
||||
SERIAL_ECHOPGM(STR_PID_AUTOTUNE);
|
||||
SERIAL_ECHOLNPGM(STR_PID_BAD_HEATER_ID);
|
||||
|
@ -84,9 +78,15 @@ void GcodeSuite::M303() {
|
|||
const celsius_t temp = seenS ? parser.value_celsius() : default_temp;
|
||||
const bool u = parser.boolval('U');
|
||||
|
||||
#if ENABLED(DWIN_LCD_PROUI)
|
||||
#if ENABLED(DWIN_LCD_PROUI) && EITHER(PIDTEMP, PIDTEMPBED)
|
||||
if (seenC) HMI_data.PidCycles = c;
|
||||
if (seenS) { if (hid == H_BED) HMI_data.BedPidT = temp; else TERN_(PIDTEMP, HMI_data.HotendPidT = temp); }
|
||||
if (seenS) {
|
||||
switch (hid) {
|
||||
OPTCODE(PIDTEMP, case 0 ... HOTENDS - 1: HMI_data.HotendPidT = temp; break)
|
||||
OPTCODE(PIDTEMPBED, case H_BED: HMI_data.BedPidT = temp; break)
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if DISABLED(BUSY_WHILE_HEATING)
|
||||
|
|
|
@ -197,7 +197,12 @@
|
|||
#define DWIN_UPDATE_INTERVAL 1024
|
||||
#define DWIN_REMAIN_TIME_UPDATE_INTERVAL SEC_TO_MS(20)
|
||||
|
||||
#if HAS_MESH
|
||||
#define BABY_Z_VAR TERN(HAS_BED_PROBE, probe.offset.z, HMI_data.ManualZOffset)
|
||||
#else
|
||||
float z_offset = 0;
|
||||
#define BABY_Z_VAR z_offset
|
||||
#endif
|
||||
|
||||
// Structs
|
||||
HMI_value_t HMI_value;
|
||||
|
@ -1520,33 +1525,31 @@ void DWIN_LevelingDone() {
|
|||
DWINUI::Draw_CenteredString(HMI_data.PopupTxt_Color, 100, GET_TEXT_F(MSG_PID_AUTOTUNE));
|
||||
DWINUI::Draw_String(HMI_data.PopupTxt_Color, gfrm.x, gfrm.y - DWINUI::fontHeight() - 4, F("PID target: Celsius"));
|
||||
switch (HMI_value.pidresult) {
|
||||
#if ENABLED(PIDTEMP)
|
||||
case PIDTEMP_START:
|
||||
DWINUI::Draw_CenteredString(HMI_data.PopupTxt_Color, 120, F("for Nozzle is running."));
|
||||
Plot.Draw(gfrm, thermalManager.hotend_maxtemp[0], HMI_data.HotendPidT);
|
||||
DWINUI::Draw_Int(HMI_data.PopupTxt_Color, 3, gfrm.x + 90, gfrm.y - DWINUI::fontHeight() - 4, HMI_data.HotendPidT);
|
||||
break;
|
||||
#endif
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
case PIDTEMPBED_START:
|
||||
DWINUI::Draw_CenteredString(HMI_data.PopupTxt_Color, 120, F("for BED is running."));
|
||||
Plot.Draw(gfrm, BED_MAXTEMP, HMI_data.BedPidT);
|
||||
DWINUI::Draw_Int(HMI_data.PopupTxt_Color, 3, gfrm.x + 90, gfrm.y - DWINUI::fontHeight() - 4, HMI_data.BedPidT);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
#endif
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if EITHER(PIDTEMP, PIDTEMPBED)
|
||||
|
||||
void DWIN_PidTuning(pidresult_t result) {
|
||||
HMI_value.pidresult = result;
|
||||
switch (result) {
|
||||
case PIDTEMPBED_START:
|
||||
HMI_SaveProcessID(PidProcess);
|
||||
#if HAS_PIDPLOT
|
||||
DWIN_Draw_PIDPopup();
|
||||
#else
|
||||
DWIN_Draw_Popup(ICON_TempTooHigh, GET_TEXT_F(MSG_PID_AUTOTUNE), F("for BED is running."));
|
||||
#endif
|
||||
break;
|
||||
#if ENABLED(PIDTEMP)
|
||||
case PIDTEMP_START:
|
||||
HMI_SaveProcessID(PidProcess);
|
||||
#if HAS_PIDPLOT
|
||||
|
@ -1559,6 +1562,17 @@ void DWIN_PidTuning(pidresult_t result) {
|
|||
checkkey = last_checkkey;
|
||||
DWIN_Popup_Confirm(ICON_TempTooLow, GET_TEXT_F(MSG_PID_AUTOTUNE_FAILED), GET_TEXT_F(MSG_BAD_EXTRUDER_NUM));
|
||||
break;
|
||||
#endif
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
case PIDTEMPBED_START:
|
||||
HMI_SaveProcessID(PidProcess);
|
||||
#if HAS_PIDPLOT
|
||||
DWIN_Draw_PIDPopup();
|
||||
#else
|
||||
DWIN_Draw_Popup(ICON_TempTooHigh, GET_TEXT_F(MSG_PID_AUTOTUNE), F("for BED is running."));
|
||||
#endif
|
||||
break;
|
||||
#endif
|
||||
case PID_TUNING_TIMEOUT:
|
||||
checkkey = last_checkkey;
|
||||
DWIN_Popup_Confirm(ICON_TempTooHigh, GET_TEXT_F(MSG_ERROR), GET_TEXT_F(MSG_PID_TIMEOUT));
|
||||
|
@ -1571,12 +1585,12 @@ void DWIN_PidTuning(pidresult_t result) {
|
|||
checkkey = last_checkkey;
|
||||
DWIN_Popup_Confirm(ICON_TempTooLow, GET_TEXT_F(MSG_PID_AUTOTUNE), GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
break;
|
||||
default:
|
||||
checkkey = last_checkkey;
|
||||
break;
|
||||
default: checkkey = last_checkkey; break;
|
||||
}
|
||||
}
|
||||
|
||||
#endif // PIDTEMP || PIDTEMPBED
|
||||
|
||||
// Started a Print Job
|
||||
void DWIN_Print_Started() {
|
||||
DEBUG_ECHOLNPGM("DWIN_Print_Started: ", SD_Printing());
|
||||
|
@ -1675,18 +1689,14 @@ void DWIN_SetDataDefaults() {
|
|||
HMI_data.ExtMinT = EXTRUDE_MINTEMP;
|
||||
ApplyExtMinT();
|
||||
#endif
|
||||
#if BOTH(HAS_HEATED_BED, PREHEAT_BEFORE_LEVELING)
|
||||
HMI_data.BedLevT = LEVELING_BED_TEMP;
|
||||
#endif
|
||||
TERN_(PREHEAT_BEFORE_LEVELING, HMI_data.BedLevT = LEVELING_BED_TEMP);
|
||||
TERN_(BAUD_RATE_GCODE, SetBaud250K());
|
||||
HMI_data.FullManualTramming = false;
|
||||
HMI_data.MediaAutoMount = ENABLED(HAS_SD_EXTENDER);
|
||||
#if BOTH(INDIVIDUAL_AXIS_HOMING_SUBMENU, MESH_BED_LEVELING)
|
||||
HMI_data.z_after_homing = DEF_Z_AFTER_HOMING;
|
||||
#endif
|
||||
#if DISABLED(HAS_BED_PROBE)
|
||||
HMI_data.ManualZOffset = 0;
|
||||
#endif
|
||||
IF_DISABLED(HAS_BED_PROBE, HMI_data.ManualZOffset = 0);
|
||||
#if BOTH(LED_CONTROL_MENU, HAS_COLOR_LEDS)
|
||||
TERN_(LED_COLOR_PRESETS, leds.set_default());
|
||||
ApplyLEDColor();
|
||||
|
@ -2062,6 +2072,7 @@ void SetMoveZ() { HMI_value.axis = Z_AXIS; SetPFloatOnClick(Z_MIN_POS, Z_MAX_POS
|
|||
}
|
||||
#endif
|
||||
|
||||
#if EITHER(PIDTEMP, PIDTEMPBED)
|
||||
void SetPID(celsius_t t, heater_id_t h) {
|
||||
char cmd[53] = "";
|
||||
char str_1[5] = "", str_2[5] = "";
|
||||
|
@ -2078,6 +2089,7 @@ void SetPID(celsius_t t, heater_id_t h) {
|
|||
#if ENABLED(PIDTEMPBED)
|
||||
void BedPID() { SetPID(HMI_data.BedPidT, H_BED); }
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
void SetPwrLossr() {
|
||||
|
@ -2375,14 +2387,14 @@ void TramBR() { Tram(2); }
|
|||
void TramBL() { Tram(3); }
|
||||
void TramC () { Tram(4); }
|
||||
|
||||
#if HAS_BED_PROBE
|
||||
#if HAS_BED_PROBE && HAS_MESH
|
||||
|
||||
void Trammingwizard() {
|
||||
bed_mesh_t zval = {0};
|
||||
if (HMI_data.FullManualTramming) {
|
||||
LCD_MESSAGE_F("Disable manual tramming");
|
||||
return;
|
||||
}
|
||||
bed_mesh_t zval = {0};
|
||||
zval[0][0] = Tram(0);
|
||||
checkkey = NothingToDo;
|
||||
MeshViewer.DrawMesh(zval, 2, 2);
|
||||
|
@ -2441,7 +2453,7 @@ void TramC () { Tram(4); }
|
|||
Toogle_Chkb_Line(HMI_data.FullManualTramming);
|
||||
}
|
||||
|
||||
#endif // HAS_BED_PROBE
|
||||
#endif // HAS_BED_PROBE && HAS_MESH
|
||||
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
@ -2531,11 +2543,11 @@ void SetStepsZ() { HMI_value.axis = Z_AXIS, SetPFloatOnClick( MIN_STEP, MAX_STEP
|
|||
void SetKp() { SetPFloatOnClick(0, 1000, 2); }
|
||||
void ApplyPIDi() {
|
||||
*MenuData.P_Float = scalePID_i(MenuData.Value / POW(10, 2));
|
||||
thermalManager.updatePID();
|
||||
TERN_(PIDTEMP, thermalManager.updatePID());
|
||||
}
|
||||
void ApplyPIDd() {
|
||||
*MenuData.P_Float = scalePID_d(MenuData.Value / POW(10, 2));
|
||||
thermalManager.updatePID();
|
||||
TERN_(PIDTEMP, thermalManager.updatePID());
|
||||
}
|
||||
void SetKi() {
|
||||
MenuData.P_Float = (float*)static_cast<MenuItemPtrClass*>(CurrentMenu->SelectedItem())->value;
|
||||
|
@ -2698,8 +2710,10 @@ void onDrawGetColorItem(MenuItemClass* menuitem, int8_t line) {
|
|||
}
|
||||
|
||||
|
||||
#if EITHER(PIDTEMP, PIDTEMPBED)
|
||||
void onDrawPIDi(MenuItemClass* menuitem, int8_t line) { onDrawFloatMenu(menuitem, line, 2, unscalePID_i(*(float*)static_cast<MenuItemPtrClass*>(menuitem)->value)); }
|
||||
void onDrawPIDd(MenuItemClass* menuitem, int8_t line) { onDrawFloatMenu(menuitem, line, 2, unscalePID_d(*(float*)static_cast<MenuItemPtrClass*>(menuitem)->value)); }
|
||||
#endif
|
||||
|
||||
void onDrawSpeedItem(MenuItemClass* menuitem, int8_t line) {
|
||||
if (HMI_IsChinese()) menuitem->SetFrame(1, 116, 164, 171, 176);
|
||||
|
@ -2992,10 +3006,10 @@ void Draw_Tramming_Menu() {
|
|||
checkkey = Menu;
|
||||
if (SET_MENU(TrammingMenu, MSG_BED_TRAMMING, 8)) {
|
||||
BACK_ITEM(Draw_Prepare_Menu);
|
||||
#if HAS_BED_PROBE
|
||||
#if HAS_BED_PROBE && HAS_MESH
|
||||
MENU_ITEM(ICON_ProbeSet, MSG_TRAMMING_WIZARD, onDrawMenuItem, Trammingwizard);
|
||||
EDIT_ITEM(ICON_ProbeSet, MSG_BED_TRAMMING_MANUAL, onDrawChkbMenu, SetManualTramming, &HMI_data.FullManualTramming);
|
||||
#else
|
||||
#elif !HAS_BED_PROBE && HAS_ZOFFSET_ITEM
|
||||
MENU_ITEM_F(ICON_MoveZ0, "Home Z and disable", onDrawMenuItem, HomeZandDisable);
|
||||
#endif
|
||||
MENU_ITEM(ICON_Axis, MSG_LEVBED_FL, onDrawMenuItem, TramFL);
|
||||
|
@ -3547,7 +3561,7 @@ void Draw_Steps_Menu() {
|
|||
DWIN_UpdateLCD();
|
||||
}
|
||||
|
||||
#if BOTH(HAS_HEATED_BED, PREHEAT_BEFORE_LEVELING)
|
||||
#if ENABLED(PREHEAT_BEFORE_LEVELING)
|
||||
void SetBedLevT() { SetPIntOnClick(MIN_BEDTEMP, MAX_BEDTEMP); }
|
||||
#endif
|
||||
|
||||
|
@ -3613,7 +3627,7 @@ void Draw_Steps_Menu() {
|
|||
checkkey = Menu;
|
||||
if (SET_MENU(MeshMenu, MSG_MESH_LEVELING, 13)) {
|
||||
BACK_ITEM(Draw_AdvancedSettings_Menu);
|
||||
#if BOTH(HAS_HEATED_BED, PREHEAT_BEFORE_LEVELING)
|
||||
#if ENABLED(PREHEAT_BEFORE_LEVELING)
|
||||
EDIT_ITEM(ICON_Temperature, MSG_UBL_SET_TEMP_BED, onDrawPIntMenu, SetBedLevT, &HMI_data.BedLevT);
|
||||
#endif
|
||||
EDIT_ITEM(ICON_SetZOffset, MSG_Z_FADE_HEIGHT, onDrawPFloatMenu, SetMeshFadeHeight, &planner.z_fade_height);
|
||||
|
|
Loading…
Reference in a new issue