Skip to content

Commit d5510ea

Browse files
committed
🎨 General cleanup of extui/dgus
In relation to #22121
1 parent 82ac7da commit d5510ea

11 files changed

+406
-458
lines changed

Marlin/src/lcd/extui/dgus/DGUSScreenHandler.cpp

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ void DGUSScreenHandler::DGUSLCD_SendStringToDisplayPGM(DGUS_VP_Variable &var) {
180180
float valuesend = 0;
181181
switch (var.VP) {
182182
default: return;
183-
#if HOTENDS >= 1
183+
#if HAS_HOTEND
184184
case VP_E0_PID_P: valuesend = value; break;
185185
case VP_E0_PID_I: valuesend = unscalePID_i(value); break;
186186
case VP_E0_PID_D: valuesend = unscalePID_d(value); break;
@@ -393,7 +393,7 @@ void DGUSScreenHandler::HandleTemperatureChanged(DGUS_VP_Variable &var, void *va
393393

394394
switch (var.VP) {
395395
default: return;
396-
#if HOTENDS >= 1
396+
#if HAS_HOTEND
397397
case VP_T_E0_Set:
398398
NOMORE(newvalue, HEATER_0_MAXTEMP);
399399
thermalManager.setTargetHotend(newvalue, 0);
@@ -427,10 +427,8 @@ void DGUSScreenHandler::HandleFlowRateChanged(DGUS_VP_Variable &var, void *val_p
427427
uint8_t target_extruder;
428428
switch (var.VP) {
429429
default: return;
430-
#if HOTENDS >= 1
431-
case VP_Flowrate_E0: target_extruder = 0; break;
432-
#endif
433-
#if HOTENDS >= 2
430+
case VP_Flowrate_E0: target_extruder = 0; break;
431+
#if HAS_MULTI_EXTRUDER
434432
case VP_Flowrate_E1: target_extruder = 1; break;
435433
#endif
436434
}
@@ -450,11 +448,11 @@ void DGUSScreenHandler::HandleManualExtrude(DGUS_VP_Variable &var, void *val_ptr
450448
ExtUI::extruder_t target_extruder;
451449

452450
switch (var.VP) {
453-
#if HOTENDS >= 1
451+
#if HAS_HOTEND
454452
case VP_MOVE_E0: target_extruder = ExtUI::extruder_t::E0; break;
455-
#endif
456-
#if HOTENDS >= 2
457-
case VP_MOVE_E1: target_extruder = ExtUI::extruder_t::E1; break;
453+
#if HAS_MULTI_EXTRUDER
454+
case VP_MOVE_E1: target_extruder = ExtUI::extruder_t::E1; break;
455+
#endif
458456
#endif
459457
default: return;
460458
}
@@ -526,11 +524,11 @@ void DGUSScreenHandler::HandleStepPerMMExtruderChanged(DGUS_VP_Variable &var, vo
526524
ExtUI::extruder_t extruder;
527525
switch (var.VP) {
528526
default: return;
529-
#if HOTENDS >= 1
527+
#if HAS_EXTRUDERS
530528
case VP_E0_STEP_PER_MM: extruder = ExtUI::extruder_t::E0; break;
531-
#endif
532-
#if HOTENDS >= 2
533-
case VP_E1_STEP_PER_MM: extruder = ExtUI::extruder_t::E1; break;
529+
#if HAS_MULTI_EXTRUDER
530+
case VP_E1_STEP_PER_MM: extruder = ExtUI::extruder_t::E1; break;
531+
#endif
534532
#endif
535533
}
536534
DEBUG_ECHOLNPAIR_F("value:", value);
@@ -548,7 +546,7 @@ void DGUSScreenHandler::HandleStepPerMMExtruderChanged(DGUS_VP_Variable &var, vo
548546
switch (var.VP) {
549547
default: break;
550548
#if ENABLED(PIDTEMP)
551-
#if HOTENDS >= 1
549+
#if HAS_HOTEND
552550
case VP_PID_AUTOTUNE_E0: // Autotune Extruder 0
553551
sprintf_P(buf, PSTR("M303 E%d C5 S210 U1"), ExtUI::extruder_t::E0);
554552
break;
@@ -598,17 +596,17 @@ void DGUSScreenHandler::HandleHeaterControl(DGUS_VP_Variable &var, void *val_ptr
598596

599597
uint8_t preheat_temp = 0;
600598
switch (var.VP) {
601-
#if HOTENDS >= 1
599+
#if HAS_HOTEND
602600
case VP_E0_CONTROL:
601+
#if HOTENDS >= 2
602+
case VP_E1_CONTROL:
603+
#if HOTENDS >= 3
604+
case VP_E2_CONTROL:
605+
#endif
606+
#endif
607+
preheat_temp = PREHEAT_1_TEMP_HOTEND;
608+
break;
603609
#endif
604-
#if HOTENDS >= 2
605-
case VP_E1_CONTROL:
606-
#endif
607-
#if HOTENDS >= 3
608-
case VP_E2_CONTROL:
609-
#endif
610-
preheat_temp = PREHEAT_1_TEMP_HOTEND;
611-
break;
612610

613611
case VP_BED_CONTROL:
614612
preheat_temp = PREHEAT_1_TEMP_BED;
@@ -660,7 +658,7 @@ void DGUSScreenHandler::HandleHeaterControl(DGUS_VP_Variable &var, void *val_ptr
660658

661659
switch (var.VP) {
662660
default: return;
663-
#if HOTENDS >= 1
661+
#if HAS_HOTEND
664662
case VP_E0_BED_PREHEAT:
665663
thermalManager.setTargetHotend(e_temp, 0);
666664
TERN_(HAS_HEATED_BED, thermalManager.setTargetBed(bed_temp));

Marlin/src/lcd/extui/dgus/DGUSScreenHandler.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,21 @@ inline uint16_t swap16(const uint16_t value) { return (value & 0xFFU) << 8U | (v
5656
#endif
5757

5858
extern DGUSScreenHandler ScreenHandler;
59+
60+
// Helper to define a DGUS_VP_Variable for common use-cases.
61+
#define VPHELPER(VPADR, VPADRVAR, RXFPTR, TXFPTR) { \
62+
.VP = VPADR, \
63+
.memadr = VPADRVAR, \
64+
.size = sizeof(VPADRVAR), \
65+
.set_by_display_handler = RXFPTR, \
66+
.send_to_display_handler = TXFPTR \
67+
}
68+
69+
// Helper to define a DGUS_VP_Variable when the size of the var cannot be determined automatically (e.g., a string)
70+
#define VPHELPER_STR(VPADR, VPADRVAR, STRLEN, RXFPTR, TXFPTR) { \
71+
.VP = VPADR, \
72+
.memadr = VPADRVAR, \
73+
.size = STRLEN, \
74+
.set_by_display_handler = RXFPTR, \
75+
.send_to_display_handler = TXFPTR \
76+
}

0 commit comments

Comments
 (0)