Skip to content

Commit c9c49c4

Browse files
mriscoctomek2k1
authored andcommitted
1 parent f7947cb commit c9c49c4

File tree

3 files changed

+108
-47
lines changed

3 files changed

+108
-47
lines changed

Marlin/src/lcd/e3v2/proui/dwin.cpp

+101-38
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,37 @@
3131

3232
#if ENABLED(DWIN_LCD_PROUI)
3333

34+
#if DISABLED(LIMITED_MAX_FR_EDITING)
35+
#warning "LIMITED_MAX_FR_EDITING is recommended with ProUI."
36+
#endif
37+
#if DISABLED(LIMITED_MAX_ACCEL_EDITING)
38+
#warning "LIMITED_MAX_ACCEL_EDITING is recommended with ProUI."
39+
#endif
40+
#if ENABLED(CLASSIC_JERK) && DISABLED(LIMITED_JERK_EDITING)
41+
#warning "LIMITED_JERK_EDITING is recommended with ProUI."
42+
#endif
43+
#if DISABLED(INDIVIDUAL_AXIS_HOMING_SUBMENU)
44+
#warning "INDIVIDUAL_AXIS_HOMING_SUBMENU is recommended with ProUI."
45+
#endif
46+
#if DISABLED(LCD_SET_PROGRESS_MANUALLY)
47+
#warning "LCD_SET_PROGRESS_MANUALLY is recommended with ProUI."
48+
#endif
49+
#if DISABLED(STATUS_MESSAGE_SCROLLING)
50+
#warning "STATUS_MESSAGE_SCROLLING is recommended with ProUI."
51+
#endif
52+
#if DISABLED(BAUD_RATE_GCODE)
53+
#warning "BAUD_RATE_GCODE is recommended with ProUI."
54+
#endif
55+
#if DISABLED(SOUND_MENU_ITEM)
56+
#warning "SOUND_MENU_ITEM is recommended with ProUI."
57+
#endif
58+
#if DISABLED(PRINTCOUNTER)
59+
#warning "PRINTCOUNTER is recommended with ProUI."
60+
#endif
61+
#if HAS_MESH && DISABLED(MESH_EDIT_MENU)
62+
#warning "MESH_EDIT_MENU is recommended with ProUI."
63+
#endif
64+
3465
#include "dwin.h"
3566
#include "menus.h"
3667
#include "dwin_popup.h"
@@ -68,7 +99,7 @@
6899
#define HAS_ONESTEP_LEVELING 1
69100
#endif
70101

71-
#if HAS_MESH || HAS_ONESTEP_LEVELING
102+
#if HAS_MESH || (HAS_LEVELING && HAS_ZOFFSET_ITEM)
72103
#include "../../../feature/bedlevel/bedlevel.h"
73104
#include "bedlevel_tools.h"
74105
#endif
@@ -165,7 +196,12 @@
165196
#define DWIN_SCROLL_UPDATE_INTERVAL SEC_TO_MS(2)
166197
#define DWIN_REMAIN_TIME_UPDATE_INTERVAL SEC_TO_MS(20)
167198

168-
#define BABY_Z_VAR TERN(HAS_BED_PROBE, probe.offset.z, HMI_data.ManualZOffset)
199+
#if HAS_MESH
200+
#define BABY_Z_VAR TERN(HAS_BED_PROBE, probe.offset.z, HMI_data.ManualZOffset)
201+
#else
202+
float z_offset = 0;
203+
#define BABY_Z_VAR z_offset
204+
#endif
169205

170206
// Structs
171207
HMI_value_t HMI_value;
@@ -220,7 +256,13 @@ constexpr float max_acceleration_edit_values[] =
220256
;
221257

222258
#if HAS_CLASSIC_JERK
223-
constexpr float max_jerk_edit_values[] = MAX_JERK_EDIT_VALUES;
259+
constexpr float max_jerk_edit_values[] =
260+
#ifdef MAX_JERK_EDIT_VALUES
261+
MAX_JERK_EDIT_VALUES
262+
#else
263+
{ DEFAULT_XJERK * 2, DEFAULT_YJERK * 2, DEFAULT_ZJERK * 2, DEFAULT_EJERK * 2 }
264+
#endif
265+
;
224266
#endif
225267

226268
static uint8_t _percent_done = 0;
@@ -834,6 +876,8 @@ void update_variable() {
834876
else
835877
DWINUI::Draw_Icon(ICON_Zoffset, 187, 416);
836878
}
879+
#else
880+
DWINUI::Draw_Icon(ICON_Zoffset, 187, 416);
837881
#endif
838882

