Skip to content

Commit

Permalink
🚸 LCD_SHOW_E_TOTAL for TFT_COLOR_UI (#23127)
Browse files Browse the repository at this point in the history
  • Loading branch information
mvbasov authored and thinkyhead committed Dec 25, 2021
1 parent cb1570d commit 39a81d1
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 50 deletions.
16 changes: 8 additions & 8 deletions Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -672,21 +672,21 @@ void ST7920_Lite_Status_Screen::draw_position(const xyze_pos_t &pos, const bool
// If position is unknown, flash the labels.
const unsigned char alt_label = position_trusted ? 0 : (ui.get_blink() ? ' ' : 0);

if (TERN1(LCD_SHOW_E_TOTAL, !printingIsActive())) {
write_byte(alt_label ? alt_label : 'X');
write_str(dtostrf(pos.x, -4, 0, str), 4);

write_byte(alt_label ? alt_label : 'Y');
write_str(dtostrf(pos.y, -4, 0, str), 4);
}
else {
if (TERN0(LCD_SHOW_E_TOTAL, printingIsActive())) {
#if ENABLED(LCD_SHOW_E_TOTAL)
char tmp[15];
const uint8_t escale = e_move_accumulator >= 100000.0f ? 10 : 1; // After 100m switch to cm
sprintf_P(tmp, PSTR("E%-7ld%cm "), uint32_t(_MAX(e_move_accumulator, 0.0f)) / escale, escale == 10 ? 'c' : 'm'); // 1234567mm
write_str(tmp);
#endif
}
else {
write_byte(alt_label ? alt_label : 'X');
write_str(dtostrf(pos.x, -4, 0, str), 4);

write_byte(alt_label ? alt_label : 'Y');
write_str(dtostrf(pos.y, -4, 0, str), 4);
}

write_byte(alt_label ? alt_label : 'Z');
write_str(dtostrf(pos.z, -5, 1, str), 5);
Expand Down
38 changes: 24 additions & 14 deletions Marlin/src/lcd/tft/ui_1024x600.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -258,21 +258,31 @@ void MarlinUI::draw_status_screen() {
tft.set_background(COLOR_BACKGROUND);
tft.add_rectangle(0, 0, TFT_WIDTH - 8, FONT_LINE_HEIGHT, COLOR_AXIS_HOMED);

tft.add_text(200, 3, COLOR_AXIS_HOMED , "X");
tft.add_text(500, 3, COLOR_AXIS_HOMED , "Y");
if (TERN0(LCD_SHOW_E_TOTAL, printingIsActive())) {
#if ENABLED(LCD_SHOW_E_TOTAL)
tft.add_text(200, 3, COLOR_AXIS_HOMED , "E");
const uint8_t escale = e_move_accumulator >= 100000.0f ? 10 : 1; // After 100m switch to cm
tft_string.set(ftostr4sign(e_move_accumulator / escale));
tft_string.add(escale == 10 ? 'c' : 'm');
tft_string.add('m');
tft.add_text(500 - tft_string.width(), 3, COLOR_AXIS_HOMED, tft_string);
#endif
}
else {
tft.add_text(200, 3, COLOR_AXIS_HOMED , "X");
const bool nhx = axis_should_home(X_AXIS);
tft_string.set(blink && nhx ? "?" : ftostr4sign(LOGICAL_X_POSITION(current_position.x)));
tft.add_text(300 - tft_string.width(), 3, nhx ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);

tft.add_text(500, 3, COLOR_AXIS_HOMED , "Y");
const bool nhy = axis_should_home(Y_AXIS);
tft_string.set(blink && nhy ? "?" : ftostr4sign(LOGICAL_Y_POSITION(current_position.y)));
tft.add_text(600 - tft_string.width(), 3, nhy ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);
}
tft.add_text(800, 3, COLOR_AXIS_HOMED , "Z");

bool not_homed = axis_should_home(X_AXIS);
tft_string.set(blink && not_homed ? "?" : ftostr4sign(LOGICAL_X_POSITION(current_position.x)));
tft.add_text(300 - tft_string.width(), 3, not_homed ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);

not_homed = axis_should_home(Y_AXIS);
tft_string.set(blink && not_homed ? "?" : ftostr4sign(LOGICAL_Y_POSITION(current_position.y)));
tft.add_text(600 - tft_string.width(), 3, not_homed ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);

uint16_t offset = 32;
not_homed = axis_should_home(Z_AXIS);
if (blink && not_homed)
const bool nhz = axis_should_home(Z_AXIS);
if (blink && nhz)
tft_string.set("?");
else {
const float z = LOGICAL_Z_POSITION(current_position.z);
Expand All @@ -283,7 +293,7 @@ void MarlinUI::draw_status_screen() {
tft_string.set(ftostr52sp(z));
offset -= tft_string.width();
}
tft.add_text(900 - tft_string.width() - offset, 3, not_homed ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);
tft.add_text(900 - tft_string.width() - offset, 3, nhz ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);
TERN_(TOUCH_SCREEN, touch.add_control(MOVE_AXIS, 4, y, TFT_WIDTH - 8, FONT_LINE_HEIGHT));

y += 100;
Expand Down
39 changes: 25 additions & 14 deletions Marlin/src/lcd/tft/ui_320x240.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -256,21 +256,32 @@ void MarlinUI::draw_status_screen() {
tft.set_background(COLOR_BACKGROUND);
tft.add_rectangle(0, 0, 312, 24, COLOR_AXIS_HOMED);

tft.add_text( 10, 3, COLOR_AXIS_HOMED , "X");
tft.add_text(127, 3, COLOR_AXIS_HOMED , "Y");
tft.add_text(219, 3, COLOR_AXIS_HOMED , "Z");

bool not_homed = axis_should_home(X_AXIS);
tft_string.set(blink && not_homed ? "?" : ftostr4sign(LOGICAL_X_POSITION(current_position.x)));
tft.add_text( 68 - tft_string.width(), 3, not_homed ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);

not_homed = axis_should_home(Y_AXIS);
tft_string.set(blink && not_homed ? "?" : ftostr4sign(LOGICAL_Y_POSITION(current_position.y)));
tft.add_text(185 - tft_string.width(), 3, not_homed ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);
if (TERN0(LCD_SHOW_E_TOTAL, printingIsActive())) {
#if ENABLED(LCD_SHOW_E_TOTAL)
tft.add_text( 10, 3, COLOR_AXIS_HOMED , "E");
const uint8_t escale = e_move_accumulator >= 100000.0f ? 10 : 1; // After 100m switch to cm
tft_string.set(ftostr4sign(e_move_accumulator / escale));
tft_string.add(escale == 10 ? 'c' : 'm');
tft_string.add('m');
tft.add_text(127 - tft_string.width(), 3, COLOR_AXIS_HOMED, tft_string);
#endif
}
else {
tft.add_text( 10, 3, COLOR_AXIS_HOMED , "X");
const bool nhx = axis_should_home(X_AXIS);
tft_string.set(blink && nhx ? "?" : ftostr4sign(LOGICAL_X_POSITION(current_position.x)));
tft.add_text( 68 - tft_string.width(), 3, nhx ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);

tft.add_text(127, 3, COLOR_AXIS_HOMED , "Y");
const bool nhy = axis_should_home(Y_AXIS);
tft_string.set(blink && nhy ? "?" : ftostr4sign(LOGICAL_Y_POSITION(current_position.y)));
tft.add_text(185 - tft_string.width(), 3, nhy ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);
}

not_homed = axis_should_home(Z_AXIS);
tft.add_text(219, 3, COLOR_AXIS_HOMED , "Z");
const bool nhz = axis_should_home(Z_AXIS);
uint16_t offset = 25;
if (blink && not_homed)
if (blink && nhz)
tft_string.set("?");
else {
const float z = LOGICAL_Z_POSITION(current_position.z);
Expand All @@ -281,7 +292,7 @@ void MarlinUI::draw_status_screen() {
tft_string.set(ftostr52sp(z));
offset -= tft_string.width();
}
tft.add_text(301 - tft_string.width() - offset, 3, not_homed ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);
tft.add_text(301 - tft_string.width() - offset, 3, nhz ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);
TERN_(TOUCH_SCREEN, touch.add_control(MOVE_AXIS, 0, 103, 312, 24));

// feed rate
Expand Down
38 changes: 24 additions & 14 deletions Marlin/src/lcd/tft/ui_480x320.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -258,21 +258,31 @@ void MarlinUI::draw_status_screen() {
tft.set_background(COLOR_BACKGROUND);
tft.add_rectangle(0, 0, TFT_WIDTH - 8, FONT_LINE_HEIGHT, COLOR_AXIS_HOMED);

tft.add_text( 16, 3, COLOR_AXIS_HOMED , "X");
tft.add_text(192, 3, COLOR_AXIS_HOMED , "Y");
if (TERN0(LCD_SHOW_E_TOTAL, printingIsActive())) {
#if ENABLED(LCD_SHOW_E_TOTAL)
tft.add_text( 16, 3, COLOR_AXIS_HOMED , "E");
const uint8_t escale = e_move_accumulator >= 100000.0f ? 10 : 1; // After 100m switch to cm
tft_string.set(ftostr4sign(e_move_accumulator / escale));
tft_string.add(escale == 10 ? 'c' : 'm');
tft_string.add('m');
tft.add_text(192 - tft_string.width(), 3, COLOR_AXIS_HOMED, tft_string);
#endif
}
else {
tft.add_text( 16, 3, COLOR_AXIS_HOMED , "X");
const bool nhx = axis_should_home(X_AXIS);
tft_string.set(blink && nhx ? "?" : ftostr4sign(LOGICAL_X_POSITION(current_position.x)));
tft.add_text(102 - tft_string.width(), 3, nhx ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);

tft.add_text(192, 3, COLOR_AXIS_HOMED , "Y");
const bool nhy = axis_should_home(Y_AXIS);
tft_string.set(blink && nhy ? "?" : ftostr4sign(LOGICAL_Y_POSITION(current_position.y)));
tft.add_text(280 - tft_string.width(), 3, nhy ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);
}
tft.add_text(330, 3, COLOR_AXIS_HOMED , "Z");

bool not_homed = axis_should_home(X_AXIS);
tft_string.set(blink && not_homed ? "?" : ftostr4sign(LOGICAL_X_POSITION(current_position.x)));
tft.add_text(102 - tft_string.width(), 3, not_homed ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);

not_homed = axis_should_home(Y_AXIS);
tft_string.set(blink && not_homed ? "?" : ftostr4sign(LOGICAL_Y_POSITION(current_position.y)));
tft.add_text(280 - tft_string.width(), 3, not_homed ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);

uint16_t offset = 32;
not_homed = axis_should_home(Z_AXIS);
if (blink && not_homed)
const bool nhz = axis_should_home(Z_AXIS);
if (blink && nhz)
tft_string.set("?");
else {
const float z = LOGICAL_Z_POSITION(current_position.z);
Expand All @@ -283,7 +293,7 @@ void MarlinUI::draw_status_screen() {
tft_string.set(ftostr52sp(z));
offset -= tft_string.width();
}
tft.add_text(455 - tft_string.width() - offset, 3, not_homed ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);
tft.add_text(455 - tft_string.width() - offset, 3, nhz ? COLOR_AXIS_NOT_HOMED : COLOR_AXIS_HOMED, tft_string);
TERN_(TOUCH_SCREEN, touch.add_control(MOVE_AXIS, 4, y, TFT_WIDTH - 8, FONT_LINE_HEIGHT));

y += TERN(HAS_UI_480x272, 38, 48);
Expand Down

0 comments on commit 39a81d1

Please sign in to comment.