Skip to content

Commit 0f09554

Browse files
committed
πŸ§‘β€πŸ’» DWIN icon updates, etc.
1 parent 18b0dbb commit 0f09554

File tree

122 files changed

+282
-317
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+282
-317
lines changed

β€ŽMarlin/src/feature/pause.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ enum PauseMessage : char {
4848
PAUSE_MESSAGE_PARKING,
4949
PAUSE_MESSAGE_CHANGING,
5050
PAUSE_MESSAGE_WAITING,
51-
PAUSE_MESSAGE_UNLOAD,
5251
PAUSE_MESSAGE_INSERT,
5352
PAUSE_MESSAGE_LOAD,
53+
PAUSE_MESSAGE_UNLOAD,
5454
PAUSE_MESSAGE_PURGE,
5555
PAUSE_MESSAGE_OPTION,
5656
PAUSE_MESSAGE_RESUME,
57-
PAUSE_MESSAGE_STATUS,
5857
PAUSE_MESSAGE_HEAT,
59-
PAUSE_MESSAGE_HEATING
58+
PAUSE_MESSAGE_HEATING,
59+
PAUSE_MESSAGE_STATUS
6060
};
6161

6262
#if M600_PURGE_MORE_RESUMABLE

β€ŽMarlin/src/lcd/e3v2/common/dwin_color.h

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#define GetGColor(color) ((color >> 5) & 0x3F)
2828
#define GetBColor(color) ((color >> 0) & 0x1F)
2929

30+
// RGB565 colors: https://rgbcolorpicker.com/565
3031
#define COLOR_WHITE 0xFFFF
3132
#define COLOR_YELLOW RGB(0x1F,0x3F,0x00)
3233
#define COLOR_RED RGB(0x1F,0x00,0x00)

β€ŽMarlin/src/lcd/e3v2/common/dwin_set.h

+3-8
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,7 @@
2525
#define Language_English 1
2626
#define Language_Chinese 2
2727

28-
//#define USE_STOCK_DWIN_SET // Use the Creality stock DWIN_SET instead of Marlin's unified DWIN_SET by The-EG & thinkyhead
29-
#ifdef USE_STOCK_DWIN_SET
30-
#define ICON 9 // 9.ICO
31-
#else
32-
#define ICON 7 // 7.ICO
33-
#endif
28+
#define ICON 7 // 7.ICO
3429

3530
#ifndef CORP_WEBSITE
3631
#define CORP_WEBSITE WEBSITE_URL
@@ -82,7 +77,7 @@
8277
#define ICON_Motion 41
8378
#define ICON_WriteEEPROM 42
8479
#define ICON_ReadEEPROM 43
85-
#define ICON_ResumeEEPROM 44
80+
#define ICON_ResetEEPROM 44
8681
#define ICON_Info 45
8782

8883
#define ICON_SetEndTemp 46
@@ -144,7 +139,7 @@
144139
#define ICON_ProbeOffsetY ICON_StepY
145140
#define ICON_ProbeOffsetZ ICON_StepZ
146141
#define ICON_PIDNozzle ICON_SetEndTemp
147-
#define ICON_PIDbed ICON_SetBedTemp
142+
#define ICON_PIDBed ICON_SetBedTemp
148143
#define ICON_FWRetract ICON_StepE
149144
#define ICON_FWRetLength ICON_StepE
150145
#define ICON_FWRetSpeed ICON_Setspeed

β€ŽMarlin/src/lcd/e3v2/creality/dwin.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -905,7 +905,7 @@ void drawControlMenu() {
905905
#if ENABLED(EEPROM_SETTINGS)
906906
_TEMP_ICON(CONTROL_CASE_SAVE, ICON_WriteEEPROM, false);
907907
_TEMP_ICON(CONTROL_CASE_LOAD, ICON_ReadEEPROM, false);
908-
_TEMP_ICON(CONTROL_CASE_RESET, ICON_ResumeEEPROM, false);
908+
_TEMP_ICON(CONTROL_CASE_RESET, ICON_ResetEEPROM, false);
909909
#endif
910910
}
911911

