|
@@ -98,19 +98,24 @@ FORCE_INLINE void _draw_heater_status(const uint8_t x, const int8_t heater, cons
|
98
|
98
|
}
|
99
|
99
|
}
|
100
|
100
|
|
101
|
|
-FORCE_INLINE void _draw_axis_label(const AxisEnum axis, const char* const pstr, const bool blink) {
|
|
101
|
+//
|
|
102
|
+// Before homing, blink '123' <-> '???'.
|
|
103
|
+// Homed but unknown... '123' <-> ' '.
|
|
104
|
+// Homed and known, display constantly.
|
|
105
|
+//
|
|
106
|
+FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const bool blink) {
|
102
|
107
|
if (blink)
|
103
|
|
- lcd_put_u8str_rom(pstr);
|
|
108
|
+ lcd_put_u8str(value);
|
104
|
109
|
else {
|
105
|
110
|
if (!axis_homed[axis])
|
106
|
|
- lcd_put_wchar('?');
|
|
111
|
+ while (const char c = *value++) lcd_put_wchar(c <= '.' ? c : '?');
|
107
|
112
|
else {
|
108
|
113
|
#if DISABLED(HOME_AFTER_DEACTIVATE) && DISABLED(DISABLE_REDUCED_ACCURACY_WARNING)
|
109
|
114
|
if (!axis_known_position[axis])
|
110
|
|
- lcd_put_wchar(' ');
|
|
115
|
+ lcd_put_u8str_rom(axis == Z_AXIS ? PSTR(" ") : PSTR(" "));
|
111
|
116
|
else
|
112
|
117
|
#endif
|
113
|
|
- lcd_put_u8str_rom(pstr);
|
|
118
|
+ lcd_put_u8str(value);
|
114
|
119
|
}
|
115
|
120
|
}
|
116
|
121
|
}
|
|
@@ -330,10 +335,6 @@ static void lcd_implementation_status_screen() {
|
330
|
335
|
#define XYZ_FRAME_HEIGHT INFO_FONT_HEIGHT + 1
|
331
|
336
|
#endif
|
332
|
337
|
|
333
|
|
- // Before homing the axis letters are blinking 'X' <-> '?'.
|
334
|
|
- // When axis is homed but axis_known_position is false the axis letters are blinking 'X' <-> ' '.
|
335
|
|
- // When everything is ok you see a constant 'X'.
|
336
|
|
-
|
337
|
338
|
static char xstring[5], ystring[5], zstring[7];
|
338
|
339
|
#if ENABLED(FILAMENT_LCD_DISPLAY)
|
339
|
340
|
static char wstring[5], mstring[4];
|
|
@@ -370,19 +371,19 @@ static void lcd_implementation_status_screen() {
|
370
|
371
|
#endif
|
371
|
372
|
|
372
|
373
|
lcd_moveto(0 * XYZ_SPACING + X_LABEL_POS, XYZ_BASELINE);
|
373
|
|
- _draw_axis_label(X_AXIS, PSTR(MSG_X), blink);
|
|
374
|
+ lcd_put_wchar('X');
|
374
|
375
|
lcd_moveto(0 * XYZ_SPACING + X_VALUE_POS, XYZ_BASELINE);
|
375
|
|
- lcd_put_u8str(xstring);
|
|
376
|
+ _draw_axis_value(X_AXIS, xstring, blink);
|
376
|
377
|
|
377
|
378
|
lcd_moveto(1 * XYZ_SPACING + X_LABEL_POS, XYZ_BASELINE);
|
378
|
|
- _draw_axis_label(Y_AXIS, PSTR(MSG_Y), blink);
|
|
379
|
+ lcd_put_wchar('Y');
|
379
|
380
|
lcd_moveto(1 * XYZ_SPACING + X_VALUE_POS, XYZ_BASELINE);
|
380
|
|
- lcd_put_u8str(ystring);
|
|
381
|
+ _draw_axis_value(Y_AXIS, ystring, blink);
|
381
|
382
|
|
382
|
383
|
lcd_moveto(2 * XYZ_SPACING + X_LABEL_POS, XYZ_BASELINE);
|
383
|
|
- _draw_axis_label(Z_AXIS, PSTR(MSG_Z), blink);
|
|
384
|
+ lcd_put_wchar('Z');
|
384
|
385
|
lcd_moveto(2 * XYZ_SPACING + X_VALUE_POS, XYZ_BASELINE);
|
385
|
|
- lcd_put_u8str(zstring);
|
|
386
|
+ _draw_axis_value(Z_AXIS, zstring, blink);
|
386
|
387
|
|
387
|
388
|
#if DISABLED(XYZ_HOLLOW_FRAME)
|
388
|
389
|
u8g.setColorIndex(1); // black on white
|