839883
_draw_xyz_position(false);
@@ -1781,7 +1825,7 @@ void DWIN_SetDataDefaults() {
17811825
#endif
17821826
TERN_(BAUD_RATE_GCODE, SetBaud250K());
17831827
#if BOTH(LED_CONTROL_MENU, HAS_COLOR_LEDS)
1784-
leds.set_default();
1828+
TERN_(LED_COLOR_PRESETS, leds.set_default());
17851829
ApplyLEDColor();
17861830
#endif
17871831
}
@@ -1799,10 +1843,10 @@ void DWIN_CopySettingsFrom(const char * const buff) {
17991843
TERN_(BAUD_RATE_GCODE, HMI_SetBaudRate());
18001844
#if BOTH(LED_CONTROL_MENU, HAS_COLOR_LEDS)
18011845
leds.set_color(
1802-
(HMI_data.LED_Color >> 16) & 0xFF,
1803-
(HMI_data.LED_Color >> 8) & 0xFF,
1804-
(HMI_data.LED_Color >> 0) & 0xFF
1805-
OPTARG(HAS_WHITE_LED, (HMI_data.LED_Color >> 24) & 0xFF)
1846+
HMI_data.Led_Color.r,
1847+
HMI_data.Led_Color.g,
1848+
HMI_data.Led_Color.b
1849+
OPTARG(HAS_WHITE_LED, HMI_data.Led_Color.w)
18061850
);
18071851
leds.update();
18081852
#endif
@@ -2094,7 +2138,7 @@ void HomeZ() { queue.inject(F("G28Z")); }
20942138
);
20952139
gcode.process_subcommands_now(cmd);
20962140
#else
2097-
set_bed_leveling_enabled(false);
2141+
TERN_(HAS_LEVELING, set_bed_leveling_enabled(false));
20982142
gcode.process_subcommands_now(F("G28O\nG0Z0F300\nM400"));
20992143
#endif
21002144
ui.reset_status();
@@ -2182,10 +2226,9 @@ void SetPID(celsius_t t, heater_id_t h) {
21822226
#endif
21832227

21842228
#if ENABLED(BAUD_RATE_GCODE)
2185-
void HMI_SetBaudRate() {
2186-
if (HMI_data.Baud115K) SetBaud115K(); else SetBaud250K();
2187-
}
2229+
void HMI_SetBaudRate() { HMI_data.Baud115K ? SetBaud115K() : SetBaud250K(); }
21882230
void SetBaudRate() {
2231+
HMI_data.Baud115K ^= true;
21892232
HMI_SetBaudRate();
21902233
Draw_Chkb_Line(CurrentMenu->line(), HMI_data.Baud115K);
21912234
DWIN_UpdateLCD();
@@ -2223,7 +2266,9 @@ void SetPID(celsius_t t, heater_id_t h) {
22232266
}
22242267
#endif
22252268
#if HAS_COLOR_LEDS
2226-
void ApplyLEDColor() { HMI_data.LED_Color = TERN0(HAS_WHITE_LED, (leds.color.w << 24)) | (leds.color.r << 16) | (leds.color.g << 8) | leds.color.b; }
2269+
void ApplyLEDColor() {
2270+
HMI_data.Led_Color = LEDColor( {leds.color.r, leds.color.g, leds.color.b OPTARG(HAS_WHITE_LED, HMI_data.Led_Color.w) } );
2271+
}
22272272
void LiveLEDColor(uint8_t *color) { *color = MenuData.Value; leds.update(); }
22282273
void LiveLEDColorR() { LiveLEDColor(&leds.color.r); }
22292274
void LiveLEDColorG() { LiveLEDColor(&leds.color.g); }
@@ -2377,55 +2422,66 @@ void ApplyFlow() { planner.refresh_e_factor(0); }
23772422
void SetFlow() { SetPIntOnClick(MIN_PRINT_FLOW, MAX_PRINT_FLOW, ApplyFlow); }
23782423

23792424
// Bed Tramming
2380-
TERN(HAS_BED_PROBE, float, void) Tram(uint8_t point) {
2381-
char cmd[100] = "";
2382-
#if HAS_BED_PROBE
2383-
static bool inLev = false;
2384-
float xpos = 0, ypos = 0, zval = 0, margin = 0;
2385-
char str_1[6] = "", str_2[6] = "", str_3[6] = "";
2386-
if (inLev) return NAN;
2387-
margin = HMI_data.FullManualTramming ? 30 : PROBING_MARGIN;
2388-
#else
2389-
int16_t xpos = 0, ypos = 0;
2390-
int16_t margin = 30;
2391-
#endif
23922425

2426+
void TramXY(const uint8_t point, const float &margin, float &x, float &y) {
23932427
switch (point) {
23942428
case 0:
23952429
LCD_MESSAGE(MSG_LEVBED_FL);
2396-
xpos = ypos = margin;
2430+
x = y = margin;
23972431
break;
23982432
case 1:
23992433
LCD_MESSAGE(MSG_LEVBED_FR);
2400-
xpos = X_BED_SIZE - margin; ypos = margin;
2434+
x = X_BED_SIZE - margin; y = margin;
24012435
break;
24022436
case 2:
24032437
LCD_MESSAGE(MSG_LEVBED_BR);
2404-
xpos = X_BED_SIZE - margin; ypos = Y_BED_SIZE - margin;
2438+
x = X_BED_SIZE - margin; y = Y_BED_SIZE - margin;
24052439
break;
24062440
case 3:
24072441
LCD_MESSAGE(MSG_LEVBED_BL);
2408-
xpos = margin; ypos = Y_BED_SIZE - margin;
2442+
x = margin; y = Y_BED_SIZE - margin;
24092443
break;
24102444
case 4:
24112445
LCD_MESSAGE(MSG_LEVBED_C);
2412-
xpos = X_BED_SIZE / 2; ypos = Y_BED_SIZE / 2;
2446+
x = X_CENTER; y = Y_CENTER;
24132447
break;
24142448
}
2449+
}
24152450

2416-
planner.synchronize();
2451+
#if HAS_BED_PROBE
2452+
2453+
float Tram(const uint8_t point) {
2454+
char cmd[100] = "";
2455+
static bool inLev = false;
2456+
float xpos = 0, ypos = 0, zval = 0, margin = 0;
2457+
char str_1[6] = "", str_2[6] = "", str_3[6] = "";
2458+
if (inLev) return NAN;
2459+
margin = HMI_data.FullManualTramming ? 30 : PROBING_MARGIN;
24172460

2418-
#if HAS_BED_PROBE
2461+
TramXY(point, margin, xpos, ypos);
24192462

24202463
if (HMI_data.FullManualTramming) {
2421-
planner.synchronize();
24222464
sprintf_P(cmd, PSTR("M420S0\nG28O\nG90\nG0Z5F300\nG0X%sY%sF5000\nG0Z0F300"),
24232465
dtostrf(xpos, 1, 1, str_1),
24242466
dtostrf(ypos, 1, 1, str_2)
24252467
);
24262468
queue.inject(cmd);
24272469
}
24282470
else {
2471+
// AUTO_BED_LEVELING_BILINEAR does not define MESH_INSET
2472+
#ifndef MESH_MIN_X
2473+
#define MESH_MIN_X (_MAX(X_MIN_BED + PROBING_MARGIN, X_MIN_POS))
2474+
#endif
2475+
#ifndef MESH_MIN_Y
2476+
#define MESH_MIN_Y (_MAX(Y_MIN_BED + PROBING_MARGIN, Y_MIN_POS))
2477+
#endif
2478+
#ifndef MESH_MAX_X
2479+
#define MESH_MAX_X (_MIN(X_MAX_BED - (PROBING_MARGIN), X_MAX_POS))
2480+
#endif
2481+
#ifndef MESH_MAX_Y
2482+
#define MESH_MAX_Y (_MIN(Y_MAX_BED - (PROBING_MARGIN), Y_MAX_POS))
2483+
#endif
2484+
24292485
LIMIT(xpos, MESH_MIN_X, MESH_MAX_X);
24302486
LIMIT(ypos, MESH_MIN_Y, MESH_MAX_Y);
24312487
probe.stow();
@@ -2445,14 +2501,20 @@ TERN(HAS_BED_PROBE, float, void) Tram(uint8_t point) {
24452501
inLev = false;
24462502
}
24472503
return zval;
2504+
}
2505+
2506+
#else
24482507

2449-
#else // !HAS_BED_PROBE
2508+
void Tram(const uint8_t point) {
2509+
float xpos = 0, ypos = 0, margin = 30;
2510+
TramXY(point, margin, xpos, ypos);
24502511

2451-
sprintf_P(cmd, PSTR("M420S0\nG28O\nG90\nG0Z5F300\nG0X%iY%iF5000\nG0Z0F300"), xpos, ypos);
2512+
char cmd[100] = "", str_1[6] = "", str_2[6] = "";
2513+
sprintf_P(cmd, PSTR("M420S0\nG28O\nG90\nG0Z5F300\nG0X%sY%sF5000\nG0Z0F300"), dtostrf(xpos, 1, 1, str_1), dtostrf(ypos, 1, 1, str_2));
24522514
queue.inject(cmd);
2515+
}
24532516

2454-
#endif
2455-
}
2517+
#endif
24562518

24572519
void TramFL() { Tram(0); }
24582520
void TramFR() { Tram(1); }
@@ -3350,7 +3412,7 @@ void Draw_GetColor_Menu() {
33503412
EDIT_ITEM_F(ICON_LedControl, MSG_COLORS_GREEN, onDrawPInt8Menu, SetLEDColorG, &leds.color.g);
33513413
EDIT_ITEM_F(ICON_LedControl, MSG_COLORS_BLUE, onDrawPInt8Menu, SetLEDColorB, &leds.color.b);
33523414
#if ENABLED(HAS_WHITE_LED)
3353-
EDIT_ITEM_F(ICON_LedControl, MSG_COLORS_WHITE, onDrawPInt8Menu, SetLedColorW, &leds.color.w);
3415+
EDIT_ITEM_F(ICON_LedControl, MSG_COLORS_WHITE, onDrawPInt8Menu, SetLEDColorW, &leds.color.w);
33543416
#endif
33553417
#endif
33563418
#endif
@@ -3763,6 +3825,7 @@ void Draw_Steps_Menu() {
37633825
#endif // AUTO_BED_LEVELING_UBL
37643826

37653827
#if HAS_MESH
3828+
37663829
void Draw_MeshSet_Menu() {
37673830
checkkey = Menu;
37683831
if (SetMenu(MeshMenu, GET_TEXT_F(MSG_MESH_LEVELING), 15)) {

Marlin/src/lcd/e3v2/proui/dwin.h

+1-3
Original file line numberDiff line numberDiff line change
@@ -239,9 +239,7 @@ void Draw_Tramming_Menu();
239239
#if HAS_BED_PROBE
240240
void Draw_ProbeSet_Menu();
241241
#endif
242-
#if HAS_FILAMENT_SENSOR
243-
void Draw_FilSet_Menu();
244-
#endif
242+
void Draw_FilSet_Menu();
245243
#if ENABLED(NOZZLE_PARK_FEATURE)
246244
void Draw_ParkPos_Menu();
247245
#endif

Marlin/src/lcd/e3v2/proui/dwin_defines.h

+6-6
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737

3838
#include "../../../inc/MarlinConfigPre.h"
3939
#include "../common/dwin_color.h"
40+
#if ENABLED(LED_CONTROL_MENU)
41+
#include "../../../feature/leds/leds.h"
42+
#endif
4043
#include <stddef.h>
4144

4245
#if defined(__STM32F1__) || defined(STM32F1)
@@ -63,10 +66,7 @@
6366
#define Def_Coordinate_Color Color_White
6467
#define Def_Button_Color RGB( 0, 23, 16)
6568
#if BOTH(LED_CONTROL_MENU, HAS_COLOR_LEDS)
66-
#define Def_Leds_Color 0xFFFFFFFF
67-
#endif
68-
#if ENABLED(CASELIGHT_USES_BRIGHTNESS)
69-
#define Def_CaseLight_Brightness 255
69+
#define Def_Leds_Color LEDColorWhite()
7070
#endif
7171

7272
typedef struct {
@@ -109,12 +109,12 @@ typedef struct {
109109
bool Baud115K = false;
110110
#endif
111111
bool FullManualTramming = false;
112-
// Led
113112
#if ENABLED(MESH_BED_LEVELING)
114113
float ManualZOffset = 0;
115114
#endif
115+
// Led
116116
#if BOTH(LED_CONTROL_MENU, HAS_COLOR_LEDS)
117-
uint32_t LED_Color = Def_Leds_Color;
117+
LEDColor Led_Color = Def_Leds_Color;
118118
#endif
119119
} HMI_data_t;
120120

0 commit comments

Comments
 (0)