🎨 Apply HAS_MULTI_HOTEND conditional

This commit is contained in:
Scott Lahteine 2021-10-26 21:54:43 -05:00
parent fbc125b06c
commit aa2c6387e9
41 changed files with 100 additions and 106 deletions

View file

@ -132,20 +132,19 @@ FORCE_INLINE void _draw_fan_status(const uint16_t x, const uint16_t y) {
}
}
#if HOTENDS > 2
#define HOTEND_STATS 3
#elif HOTENDS > 1
#define HOTEND_STATS 2
#elif HAS_HOTEND
#define HOTEND_STATS 1
#endif
/**
* Draw a single heater icon with current and target temperature, at the given XY
*/
FORCE_INLINE void _draw_heater_status(const heater_id_t heater, const uint16_t x, const uint16_t y) {
#if HAS_HOTEND
#if HOTENDS > 2
#define HOTEND_STATS 3
#elif HOTENDS > 1
#define HOTEND_STATS 2
#elif HAS_HOTEND
#define HOTEND_STATS 1
#endif
static celsius_t old_temp[HOTEND_STATS] = ARRAY_N_1(HOTEND_STATS, 500),
old_target[HOTEND_STATS] = ARRAY_N_1(HOTEND_STATS, 500);
static bool old_on[HOTEND_STATS] = ARRAY_N_1(HOTEND_STATS, false);

View file

@ -185,7 +185,7 @@ void DGUSScreenHandler::DGUSLCD_SendStringToDisplayPGM(DGUS_VP_Variable &var) {
case VP_E0_PID_I: valuesend = unscalePID_i(value); break;
case VP_E0_PID_D: valuesend = unscalePID_d(value); break;
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
case VP_E1_PID_P: valuesend = value; break;
case VP_E1_PID_I: valuesend = unscalePID_i(value); break;
case VP_E1_PID_D: valuesend = unscalePID_d(value); break;
@ -400,7 +400,7 @@ void DGUSScreenHandler::HandleTemperatureChanged(DGUS_VP_Variable &var, void *va
acceptedvalue = thermalManager.degTargetHotend(0);
break;
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
case VP_T_E1_Set:
NOMORE(newvalue, HEATER_1_MAXTEMP);
thermalManager.setTargetHotend(newvalue, 1);
@ -551,7 +551,7 @@ void DGUSScreenHandler::HandleStepPerMMExtruderChanged(DGUS_VP_Variable &var, vo
sprintf_P(buf, PSTR("M303 E%d C5 S210 U1"), ExtUI::extruder_t::E0);
break;
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
case VP_PID_AUTOTUNE_E1:
sprintf_P(buf, PSTR("M303 E%d C5 S210 U1"), ExtUI::extruder_t::E1);
break;
@ -598,7 +598,7 @@ void DGUSScreenHandler::HandleHeaterControl(DGUS_VP_Variable &var, void *val_ptr
switch (var.VP) {
#if HAS_HOTEND
case VP_E0_CONTROL:
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
case VP_E1_CONTROL:
#if HOTENDS >= 3
case VP_E2_CONTROL:

View file

@ -51,7 +51,7 @@ const uint16_t VPList_Main[] PROGMEM = {
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set, VP_E0_STATUS,
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#if HAS_HEATED_BED
@ -73,7 +73,7 @@ const uint16_t VPList_Temp[] PROGMEM = {
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#if HAS_HEATED_BED
@ -87,7 +87,7 @@ const uint16_t VPList_Status[] PROGMEM = {
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#if HAS_HEATED_BED
@ -120,7 +120,7 @@ const uint16_t VPList_Preheat[] PROGMEM = {
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#if HAS_HEATED_BED
@ -187,7 +187,7 @@ const uint16_t VPList_SD_PrintManipulation[] PROGMEM = {
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#if HAS_HEATED_BED
@ -379,7 +379,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_E0_FILAMENT_LOAD_UNLOAD, nullptr, ScreenHandler.HandleFilamentOption, ScreenHandler.HandleFilamentLoadUnload),
#endif
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VPHELPER(VP_T_E1_Is, &thermalManager.temp_hotend[1].celsius, nullptr, ScreenHandler.DGUSLCD_SendFloatAsLongValueToDisplay<0>),
VPHELPER(VP_T_E1_Set, &thermalManager.temp_hotend[1].target, ScreenHandler.HandleTemperatureChanged, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
VPHELPER(VP_Flowrate_E1, &planner.flow_percentage[ExtUI::extruder_t::E1], ScreenHandler.HandleFlowRateChanged, ScreenHandler.DGUSLCD_SendWordValueToDisplay), // ERROR: Flow is per-extruder, not per-hotend

View file

@ -256,7 +256,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
case VP_E0_PID_I: newvalue = scalePID_i(value); break;
case VP_E0_PID_D: newvalue = scalePID_d(value); break;
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
case VP_E1_PID_P: newvalue = value; break;
case VP_E1_PID_I: newvalue = scalePID_i(value); break;
case VP_E1_PID_D: newvalue = scalePID_d(value); break;
@ -334,7 +334,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
#if HAS_HOTEND
thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E0);
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E1);
#endif
GotoScreen(DGUSLCD_SCREEN_UTILITY);

View file

@ -50,7 +50,7 @@ const uint16_t VPList_Main[] PROGMEM = {
// VP_M117, for completeness, but it cannot be auto-uploaded.
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set, VP_E0_STATUS,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#endif
@ -72,7 +72,7 @@ const uint16_t VPList_Main[] PROGMEM = {
const uint16_t VPList_Temp[] PROGMEM = {
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#endif
@ -86,7 +86,7 @@ const uint16_t VPList_Status[] PROGMEM = {
// VP_M117, for completeness, but it cannot be auto-uploaded
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#endif
@ -107,7 +107,7 @@ const uint16_t VPList_Status2[] PROGMEM = {
// VP_M117, for completeness, but it cannot be auto-uploaded
#if HAS_HOTEND
VP_Flowrate_E0,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_Flowrate_E1,
#endif
#endif
@ -119,7 +119,7 @@ const uint16_t VPList_Status2[] PROGMEM = {
const uint16_t VPList_Preheat[] PROGMEM = {
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#endif
@ -137,7 +137,7 @@ const uint16_t VPList_ManualMove[] PROGMEM = {
const uint16_t VPList_ManualExtrude[] PROGMEM = {
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#endif
@ -159,7 +159,7 @@ const uint16_t VPList_Filament_heating[] PROGMEM = {
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
VP_E0_FILAMENT_LOAD_UNLOAD,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#endif
@ -169,7 +169,7 @@ const uint16_t VPList_Filament_heating[] PROGMEM = {
const uint16_t VPList_Filament_load_unload[] PROGMEM = {
#if HAS_HOTEND
VP_E0_FILAMENT_LOAD_UNLOAD,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_E1_FILAMENT_LOAD_UNLOAD,
#endif
#endif
@ -185,7 +185,7 @@ const uint16_t VPList_SD_PrintManipulation[] PROGMEM = {
VP_PrintProgress_Percentage, VP_PrintTime,
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#endif
@ -205,7 +205,7 @@ const uint16_t VPList_SD_PrintManipulation[] PROGMEM = {
const uint16_t VPList_SDPrintTune[] PROGMEM = {
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#endif
@ -222,23 +222,17 @@ const uint16_t VPList_SDPrintTune[] PROGMEM = {
};
const uint16_t VPList_StepPerMM[] PROGMEM = {
VP_X_STEP_PER_MM,
VP_Y_STEP_PER_MM,
VP_Z_STEP_PER_MM,
#if HAS_HOTEND
VP_E0_STEP_PER_MM,
#if HOTENDS >= 2
VP_E1_STEP_PER_MM,
#endif
#endif
0x0000
VP_X_STEP_PER_MM
, VP_Y_STEP_PER_MM
, VP_Z_STEP_PER_MM
OPTARG(HAS_HOTEND, VP_E0_STEP_PER_MM)
OPTARG(HAS_MULTI_HOTEND, VP_E1_STEP_PER_MM)
, 0x0000
};
const uint16_t VPList_PIDE0[] PROGMEM = {
#if ENABLED(PIDTEMP)
VP_E0_PID_P,
VP_E0_PID_I,
VP_E0_PID_D,
VP_E0_PID_P, VP_E0_PID_I, VP_E0_PID_D,
#endif
0x0000
};
@ -382,7 +376,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_PID_AUTOTUNE_E0, nullptr, ScreenHandler.HandlePIDAutotune, nullptr),
#endif
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VPHELPER(VP_T_E1_Is, &thermalManager.temp_hotend[1].celsius, nullptr, ScreenHandler.DGUSLCD_SendFloatAsLongValueToDisplay<0>),
VPHELPER(VP_T_E1_Set, &thermalManager.temp_hotend[1].target, ScreenHandler.HandleTemperatureChanged, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
VPHELPER(VP_Flowrate_E1, nullptr, ScreenHandler.HandleFlowRateChanged, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
@ -435,7 +429,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_Z_STEP_PER_MM, &planner.settings.axis_steps_per_mm[Z_AXIS], ScreenHandler.HandleStepPerMMChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>),
#if HAS_HOTEND
VPHELPER(VP_E0_STEP_PER_MM, &planner.settings.axis_steps_per_mm[E_AXIS_N(0)], ScreenHandler.HandleStepPerMMExtruderChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>),
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VPHELPER(VP_E1_STEP_PER_MM, &planner.settings.axis_steps_per_mm[E_AXIS_N(1)], ScreenHandler.HandleStepPerMMExtruderChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>),
#endif
#endif

View file

@ -256,7 +256,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
case VP_E0_PID_I: newvalue = scalePID_i(value); break;
case VP_E0_PID_D: newvalue = scalePID_d(value); break;
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
case VP_E1_PID_P: newvalue = value; break;
case VP_E1_PID_I: newvalue = scalePID_i(value); break;
case VP_E1_PID_D: newvalue = scalePID_d(value); break;
@ -333,7 +333,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
if (filament_data.action == 0) { // Go back to utility screen
#if HAS_HOTEND
thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E0);
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E1);
#endif
#endif
@ -348,7 +348,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
thermalManager.setTargetHotend(e_temp, filament_data.extruder);
break;
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
case VP_E1_FILAMENT_LOAD_UNLOAD:
filament_data.extruder = ExtUI::extruder_t::E1;
thermalManager.setTargetHotend(e_temp, filament_data.extruder);

View file

@ -122,7 +122,7 @@ const uint16_t VPList_Main[] PROGMEM = {
// VP_M117, for completeness, but it cannot be auto-uploaded.
#if HAS_HOTEND
MKSLIST_E_ITEM(0) VP_E0_STATUS,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
MKSLIST_E_ITEM(1) VP_E1_STATUS,
#endif
#endif
@ -567,7 +567,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
#endif
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VPHELPER(VP_T_E1_Is, &thermalManager.temp_hotend[1].celsius, nullptr, ScreenHandler.DGUSLCD_SendFloatAsLongValueToDisplay<0>),
VPHELPER(VP_T_E1_Set, &thermalManager.temp_hotend[1].target, ScreenHandler.HandleTemperatureChanged, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
VPHELPER(VP_Flowrate_E1, &planner.flow_percentage[ExtUI::extruder_t::E1], ScreenHandler.HandleFlowRateChanged, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
@ -656,7 +656,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
#if HAS_HOTEND
VPHELPER(VP_E0_MAX_SPEED, &planner.settings.max_feedrate_mm_s[E_AXIS_N(0)], ScreenHandler.HandleExtruderMaxSpeedChange_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VPHELPER(VP_E1_MAX_SPEED, &planner.settings.max_feedrate_mm_s[E_AXIS_N(1)], ScreenHandler.HandleExtruderMaxSpeedChange_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
#endif
#endif
@ -667,7 +667,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
#if HAS_HOTEND
VPHELPER(VP_E0_ACC_MAX_SPEED, (uint16_t *)&planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(0)], ScreenHandler.HandleExtruderAccChange_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VPHELPER(VP_E1_ACC_MAX_SPEED, (uint16_t *)&planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(1)], ScreenHandler.HandleExtruderAccChange_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
#endif
#endif
@ -744,7 +744,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
#if HAS_HOTEND
VPHELPER(VP_E0_STEP_PER_MM, &planner.settings.axis_steps_per_mm[E_AXIS_N(0)], ScreenHandler.HandleStepPerMMExtruderChanged_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VPHELPER(VP_E1_STEP_PER_MM, &planner.settings.axis_steps_per_mm[E_AXIS_N(1)], ScreenHandler.HandleStepPerMMExtruderChanged_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
#endif
#endif

View file

@ -57,7 +57,7 @@ const uint16_t VPList_Main[] PROGMEM = {
const uint16_t VPList_Temp[] PROGMEM = {
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#endif
@ -71,7 +71,7 @@ const uint16_t VPList_Status[] PROGMEM = {
// VP_M117, for completeness, but it cannot be auto-uploaded
#if HAS_HOTEND
VP_T_E0_Is, VP_T_E0_Set,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_T_E1_Is, VP_T_E1_Set,
#endif
#endif
@ -92,7 +92,7 @@ const uint16_t VPList_Status2[] PROGMEM = {
// VP_M117, for completeness, but it cannot be auto-uploaded
#if HAS_HOTEND
VP_Flowrate_E0,
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VP_Flowrate_E1,
#endif
#endif
@ -182,7 +182,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_E0_FILAMENT_LOAD_UNLOAD, nullptr, ScreenHandler.HandleFilamentOption, ScreenHandler.HandleFilamentLoadUnload),
#endif
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VPHELPER(VP_T_E1_Is, &thermalManager.temp_hotend[1].celsius, nullptr, ScreenHandler.DGUSLCD_SendFloatAsLongValueToDisplay<0>),
VPHELPER(VP_T_E1_Set, &thermalManager.temp_hotend[1].target, ScreenHandler.HandleTemperatureChanged, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
VPHELPER(VP_Flowrate_E1, nullptr, ScreenHandler.HandleFlowRateChanged, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
@ -237,7 +237,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_Z_STEP_PER_MM, &planner.settings.axis_steps_per_mm[Z_AXIS], ScreenHandler.HandleStepPerMMChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>),
#if HAS_HOTEND
VPHELPER(VP_E0_STEP_PER_MM, &planner.settings.axis_steps_per_mm[E_AXIS_N(0)], ScreenHandler.HandleStepPerMMExtruderChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>),
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
VPHELPER(VP_E1_STEP_PER_MM, &planner.settings.axis_steps_per_mm[E_AXIS_N(1)], ScreenHandler.HandleStepPerMMExtruderChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>),
#endif
#endif

View file

@ -256,7 +256,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
case VP_E0_PID_I: newvalue = scalePID_i(value); break;
case VP_E0_PID_D: newvalue = scalePID_d(value); break;
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
case VP_E1_PID_P: newvalue = value; break;
case VP_E1_PID_I: newvalue = scalePID_i(value); break;
case VP_E1_PID_D: newvalue = scalePID_d(value); break;
@ -333,7 +333,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
if (filament_data.action == 0) { // Go back to utility screen
#if HAS_HOTEND
thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E0);
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E1);
#endif
#endif
@ -348,7 +348,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
thermalManager.setTargetHotend(e_temp, filament_data.extruder);
break;
#endif
#if HOTENDS >= 2
#if HAS_MULTI_HOTEND
case VP_E1_FILAMENT_LOAD_UNLOAD:
filament_data.extruder = ExtUI::extruder_t::E1;
thermalManager.setTargetHotend(e_temp, filament_data.extruder);

View file

@ -327,7 +327,7 @@ void DGUSRxHandler::TempTarget(DGUS_VP &vp, void *data_ptr) {
case DGUS_Addr::TEMP_SetTarget_H0:
ExtUI::setTargetTemp_celsius(temp, ExtUI::H0);
break;
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
case DGUS_Addr::TEMP_SetTarget_H1:
ExtUI::setTargetTemp_celsius(temp, ExtUI::H1);
break;
@ -347,7 +347,7 @@ void DGUSRxHandler::TempCool(DGUS_VP &vp, void *data_ptr) {
case DGUS_Data::Heater::ALL:
ExtUI::setTargetTemp_celsius(0, ExtUI::BED);
ExtUI::setTargetTemp_celsius(0, ExtUI::H0);
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
ExtUI::setTargetTemp_celsius(0, ExtUI::H1);
#endif
break;
@ -357,7 +357,7 @@ void DGUSRxHandler::TempCool(DGUS_VP &vp, void *data_ptr) {
case DGUS_Data::Heater::H0:
ExtUI::setTargetTemp_celsius(0, ExtUI::H0);
break;
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
case DGUS_Data::Heater::H1:
ExtUI::setTargetTemp_celsius(0, ExtUI::H1);
break;
@ -827,7 +827,7 @@ void DGUSRxHandler::PIDSelect(DGUS_VP &vp, void *data_ptr) {
dgus_screen_handler.pid_heater = heater;
break;
case DGUS_Data::Heater::H0:
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
case DGUS_Data::Heater::H1:
#endif
dgus_screen_handler.pid_temp = DGUS_PLA_TEMP_HOTEND;
@ -858,7 +858,7 @@ void DGUSRxHandler::PIDSetTemp(DGUS_VP &vp, void *data_ptr) {
case DGUS_Data::Heater::H0:
temp = constrain(temp, HEATER_0_MINTEMP, (HEATER_0_MAXTEMP - HOTEND_OVERSHOOT));
break;
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
case DGUS_Data::Heater::H1:
temp = constrain(temp, HEATER_1_MINTEMP, (HEATER_1_MAXTEMP - HOTEND_OVERSHOOT));
break;
@ -900,7 +900,7 @@ void DGUSRxHandler::PIDRun(DGUS_VP &vp, void *data_ptr) {
dgus_screen_handler.SetStatusMessage(F("PID disabled"));
return;
#endif
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
case DGUS_Data::Heater::H1:
#if ENABLED(PIDTEMP)
heater = H_E1;

View file

@ -275,7 +275,7 @@ void DGUSTxHandler::TempMax(DGUS_VP &vp) {
case DGUS_Addr::TEMP_Max_H0:
temp = HEATER_0_MAXTEMP - HOTEND_OVERSHOOT;
break;
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
case DGUS_Addr::TEMP_Max_H1:
temp = HEATER_1_MAXTEMP - HOTEND_OVERSHOOT;
break;
@ -428,7 +428,7 @@ void DGUSTxHandler::PIDKp(DGUS_VP &vp) {
case DGUS_Data::Heater::H0:
value = ExtUI::getPIDValues_Kp(ExtUI::E0);
break;
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
case DGUS_Data::Heater::H1:
value = ExtUI::getPIDValues_Kp(ExtUI::E1);
break;
@ -454,7 +454,7 @@ void DGUSTxHandler::PIDKi(DGUS_VP &vp) {
case DGUS_Data::Heater::H0:
value = ExtUI::getPIDValues_Ki(ExtUI::E0);
break;
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
case DGUS_Data::Heater::H1:
value = ExtUI::getPIDValues_Ki(ExtUI::E1);
break;
@ -480,7 +480,7 @@ void DGUSTxHandler::PIDKd(DGUS_VP &vp) {
case DGUS_Data::Heater::H0:
value = ExtUI::getPIDValues_Kd(ExtUI::E0);
break;
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
case DGUS_Data::Heater::H1:
value = ExtUI::getPIDValues_Kd(ExtUI::E1);
break;

View file

@ -64,7 +64,7 @@ enum class DGUS_Addr : uint16_t {
TEMP_Preset = 0x2010, // Popup / Data: DGUS_Data::TempPreset
TEMP_SetTarget_Bed = 0x2011, // Type: Integer (16 bits signed)
TEMP_SetTarget_H0 = 0x2012, // Type: Integer (16 bits signed)
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
TEMP_SetTarget_H1 = 0x2013, // Type: Integer (16 bits signed)
#endif
TEMP_Cool = 0x2014, // Data: DGUS_Data::Heater
@ -123,7 +123,7 @@ enum class DGUS_Addr : uint16_t {
TEMP_Current_H0 = 0x30FF, // Type: Integer (16 bits signed)
TEMP_Target_H0 = 0x3100, // Type: Integer (16 bits signed)
TEMP_Max_H0 = 0x3101, // Type: Integer (16 bits unsigned)
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
TEMP_Current_H1 = 0x3102, // Type: Integer (16 bits signed)
TEMP_Target_H1 = 0x3103, // Type: Integer (16 bits signed)
TEMP_Max_H1 = 0x3104, // Type: Integer (16 bits unsigned)

View file

@ -102,7 +102,7 @@ const struct DGUS_VP vp_list[] PROGMEM = {
VP_HELPER_RX(DGUS_Addr::TEMP_Preset, &DGUSRxHandler::TempPreset),
VP_HELPER_RX(DGUS_Addr::TEMP_SetTarget_Bed, &DGUSRxHandler::TempTarget),
VP_HELPER_RX(DGUS_Addr::TEMP_SetTarget_H0, &DGUSRxHandler::TempTarget),
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
VP_HELPER_RX(DGUS_Addr::TEMP_SetTarget_H1, &DGUSRxHandler::TempTarget),
#endif
VP_HELPER_RX(DGUS_Addr::TEMP_Cool, &DGUSRxHandler::TempCool),
@ -217,7 +217,7 @@ const struct DGUS_VP vp_list[] PROGMEM = {
&thermalManager.temp_hotend[ExtUI::heater_t::H0].target,
&DGUSTxHandler::ExtraToInteger<int16_t>),
VP_HELPER_TX(DGUS_Addr::TEMP_Max_H0, &DGUSTxHandler::TempMax),
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
VP_HELPER_TX_AUTO(DGUS_Addr::TEMP_Current_H1,
&thermalManager.temp_hotend[ExtUI::heater_t::H1].celsius,
&DGUSTxHandler::ExtraToInteger<float>),

View file

@ -122,7 +122,8 @@ void Temperature::lcd_preheat(const uint8_t e, const int8_t indh, const int8_t i
HOTEND_LOOP() PREHEAT_ITEMS(editable.int8, e);
ACTION_ITEM_S(ui.get_preheat_label(m), MSG_PREHEAT_M_ALL, []() {
HOTEND_LOOP() thermalManager.setTargetHotend(ui.material_preset[editable.int8].hotend_temp, e);
const celsius_t t = ui.material_preset[editable.int8].hotend_temp;
HOTEND_LOOP() thermalManager.setTargetHotend(t, e);
TERN(HAS_HEATED_BED, _preheat_bed(editable.int8), ui.return_to_status());
});
@ -268,7 +269,7 @@ void menu_temperature() {
//
LOOP_L_N(m, PREHEAT_COUNT) {
editable.int8 = m;
#if HOTENDS > 1 || HAS_HEATED_BED
#if HAS_MULTI_HOTEND || HAS_HEATED_BED
SUBMENU_S(ui.get_preheat_label(m), MSG_PREHEAT_M, menu_preheat_m);
#elif HAS_HOTEND
ACTION_ITEM_S(ui.get_preheat_label(m), MSG_PREHEAT_M, do_preheat_end_m);
@ -295,7 +296,7 @@ void menu_temperature() {
LOOP_L_N(m, PREHEAT_COUNT) {
editable.int8 = m;
#if HOTENDS > 1 || HAS_HEATED_BED
#if HAS_MULTI_HOTEND || HAS_HEATED_BED
SUBMENU_S(ui.get_preheat_label(m), MSG_PREHEAT_M, menu_preheat_m);
#else
ACTION_ITEM_S(ui.get_preheat_label(m), MSG_PREHEAT_M, do_preheat_end_m);

View file

@ -57,7 +57,7 @@ void menu_item(const uint8_t row, bool sel = false);
#define ABSOLUTE_ZERO -273.15
#if HAS_TEMP_CHAMBER && HOTENDS > 1
#if HAS_TEMP_CHAMBER && HAS_MULTI_HOTEND
#define ITEM_E0 0
#define ITEM_E1 1
#define ITEM_BED 2
@ -74,7 +74,7 @@ void menu_item(const uint8_t row, bool sel = false);
#define ITEM_COOLER 0
#define ITEM_FAN 1
#define ITEMS_COUNT 2
#elif HOTENDS > 1
#elif HAS_MULTI_HOTEND
#define ITEM_E0 0
#define ITEM_E1 1
#define ITEM_BED 2

View file

@ -32,7 +32,7 @@
#if EXTRUDERS > 1 || E_STEPPERS > 1
#error "E4d@box only supports one E Stepper. Comment out this line to continue."
#elif HOTENDS > 1
#elif HAS_MULTI_HOTEND
#error "E4d@box only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -32,7 +32,7 @@
#if EXTRUDERS > 1 || E_STEPPERS > 1
#error "FYSETC E4 only supports one E Stepper. Comment out this line to continue."
#elif HOTENDS > 1
#elif HAS_MULTI_HOTEND
#error "FYSETC E4 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -32,7 +32,7 @@
#if EXTRUDERS > 1 || E_STEPPERS > 1
#error "MRR ESPA only supports one E Stepper. Comment out this line to continue."
#elif HOTENDS > 1
#elif HAS_MULTI_HOTEND
#error "MRR ESPA only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -33,7 +33,7 @@
#if EXTRUDERS > 2 || E_STEPPERS > 2
#error "MRR ESPE only supports two E Steppers. Comment out this line to continue."
#elif HOTENDS > 1
#elif HAS_MULTI_HOTEND
#error "MRR ESPE only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -25,7 +25,7 @@
* VERTEX NANO Arduino Mega with RAMPS EFB v1.4 pin assignments.
*/
#if HOTENDS > 1
#if HAS_MULTI_HOTEND
#error "Only 1 hotend is supported for Vertex Nano."
#endif

View file

@ -28,7 +28,7 @@
#define REQUIRE_MEGA2560
#include "env_validate.h"
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "Longer3D LGT KIT V1.0 board only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -21,7 +21,7 @@
*/
#pragma once
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "Ender-4 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -23,7 +23,7 @@
#include "env_validate.h"
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "CCROBOT-ONLINE MEEB_3DP only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -27,7 +27,7 @@
#include "env_validate.h"
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "Creality V4 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -27,7 +27,7 @@
#include "env_validate.h"
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "CREALITY supports up to 1 hotends / E-steppers. Comment out this line to continue."
#endif

View file

@ -25,7 +25,7 @@
* Creality v4.5.2 (STM32F103RET6) board pin assignments
*/
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "Creality v4.5.2 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -25,7 +25,7 @@
* Creality v4.5.3 (STM32F103RET6) board pin assignments
*/
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "Creality v4.5.3 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -31,7 +31,7 @@
#if NOT_TARGET(__STM32F1__, STM32F1xx)
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
#elif HOTENDS > 1 || E_STEPPERS > 1
#elif HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "FLSUN HiSpeedV1 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -32,7 +32,7 @@
#include "env_validate.h"
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "JGAurora A5S A1 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -27,7 +27,7 @@
#if NOT_TARGET(__STM32F1__, STM32F1xx)
#error "Oops! Select a STM32F1 board in 'Tools > Board.'"
#elif HOTENDS > 1 || E_STEPPERS > 1
#elif HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "Longer3D only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -25,7 +25,7 @@
* MKS Robin E3 (STM32F103RCT6) board pin assignments
*/
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "MKS Robin E3 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -25,7 +25,7 @@
* MKS Robin E3D (STM32F103RCT6) board pin assignments
*/
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "MKS Robin E3D only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -25,7 +25,7 @@
* MKS Robin E3D v1.1 (STM32F103RCT6) board pin assignments
*/
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "MKS Robin E3D v1.1 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -27,7 +27,7 @@
#include "env_validate.h"
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "MKS Robin E3P only supports one hotend / E-stepper. Comment out this line to continue."
#elif HAS_FSMC_TFT
#error "MKS Robin E3P doesn't support FSMC-based TFT displays."

View file

@ -25,7 +25,7 @@
* MKS Robin E3 v1.1 (STM32F103RCT6) board pin assignments
*/
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "MKS Robin E3 v1.1 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -23,7 +23,7 @@
#include "env_validate.h"
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "MKS Robin Lite only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -27,7 +27,7 @@
#include "env_validate.h"
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "MKS Robin mini only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -23,7 +23,7 @@
#include "env_validate.h"
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "Anet ET4 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -23,7 +23,7 @@
#include "env_validate.h"
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "BIGTREE BTT002 V1.0 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -24,7 +24,7 @@
#define ALLOW_STM32DUINO
#include "env_validate.h"
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "LERDGE X only supports one hotend / E-stepper. Comment out this line to continue."
#endif

View file

@ -32,7 +32,7 @@
#define SRAM_EEPROM_EMULATION // Emulate the EEPROM using Backup SRAM
#endif
#if HOTENDS > 1 || E_STEPPERS > 1
#if HAS_MULTI_HOTEND || E_STEPPERS > 1
#error "RemRam only supports one hotend / E-stepper. Comment out this line to continue."
#endif