Skip to content

Commit e90c213

Browse files
committed
🔧 Add DGUS_LCD_UI RELOADED conditions
1 parent cc31537 commit e90c213

File tree

7 files changed

+41
-87
lines changed

7 files changed

+41
-87
lines changed

Marlin/src/inc/SanityCheck.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4409,6 +4409,8 @@ static_assert(_PLUS_TEST(4), "HOMING_FEEDRATE_MM_M values must be positive.");
44094409
#error "DGUS_LCD_UI RELOADED requires BABYSTEP_ALWAYS_AVAILABLE."
44104410
#elif DISABLED(BABYSTEP_ZPROBE_OFFSET)
44114411
#error "DGUS_LCD_UI RELOADED requires BABYSTEP_ZPROBE_OFFSET."
4412+
#elif ENABLED(HOME_AFTER_DEACTIVATE)
4413+
#error "DGUS_LCD_UI RELOADED requires HOME_AFTER_DEACTIVATE to be disabled."
44124414
#elif ENABLED(AUTO_BED_LEVELING_UBL) && DISABLED(UBL_SAVE_ACTIVE_ON_M500)
44134415
#warning "Without UBL_SAVE_ACTIVE_ON_M500, your mesh will not be saved when using the touchscreen."
44144416
#endif

Marlin/src/lcd/extui/dgus_reloaded/DGUSDisplay.cpp

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,7 @@ void DGUSDisplay::WriteStringPGM(uint16_t addr, const void* data_ptr, uint8_t si
125125

126126
const char* data = static_cast<const char*>(data_ptr);
127127
size_t len = strlen_P(data);
128-
uint8_t left_spaces = 0;
129-
uint8_t right_spaces = 0;
128+
uint8_t left_spaces = 0, right_spaces = 0;
130129

131130
if (len < size) {
132131
if (!len) {
@@ -147,15 +146,9 @@ void DGUSDisplay::WriteStringPGM(uint16_t addr, const void* data_ptr, uint8_t si
147146
len = size;
148147
}
149148

150-
while (left_spaces--) {
151-
LCD_SERIAL.write(' ');
152-
}
153-
while (len--) {
154-
LCD_SERIAL.write(pgm_read_byte(data++));
155-
}
156-
while (right_spaces--) {
157-
LCD_SERIAL.write(use_space ? ' ' : '\0');
158-
}
149+
while (left_spaces--) LCD_SERIAL.write(' ');
150+
while (len--) LCD_SERIAL.write(pgm_read_byte(data++));
151+
while (right_spaces--) LCD_SERIAL.write(use_space ? ' ' : '\0');
159152
}
160153

161154
void DGUSDisplay::ReadVersions() {
@@ -340,11 +333,13 @@ void DGUSDisplay::ProcessRx() {
340333
}
341334

342335
size_t DGUSDisplay::GetFreeTxBuffer() {
343-
#ifdef LCD_SERIAL_GET_TX_BUFFER_FREE
344-
return LCD_SERIAL_GET_TX_BUFFER_FREE();
345-
#else
346-
return SIZE_MAX;
347-
#endif
336+
return (
337+
#ifdef LCD_SERIAL_GET_TX_BUFFER_FREE
338+
LCD_SERIAL_GET_TX_BUFFER_FREE()
339+
#else
340+
SIZE_MAX
341+
#endif
342+
);
348343
}
349344

350345
void DGUSDisplay::FlushTx() {

Marlin/src/lcd/extui/dgus_reloaded/DGUSRxHandler.cpp

Lines changed: 21 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ void DGUSRxHandler::Steppers(DGUS_VP &vp, void *data_ptr) {
387387
void DGUSRxHandler::ZOffset(DGUS_VP &vp, void *data_ptr) {
388388
UNUSED(vp);
389389

390-
if (!ExtUI::isAxisPositionKnown(ExtUI::Z)) {
390+
if (TERN0(NO_MOTION_BEFORE_HOMING, !ExtUI::isAxisPositionKnown(ExtUI::Z))) {
391391
dgus_screen_handler.SetStatusMessage(GET_TEXT_F(DGUS_MSG_HOMING_REQUIRED));
392392
return;
393393
}
@@ -411,7 +411,7 @@ void DGUSRxHandler::ZOffset(DGUS_VP &vp, void *data_ptr) {
411411
void DGUSRxHandler::ZOffsetStep(DGUS_VP &vp, void *data_ptr) {
412412
UNUSED(vp);
413413

414-
if (!ExtUI::isAxisPositionKnown(ExtUI::Z)) {
414+
if (TERN0(NO_MOTION_BEFORE_HOMING, !ExtUI::isAxisPositionKnown(ExtUI::Z))) {
415415
dgus_screen_handler.SetStatusMessage(GET_TEXT_F(DGUS_MSG_HOMING_REQUIRED));
416416
return;
417417
}
@@ -525,7 +525,7 @@ void DGUSRxHandler::Probe(DGUS_VP &vp, void *data_ptr) {
525525
#else
526526
queue.enqueue_now(F("G29"));
527527
#endif
528-
queue.enqueue_now_P(DGUS_CMD_EEPROM_SAVE);
528+
queue.enqueue_now(F("M500"));
529529
}
530530

531531
void DGUSRxHandler::DisableABL(DGUS_VP &vp, void *data_ptr) {
@@ -646,18 +646,12 @@ void DGUSRxHandler::Move(DGUS_VP &vp, void *data_ptr) {
646646

647647
switch (vp.addr) {
648648
default: return;
649-
case DGUS_Addr::MOVE_SetX:
650-
axis = ExtUI::X;
651-
break;
652-
case DGUS_Addr::MOVE_SetY:
653-
axis = ExtUI::Y;
654-
break;
655-
case DGUS_Addr::MOVE_SetZ:
656-
axis = ExtUI::Z;
657-
break;
649+
case DGUS_Addr::MOVE_SetX: axis = ExtUI::X; break;
650+
case DGUS_Addr::MOVE_SetY: axis = ExtUI::Y; break;
651+
case DGUS_Addr::MOVE_SetZ: axis = ExtUI::Z; break;
658652
}
659653

660-
if (!ExtUI::isAxisPositionKnown(axis)) {
654+
if (TERN0(NO_MOTION_BEFORE_HOMING, !ExtUI::isAxisPositionKnown(axis))) {
661655
dgus_screen_handler.SetStatusMessage(GET_TEXT_F(DGUS_MSG_HOMING_REQUIRED));
662656
return;
663657
}
@@ -671,49 +665,27 @@ void DGUSRxHandler::MoveStep(DGUS_VP &vp, void *data_ptr) {
671665
UNUSED(vp);
672666

673667
float offset;
674-
675668
switch (dgus_screen_handler.move_steps) {
676669
default: return;
677-
case DGUS_Data::StepSize::MM10:
678-
offset = 10.0f;
679-
break;
680-
case DGUS_Data::StepSize::MM1:
681-
offset = 1.0f;
682-
break;
683-
case DGUS_Data::StepSize::MMP1:
684-
offset = 0.1f;
685-
break;
670+
case DGUS_Data::StepSize::MM10: offset = 10.0f; break;
671+
case DGUS_Data::StepSize::MM1: offset = 1.0f; break;
672+
case DGUS_Data::StepSize::MMP1: offset = 0.1f; break;
686673
}
687674

688675
const DGUS_Data::MoveDirection direction = (DGUS_Data::MoveDirection)((uint8_t*)data_ptr)[1];
689676
ExtUI::axis_t axis;
690677

691678
switch (direction) {
692679
default: return;
693-
case DGUS_Data::MoveDirection::XP:
694-
axis = ExtUI::X;
695-
break;
696-
case DGUS_Data::MoveDirection::XM:
697-
axis = ExtUI::X;
698-
offset = -offset;
699-
break;
700-
case DGUS_Data::MoveDirection::YP:
701-
axis = ExtUI::Y;
702-
break;
703-
case DGUS_Data::MoveDirection::YM:
704-
axis = ExtUI::Y;
705-
offset = -offset;
706-
break;
707-
case DGUS_Data::MoveDirection::ZP:
708-
axis = ExtUI::Z;
709-
break;
710-
case DGUS_Data::MoveDirection::ZM:
711-
axis = ExtUI::Z;
712-
offset = -offset;
713-
break;
680+
case DGUS_Data::MoveDirection::XM: offset = -offset;
681+
case DGUS_Data::MoveDirection::XP: axis = ExtUI::X; break;
682+
case DGUS_Data::MoveDirection::YM: offset = -offset;
683+
case DGUS_Data::MoveDirection::YP: axis = ExtUI::Y; break;
684+
case DGUS_Data::MoveDirection::ZM: offset = -offset;
685+
case DGUS_Data::MoveDirection::ZP: axis = ExtUI::Z; break;
714686
}
715687

716-
if (!ExtUI::isAxisPositionKnown(axis)) {
688+
if (TERN0(NO_MOTION_BEFORE_HOMING, !ExtUI::isAxisPositionKnown(axis))) {
717689
dgus_screen_handler.SetStatusMessage(GET_TEXT_F(DGUS_MSG_HOMING_REQUIRED));
718690
return;
719691
}
@@ -727,7 +699,6 @@ void DGUSRxHandler::MoveSetStep(DGUS_VP &vp, void *data_ptr) {
727699
UNUSED(vp);
728700

729701
const DGUS_Data::StepSize size = (DGUS_Data::StepSize)((uint8_t*)data_ptr)[1];
730-
731702
dgus_screen_handler.move_steps = size;
732703

733704
dgus_screen_handler.TriggerFullUpdate();
@@ -746,9 +717,7 @@ void DGUSRxHandler::GcodeExecute(DGUS_VP &vp, void *data_ptr) {
746717
UNUSED(vp);
747718
UNUSED(data_ptr);
748719

749-
if (!strlen(dgus_screen_handler.gcode)) {
750-
return;
751-
}
720+
if (!strlen(dgus_screen_handler.gcode)) return;
752721

753722
if (!dgus_screen_handler.IsPrinterIdle()) {
754723
dgus_screen_handler.SetStatusMessage(GET_TEXT_F(DGUS_MSG_BUSY));
@@ -765,17 +734,15 @@ void DGUSRxHandler::ResetEEPROM(DGUS_VP &vp, void *data_ptr) {
765734

766735
const DGUS_Data::Popup result = (DGUS_Data::Popup)((uint8_t*)data_ptr)[1];
767736

768-
if (result != DGUS_Data::Popup::CONFIRMED) {
769-
return;
770-
}
737+
if (result != DGUS_Data::Popup::CONFIRMED) return;
771738

772739
if (!dgus_screen_handler.IsPrinterIdle()) {
773740
dgus_screen_handler.SetStatusMessage(GET_TEXT_F(DGUS_MSG_BUSY));
774741
return;
775742
}
776743

777744
queue.enqueue_now(F("M502"));
778-
queue.enqueue_now_P(DGUS_CMD_EEPROM_SAVE);
745+
queue.enqueue_now(F("M500"));
779746
}
780747

781748
void DGUSRxHandler::SettingsExtra(DGUS_VP &vp, void *data_ptr) {
@@ -908,7 +875,7 @@ void DGUSRxHandler::PIDRun(DGUS_VP &vp, void *data_ptr) {
908875
dgus_screen_handler.ShowWaitScreen(GET_TEXT_F(DGUS_MSG_PID_AUTOTUNING), DGUS_Screen::PID);
909876

910877
queue.enqueue_one_now(buffer);
911-
queue.enqueue_now_P(DGUS_CMD_EEPROM_SAVE);
878+
queue.enqueue_now(F("M500"));
912879
}
913880

914881
#if ENABLED(POWER_LOSS_RECOVERY)

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,6 @@ bool DGUSScreenHandler::leveling_active = false;
6969
millis_t DGUSScreenHandler::status_expire = 0;
7070
millis_t DGUSScreenHandler::eeprom_save = 0;
7171

72-
const char DGUS_MSG_UNDEF[] PROGMEM = "-";
73-
74-
const char DGUS_CMD_HOME[] PROGMEM = "G28",
75-
DGUS_CMD_EEPROM_SAVE[] PROGMEM = "M500";
76-
7772
void DGUSScreenHandler::Init() {
7873
dgus_display.Init();
7974

@@ -146,7 +141,7 @@ void DGUSScreenHandler::Loop() {
146141

147142
if (eeprom_save > 0 && ELAPSED(ms, eeprom_save) && IsPrinterIdle()) {
148143
eeprom_save = 0;
149-
queue.enqueue_now_P(DGUS_CMD_EEPROM_SAVE);
144+
queue.enqueue_now(F("M500"));
150145
return;
151146
}
152147

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,3 @@ class DGUSScreenHandler {
141141
};
142142

143143
extern DGUSScreenHandler dgus_screen_handler;
144-
145-
extern const char DGUS_MSG_UNDEF[];
146-
147-
extern const char DGUS_CMD_HOME[],
148-
DGUS_CMD_EEPROM_SAVE[];

Marlin/src/lcd/extui/dgus_reloaded/DGUSSetupHandler.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ bool DGUSSetupHandler::LevelingMenu() {
8282

8383
dgus_screen_handler.ShowWaitScreen(GET_TEXT_F(DGUS_MSG_HOMING), DGUS_Screen::LEVELING_MENU);
8484

85-
queue.enqueue_now_P(DGUS_CMD_HOME);
85+
queue.enqueue_now(F("G28"));
8686

8787
return false;
8888
}
@@ -101,7 +101,7 @@ bool DGUSSetupHandler::LevelingManual() {
101101

102102
dgus_screen_handler.ShowWaitScreen(GET_TEXT_F(DGUS_MSG_HOMING), DGUS_Screen::LEVELING_MANUAL);
103103

104-
queue.enqueue_now_P(DGUS_CMD_HOME);
104+
queue.enqueue_now(F("G28"));
105105

106106
return false;
107107
}
@@ -130,7 +130,7 @@ bool DGUSSetupHandler::LevelingOffset() {
130130

131131
dgus_screen_handler.ShowWaitScreen(GET_TEXT_F(DGUS_MSG_HOMING), DGUS_Screen::LEVELING_OFFSET);
132132

133-
queue.enqueue_now_P(DGUS_CMD_HOME);
133+
queue.enqueue_now(F("G28"));
134134

135135
return false;
136136
}

Marlin/src/lcd/extui/dgus_reloaded/DGUSTxHandler.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,7 @@ void DGUSTxHandler::PrintTime(DGUS_VP &vp) {
522522

523523
dgus_display.WriteString((uint16_t)vp.addr, buffer, vp.size);
524524
#else
525-
dgus_display.WriteStringPGM((uint16_t)vp.addr, DGUS_MSG_UNDEF, vp.size);
525+
dgus_display.WriteString((uint16_t)vp.addr, F("-"), vp.size);
526526
#endif
527527
}
528528

@@ -533,7 +533,7 @@ void DGUSTxHandler::LongestPrint(DGUS_VP &vp) {
533533

534534
dgus_display.WriteString((uint16_t)vp.addr, buffer, vp.size);
535535
#else
536-
dgus_display.WriteStringPGM((uint16_t)vp.addr, DGUS_MSG_UNDEF, vp.size);
536+
dgus_display.WriteString((uint16_t)vp.addr, F("-"), vp.size);
537537
#endif
538538
}
539539

@@ -544,7 +544,7 @@ void DGUSTxHandler::FilamentUsed(DGUS_VP &vp) {
544544

545545
dgus_display.WriteString((uint16_t)vp.addr, buffer, vp.size);
546546
#else
547-
dgus_display.WriteStringPGM((uint16_t)vp.addr, DGUS_MSG_UNDEF, vp.size);
547+
dgus_display.WriteString((uint16_t)vp.addr, F("-"), vp.size);
548548
#endif
549549
}
550550

0 commit comments

Comments
 (0)