@@ -2468,7 +2468,7 @@ void itemAdvBedPID(const uint8_t row) {
24682468
itemAreaCopy(145, 104, 167, 114, row, 27); // "PID"
24692469
#endif
24702470
}
2471-
drawMenuLine(row, ICON_PIDbed);
2471+
drawMenuLine(row, ICON_PIDBed);
24722472
}
24732473

24742474
#if ENABLED(POWER_LOSS_RECOVERY)

β€ŽMarlin/src/lcd/e3v2/jyersui/dwin.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -1158,7 +1158,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
11581158
#if ENABLED(ADVANCED_PAUSE_FEATURE)
11591159
case PREPARE_CHANGEFIL:
11601160
if (draw) {
1161-
drawMenuItem(row, ICON_ResumeEEPROM, GET_TEXT_F(MSG_FILAMENTCHANGE)
1161+
drawMenuItem(row, ICON_ResetEEPROM, GET_TEXT_F(MSG_FILAMENTCHANGE)
11621162
#if ENABLED(FILAMENT_LOAD_UNLOAD_GCODES)
11631163
, nullptr, true
11641164
#endif
@@ -1766,7 +1766,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
17661766
break;
17671767
case CHANGEFIL_CHANGE:
17681768
if (draw)
1769-
drawMenuItem(row, ICON_ResumeEEPROM, GET_TEXT_F(MSG_FILAMENTCHANGE));
1769+
drawMenuItem(row, ICON_ResetEEPROM, GET_TEXT_F(MSG_FILAMENTCHANGE));
17701770
else {
17711771
if (thermalManager.targetTooColdToExtrude(0))
17721772
popupHandler(Popup_ETemp);
@@ -3449,7 +3449,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
34493449
break;
34503450
case LEVELING_SETTINGS_PLANE:
34513451
if (draw)
3452-
drawMenuItem(row, ICON_ResumeEEPROM, F("Convert Mesh to Plane"));
3452+
drawMenuItem(row, ICON_ResetEEPROM, F("Convert Mesh to Plane"));
34533453
else {
34543454
if (mesh_conf.createPlaneFromMesh()) break;
34553455
gcode.process_subcommands_now(F("M420 S1"));
@@ -3594,7 +3594,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
35943594
#if ENABLED(AUTO_BED_LEVELING_UBL)
35953595
case LEVELING_M_UNDEF:
35963596
if (draw)
3597-
drawMenuItem(row, ICON_ResumeEEPROM, F("Clear Point Value"));
3597+
drawMenuItem(row, ICON_ResetEEPROM, F("Clear Point Value"));
35983598
else {
35993599
mesh_conf.manualValueUpdate(true);
36003600
redrawMenu(false);
@@ -3924,7 +3924,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
39243924
#if ENABLED(FILAMENT_LOAD_UNLOAD_GCODES)
39253925
case TUNE_CHANGEFIL:
39263926
if (draw)
3927-
drawMenuItem(row, ICON_ResumeEEPROM, GET_TEXT_F(MSG_FILAMENTCHANGE));
3927+
drawMenuItem(row, ICON_ResetEEPROM, GET_TEXT_F(MSG_FILAMENTCHANGE));
39283928
else
39293929
popupHandler(Popup_ConfFilChange);
39303930
break;

β€ŽMarlin/src/lcd/e3v2/proui/bedlevel_tools.cpp

+36-32
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,10 @@ bool drawing_mesh = false;
8989
struct linear_fit_data lsf_results;
9090
incremental_LSF_reset(&lsf_results);
9191
GRID_LOOP(x, y) {
92-
if (!isnan(bedlevel.z_values[x][y])) {
92+
const float z = bedlevel.z_values[x][y];
93+
if (!isnan(z)) {
9394
xy_pos_t rpos = { bedlevel.get_mesh_x(x), bedlevel.get_mesh_y(y) };
94-
incremental_LSF(&lsf_results, rpos, bedlevel.z_values[x][y]);
95+
incremental_LSF(&lsf_results, rpos, z);
9596
}
9697
}
9798

@@ -199,8 +200,8 @@ float BedLevelTools::getMinValue() {
199200
// Return 'true' if mesh is good and within LCD limits
200201
bool BedLevelTools::meshValidate() {
201202
GRID_LOOP(x, y) {
202-
const float v = bedlevel.z_values[x][y];
203-
if (isnan(v) || !WITHIN(v, Z_OFFSET_MIN, Z_OFFSET_MAX)) return false;
203+
const float z = bedlevel.z_values[x][y];
204+
if (isnan(z) || !WITHIN(z, Z_OFFSET_MIN, Z_OFFSET_MAX)) return false;
204205
}
205206
return true;
206207
}
@@ -232,46 +233,49 @@ bool BedLevelTools::meshValidate() {
232233
const auto end_x_px = start_x_px + cell_width_px - 1 - gridline_width;
233234
const auto start_y_px = padding_y_top + ((GRID_MAX_POINTS_Y) - y - 1) * cell_height_px;
234235
const auto end_y_px = start_y_px + cell_height_px - 1 - gridline_width;
235-
dwinDrawRectangle(1, // RGB565 colors: http://www.barth-dev.de/online/rgb565-color-picker/
236-
isnan(bedlevel.z_values[x][y]) ? COLOR_GREY : ( // gray if undefined
237-
(bedlevel.z_values[x][y] < 0 ?
238-
(uint16_t)round(0x1F * -bedlevel.z_values[x][y] / rmax) << 11 : // red if mesh point value is negative
239-
(uint16_t)round(0x3F * bedlevel.z_values[x][y] / rmax) << 5) | // green if mesh point value is positive
240-
_MIN(0x1F, (((uint8_t)abs(bedlevel.z_values[x][y]) / 10) * 4))), // + blue stepping for every mm
241-
start_x_px, start_y_px, end_x_px, end_y_px
236+
const float z = bedlevel.z_values[x][y];
237+
const uint16_t color = isnan(z) ? COLOR_GREY : ( // Gray if undefined
238+
(z < 0 ? uint16_t(round(0x1F * -z / rmax)) << 11 // Red for negative mesh point
239+
: uint16_t(round(0x3F * z / rmax)) << 5) // Green for positive mesh point
240+
| _MIN(0x1F, (uint8_t(abs(z) * 0.4))) // + Blue stepping for every mm
242241
);
243242

243+
dwinDrawRectangle(1, color, start_x_px, start_y_px, end_x_px, end_y_px);
244+
244245
safe_delay(10);
245246
LCD_SERIAL.flushTX();
246247

247248
// Draw value text on
249+
if (!viewer_print_value) continue;
250+
248251
const uint8_t fs = DWINUI::fontWidth(meshfont);
249-
if (viewer_print_value) {
250-
const int8_t offset_y = cell_height_px / 2 - fs;
251-
if (isnan(bedlevel.z_values[x][y])) { // undefined
252-
dwinDrawString(false, meshfont, COLOR_WHITE, COLOR_BG_BLUE, start_x_px + cell_width_px / 2 - 5, start_y_px + offset_y, F("X"));
253-
}
254-
else { // has value
255-
MString<12> msg;
256-
if ((GRID_MAX_POINTS_X) < TERN(TJC_DISPLAY, 8, 10))
257-
msg.set(p_float_t(abs(bedlevel.z_values[x][y]), 2));
258-
else
259-
msg.setf(F("%02i"), uint16_t(abs(bedlevel.z_values[x][y] - int16_t(bedlevel.z_values[x][y])) * 100));
260-
const int8_t offset_x = cell_width_px / 2 - (fs / 2) * msg.length() - 2;
261-
if ((GRID_MAX_POINTS_X) >= TERN(TJC_DISPLAY, 8, 10))
262-
dwinDrawString(false, meshfont, COLOR_WHITE, COLOR_BG_BLUE, start_x_px - 2 + offset_x, start_y_px + offset_y, F("."));
263-
dwinDrawString(false, meshfont, COLOR_WHITE, COLOR_BG_BLUE, start_x_px + 1 + offset_x, start_y_px + offset_y, msg);
264-
}
265-
safe_delay(10);
266-
LCD_SERIAL.flushTX();
252+
const int8_t offset_y = cell_height_px / 2 - fs;
253+
if (isnan(z)) { // undefined
254+
dwinDrawString(false, meshfont, COLOR_WHITE, COLOR_BG_BLUE, start_x_px + cell_width_px / 2 - 5, start_y_px + offset_y, F("X"));
267255
}
268-
}
256+
else { // has value
257+
MString<12> msg;
258+
constexpr bool is_wide = (GRID_MAX_POINTS_X) >= TERN(TJC_DISPLAY, 8, 10);
259+
if (is_wide)
260+
msg.setf(F("%02i"), uint16_t(z * 100) % 100);
261+
else
262+
msg.set(p_float_t(abs(z), 2));
263+
const int8_t offset_x = cell_width_px / 2 - (fs / 2) * msg.length() - 2;
264+
if (is_wide)
265+
dwinDrawString(false, meshfont, COLOR_WHITE, COLOR_BG_BLUE, start_x_px - 2 + offset_x, start_y_px + offset_y, F("."));
266+
dwinDrawString(false, meshfont, COLOR_WHITE, COLOR_BG_BLUE, start_x_px + 1 + offset_x, start_y_px + offset_y, msg);
267+
}
268+
269+
safe_delay(10);
270+
LCD_SERIAL.flushTX();
271+
272+
} // GRID_LOOP
269273
}
270274

271275
void BedLevelTools::setMeshViewerStatus() { // TODO: draw gradient with values as a legend instead
272276
float v_max = abs(getMaxValue()), v_min = abs(getMinValue()), rmax = _MAX(v_min, v_max), rmin = _MIN(v_min, v_max);
273-
if (rmax > 3e+10f) rmax = 0.0000001;
274-
if (rmin > 3e+10f) rmin = 0.0000001;
277+
if (rmax > 3e+10f) rmax = 0.0000001f;
278+
if (rmin > 3e+10f) rmin = 0.0000001f;
275279
ui.set_status(&MString<47>(F("Red "), p_float_t(-rmax, 3), F("..0.."), p_float_t(rmin, 3), F(" Green")));
276280
drawing_mesh = false;
277281
}

β€ŽMarlin/src/lcd/e3v2/proui/dwin.cpp

+13-20
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ void ICON_Button(const bool selected, const int iconid, const frame_rect_t &ico,
336336
//
337337
void ICON_Print() {
338338
constexpr frame_rect_t ico = { 17, 110, 110, 100 };
339-
constexpr text_info_t txt = { 1, { 405, TERN(USE_STOCK_DWIN_SET, 446, 447) }, 27, 15 };
339+
constexpr text_info_t txt = { 1, { 405, 447 }, 27, 15 };
340340
ICON_Button(select_page.now == PAGE_PRINT, ICON_Print_0, ico, txt, GET_TEXT_F(MSG_BUTTON_PRINT));
341341
}
342342

@@ -345,7 +345,7 @@ void ICON_Print() {
345345
//
346346
void ICON_Prepare() {
347347
constexpr frame_rect_t ico = { 145, 110, 110, 100 };
348-
constexpr text_info_t txt = { 31, { 405, TERN(USE_STOCK_DWIN_SET, 446, 447) }, 27, 15 };
348+
constexpr text_info_t txt = { 31, { 405, 447 }, 27, 15 };
349349
ICON_Button(select_page.now == PAGE_PREPARE, ICON_Prepare_0, ico, txt, GET_TEXT_F(MSG_PREPARE));
350350
}
351351

@@ -354,7 +354,7 @@ void ICON_Prepare() {
354354
//
355355
void ICON_Control() {
356356
constexpr frame_rect_t ico = { 17, 226, 110, 100 };
357-
constexpr text_info_t txt = { 61, { 405, TERN(USE_STOCK_DWIN_SET, 446, 447) }, 27, 15 };
357+
constexpr text_info_t txt = { 61, { 405, 447 }, 27, 15 };
358358
ICON_Button(select_page.now == PAGE_CONTROL, ICON_Control_0, ico, txt, GET_TEXT_F(MSG_CONTROL));
359359
}
360360

@@ -363,7 +363,7 @@ void ICON_Control() {
363363
//
364364
void ICON_AdvSettings() {
365365
constexpr frame_rect_t ico = { 145, 226, 110, 100 };
366-
constexpr text_info_t txt = { 91, { 405, TERN(USE_STOCK_DWIN_SET, 446, 447) }, 27, 15 };
366+
constexpr text_info_t txt = { 91, { 405, 447 }, 27, 15 };
367367
ICON_Button(select_page.now == PAGE_ADVANCE, ICON_Info_0, ico, txt, GET_TEXT_F(MSG_BUTTON_ADVANCED));
368368
}
369369

@@ -372,7 +372,7 @@ void ICON_AdvSettings() {
372372
//
373373
void ICON_Tune() {
374374
constexpr frame_rect_t ico = { 8, 232, 80, 100 };
375-
constexpr text_info_t txt = { 121, { 405, TERN(USE_STOCK_DWIN_SET, 446, 447) }, 27, 15 };
375+
constexpr text_info_t txt = { 121, { 405, 447 }, 27, 15 };
376376
ICON_Button(select_print.now == PRINT_SETUP, ICON_Setup_0, ico, txt, GET_TEXT_F(MSG_TUNE));
377377
}
378378

@@ -381,7 +381,7 @@ void ICON_Tune() {
381381
//
382382
void ICON_Pause() {
383383
constexpr frame_rect_t ico = { 96, 232, 80, 100 };
384-
constexpr text_info_t txt = { 181, { 405, TERN(USE_STOCK_DWIN_SET, 446, 447) }, 27, 15 };
384+
constexpr text_info_t txt = { 181, { 405, 447 }, 27, 15 };
385385
ICON_Button(select_print.now == PRINT_PAUSE_RESUME, ICON_Pause_0, ico, txt, GET_TEXT_F(MSG_BUTTON_PAUSE));
386386
}
387387

@@ -390,7 +390,7 @@ void ICON_Pause() {
390390
//
391391
void ICON_Resume() {
392392
constexpr frame_rect_t ico = { 96, 232, 80, 100 };
393-
constexpr text_info_t txt = { 1, { 405, TERN(USE_STOCK_DWIN_SET, 446, 447) }, 27, 15 };
393+
constexpr text_info_t txt = { 1, { 405, 447 }, 27, 15 };
394394
ICON_Button(select_print.now == PRINT_PAUSE_RESUME, ICON_Continue_0, ico, txt, GET_TEXT_F(MSG_BUTTON_RESUME));
395395
}
396396

@@ -399,7 +399,7 @@ void ICON_Resume() {
399399
//
400400
void ICON_Stop() {
401401
constexpr frame_rect_t ico = { 184, 232, 80, 100 };
402-
constexpr text_info_t txt = { 151, { 405, TERN(USE_STOCK_DWIN_SET, 446, 447) }, 27, 12 };
402+
constexpr text_info_t txt = { 151, { 405, 447 }, 27, 12 };
403403
ICON_Button(select_print.now == PRINT_STOP, ICON_Stop_0, ico, txt, GET_TEXT_F(MSG_BUTTON_STOP));
404404
}
405405

@@ -482,8 +482,7 @@ void dwinResetStatusLine() {
482482
// Djb2 hash algorithm
483483
uint32_t getHash(char * str) {
484484
uint32_t hash = 5381;
485-
char c;
486-
while ((c = *str++)) hash = ((hash << 5) + hash) + c; /* hash * 33 + c */
485+
for (char c; (c = *str++);) hash = ((hash << 5) + hash) + c; /* hash * 33 + c */
487486
return hash;
488487
}
489488

@@ -1943,13 +1942,7 @@ void dwinRedrawScreen() {
19431942
case PAUSE_MESSAGE_INSERT: dwinPopupPause(GET_TEXT_F(MSG_FILAMENT_CHANGE_INSERT), BTN_Continue); break;
19441943
case PAUSE_MESSAGE_LOAD: dwinPopupPause(GET_TEXT_F(MSG_FILAMENT_CHANGE_LOAD)); break;
19451944
case PAUSE_MESSAGE_UNLOAD: dwinPopupPause(GET_TEXT_F(MSG_FILAMENT_CHANGE_UNLOAD)); break; // Unload of pause and Unload of M702
1946-
case PAUSE_MESSAGE_PURGE:
1947-
#if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
1948-
dwinPopupPause(GET_TEXT_F(MSG_FILAMENT_CHANGE_CONT_PURGE));
1949-
#else
1950-
dwinPopupPause(GET_TEXT_F(MSG_FILAMENT_CHANGE_PURGE));
1951-
#endif
1952-
break;
1945+
case PAUSE_MESSAGE_PURGE: dwinPopupPause(GET_TEXT_F(TERN(ADVANCED_PAUSE_CONTINUOUS_PURGE, MSG_FILAMENT_CHANGE_CONT_PURGE, MSG_FILAMENT_CHANGE_PURGE))); break;
19531946
case PAUSE_MESSAGE_OPTION: gotoFilamentPurge(); break;
19541947
case PAUSE_MESSAGE_RESUME: dwinPopupPause(GET_TEXT_F(MSG_FILAMENT_CHANGE_RESUME)); break;
19551948
case PAUSE_MESSAGE_HEAT: dwinPopupPause(GET_TEXT_F(MSG_FILAMENT_CHANGE_HEAT), BTN_Continue); break;
@@ -3141,7 +3134,7 @@ void drawControlMenu() {
31413134
#if ENABLED(EEPROM_SETTINGS)
31423135
MENU_ITEM(ICON_WriteEEPROM, MSG_STORE_EEPROM, onDrawWriteEeprom, writeEEPROM);
31433136
MENU_ITEM(ICON_ReadEEPROM, MSG_LOAD_EEPROM, onDrawReadEeprom, readEEPROM);
3144-
MENU_ITEM(ICON_ResumeEEPROM, MSG_RESTORE_DEFAULTS, onDrawResetEeprom, resetEEPROM);
3137+
MENU_ITEM(ICON_ResetEEPROM, MSG_RESTORE_DEFAULTS, onDrawResetEeprom, resetEEPROM);
31453138
#endif
31463139
MENU_ITEM(ICON_Reboot, MSG_RESET_PRINTER, onDrawMenuItem, rebootPrinter);
31473140
MENU_ITEM(ICON_Info, MSG_INFO_SCREEN, onDrawInfoSubMenu, gotoInfoMenu);
@@ -3957,8 +3950,8 @@ void drawStepsMenu() {
39573950
if (SET_MENU(zOffsetWizMenu, MSG_PROBE_WIZARD, 4)) {
39583951
BACK_ITEM(drawPrepareMenu);
39593952
MENU_ITEM(ICON_Homing, MSG_AUTO_HOME, onDrawMenuItem, autoHome);
3960-
MENU_ITEM_F(ICON_MoveZ0, "Move Z to Home", onDrawMenuItem, setMoveZto0);
3961-
EDIT_ITEM(ICON_Zoffset, MSG_ZPROBE_ZOFFSET, onDrawPFloat2Menu, setZOffset, &BABY_Z_VAR);
3953+
MENU_ITEM(ICON_MoveZ0, MSG_MOVE_NOZZLE_TO_BED, onDrawMenuItem, setMoveZto0);
3954+
EDIT_ITEM(ICON_Zoffset, MSG_XATC_UPDATE_Z_OFFSET, onDrawPFloat2Menu, setZOffset, &BABY_Z_VAR);
39623955
}
39633956
updateMenu(zOffsetWizMenu);
39643957
if (!axis_is_trusted(Z_AXIS)) LCD_MESSAGE_F("WARNING: Z position unknown, move Z to home");

0 commit comments

Comments
Β (0)