🚸 Negative temperature display option (#25036)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
@@ -1455,6 +1455,9 @@
|
|||||||
// Show the E position (filament used) during printing
|
// Show the E position (filament used) during printing
|
||||||
//#define LCD_SHOW_E_TOTAL
|
//#define LCD_SHOW_E_TOTAL
|
||||||
|
|
||||||
|
// Display a negative temperature instead of "err"
|
||||||
|
//#define SHOW_TEMPERATURE_BELOW_ZERO
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LED Control Menu
|
* LED Control Menu
|
||||||
* Add LED Control to the LCD menu
|
* Add LED Control to the LCD menu
|
||||||
|
@@ -537,7 +537,7 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
|
|||||||
*/
|
*/
|
||||||
FORCE_INLINE void _draw_heater_status(const heater_id_t heater_id, const char prefix, const bool blink) {
|
FORCE_INLINE void _draw_heater_status(const heater_id_t heater_id, const char prefix, const bool blink) {
|
||||||
#if HAS_HEATED_BED
|
#if HAS_HEATED_BED
|
||||||
const bool isBed = TERN(HAS_HEATED_CHAMBER, heater_id == H_BED, heater_id < 0);
|
const bool isBed = heater_id == H_BED;
|
||||||
const celsius_t t1 = (isBed ? thermalManager.wholeDegBed() : thermalManager.wholeDegHotend(heater_id)),
|
const celsius_t t1 = (isBed ? thermalManager.wholeDegBed() : thermalManager.wholeDegHotend(heater_id)),
|
||||||
t2 = (isBed ? thermalManager.degTargetBed() : thermalManager.degTargetHotend(heater_id));
|
t2 = (isBed ? thermalManager.degTargetBed() : thermalManager.degTargetHotend(heater_id));
|
||||||
#else
|
#else
|
||||||
@@ -546,7 +546,17 @@ FORCE_INLINE void _draw_heater_status(const heater_id_t heater_id, const char pr
|
|||||||
|
|
||||||
if (prefix >= 0) lcd_put_lchar(prefix);
|
if (prefix >= 0) lcd_put_lchar(prefix);
|
||||||
|
|
||||||
lcd_put_u8str(t1 < 0 ? "err" : i16tostr3rj(t1));
|
if (t1 >= 0)
|
||||||
|
lcd_put_u8str(ui16tostr3rj(t1));
|
||||||
|
else {
|
||||||
|
#if ENABLED(SHOW_TEMPERATURE_BELOW_ZERO)
|
||||||
|
char * const str = i16tostr3rj(t1);
|
||||||
|
lcd_put_u8str(&str[1]);
|
||||||
|
#else
|
||||||
|
lcd_put_u8str(F("err"));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
lcd_put_u8str(F("/"));
|
lcd_put_u8str(F("/"));
|
||||||
|
|
||||||
#if !HEATER_IDLE_HANDLER
|
#if !HEATER_IDLE_HANDLER
|
||||||
|
@@ -192,14 +192,26 @@
|
|||||||
#define PROGRESS_BAR_WIDTH (LCD_PIXEL_WIDTH - PROGRESS_BAR_X)
|
#define PROGRESS_BAR_WIDTH (LCD_PIXEL_WIDTH - PROGRESS_BAR_X)
|
||||||
|
|
||||||
FORCE_INLINE void _draw_centered_temp(const celsius_t temp, const uint8_t tx, const uint8_t ty) {
|
FORCE_INLINE void _draw_centered_temp(const celsius_t temp, const uint8_t tx, const uint8_t ty) {
|
||||||
if (temp < 0)
|
const char *str;
|
||||||
lcd_put_u8str(tx - 3 * (INFO_FONT_WIDTH) / 2 + 1, ty, F("err"));
|
uint8_t len;
|
||||||
else {
|
if (temp >= 0) {
|
||||||
const char *str = i16tostr3rj(temp);
|
str = i16tostr3left(temp);
|
||||||
const uint8_t len = str[0] != ' ' ? 3 : str[1] != ' ' ? 2 : 1;
|
len = strlen(str);
|
||||||
lcd_put_u8str(tx - len * (INFO_FONT_WIDTH) / 2 + 1, ty, &str[3-len]);
|
lcd_moveto(tx + 1 - len * (INFO_FONT_WIDTH) / 2, ty);
|
||||||
lcd_put_lchar(LCD_STR_DEGREE[0]);
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
#if ENABLED(SHOW_TEMPERATURE_BELOW_ZERO)
|
||||||
|
str = i16tostr3left((-temp) % 100);
|
||||||
|
len = strlen(str) + 1;
|
||||||
|
lcd_moveto(tx + 1 - len * (INFO_FONT_WIDTH) / 2, ty);
|
||||||
|
lcd_put_lchar('-');
|
||||||
|
#else
|
||||||
|
lcd_put_u8str(tx + 1 - 3 * (INFO_FONT_WIDTH) / 2, ty, F("err"));
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
lcd_put_u8str(str);
|
||||||
|
lcd_put_lchar(LCD_STR_DEGREE[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DO_DRAW_FLOWMETER
|
#if DO_DRAW_FLOWMETER
|
||||||
|
Reference in New Issue
Block a user