|
@@ -64,6 +64,7 @@
|
64
|
64
|
#define STATUS_BASELINE (LCD_PIXEL_HEIGHT - INFO_FONT_DESCENT)
|
65
|
65
|
|
66
|
66
|
#define DO_DRAW_LOGO (STATUS_LOGO_WIDTH && ENABLED(CUSTOM_STATUS_SCREEN_IMAGE))
|
|
67
|
+#define DO_DRAW_HOTENDS (HOTENDS > 0)
|
67
|
68
|
#define DO_DRAW_BED (HAS_HEATED_BED && STATUS_BED_WIDTH && HOTENDS <= 4)
|
68
|
69
|
#define DO_DRAW_CHAMBER (HAS_TEMP_CHAMBER && STATUS_CHAMBER_WIDTH && HOTENDS <= 4)
|
69
|
70
|
#define DO_DRAW_FAN (HAS_FAN0 && STATUS_FAN_WIDTH && HOTENDS <= 4 && defined(STATUS_FAN_FRAMES))
|
|
@@ -102,12 +103,6 @@
|
102
|
103
|
#define PROGRESS_BAR_X 54
|
103
|
104
|
#define PROGRESS_BAR_WIDTH (LCD_PIXEL_WIDTH - PROGRESS_BAR_X)
|
104
|
105
|
|
105
|
|
-#if ENABLED(MARLIN_DEV_MODE)
|
106
|
|
- #define SHOW_ON_STATE READ(X_MIN_PIN)
|
107
|
|
-#else
|
108
|
|
- #define SHOW_ON_STATE false
|
109
|
|
-#endif
|
110
|
|
-
|
111
|
106
|
FORCE_INLINE void _draw_centered_temp(const int16_t temp, const uint8_t tx, const uint8_t ty) {
|
112
|
107
|
const char *str = i16tostr3(temp);
|
113
|
108
|
const uint8_t len = str[0] != ' ' ? 3 : str[1] != ' ' ? 2 : 1;
|
|
@@ -115,95 +110,67 @@ FORCE_INLINE void _draw_centered_temp(const int16_t temp, const uint8_t tx, cons
|
115
|
110
|
lcd_put_wchar(LCD_STR_DEGREE[0]);
|
116
|
111
|
}
|
117
|
112
|
|
118
|
|
-FORCE_INLINE void _draw_heater_status(const heater_ind_t heater, const bool blink) {
|
119
|
|
- #if !HEATER_IDLE_HANDLER
|
120
|
|
- UNUSED(blink);
|
121
|
|
- #endif
|
|
113
|
+#if DO_DRAW_HOTENDS
|
122
|
114
|
|
123
|
|
- #if DO_DRAW_BED && DISABLED(STATUS_COMBINE_HEATERS) || (HAS_HEATED_BED && ENABLED(STATUS_COMBINE_HEATERS) && HOTENDS <= 4)
|
124
|
|
- const bool isBed = heater < 0;
|
125
|
|
- #define IFBED(A,B) (isBed ? (A) : (B))
|
126
|
|
- #else
|
127
|
|
- #define IFBED(A,B) (B)
|
128
|
|
- #endif
|
129
|
|
-
|
130
|
|
- #if ENABLED(MARLIN_DEV_MODE)
|
131
|
|
- constexpr bool isHeat = true;
|
132
|
|
- #else
|
133
|
|
- const bool isHeat = IFBED(BED_ALT(), HOTEND_ALT(heater));
|
134
|
|
- #endif
|
135
|
|
-
|
136
|
|
- #ifndef STATUS_HOTEND_TEXT_X
|
137
|
|
- #define STATUS_HOTEND_TEXT_X(N) 0
|
138
|
|
- #define STATUS_HEATERS_Y 0
|
139
|
|
- #endif
|
|
115
|
+ FORCE_INLINE void _draw_hotend_status(const heater_ind_t heater, const bool blink) {
|
|
116
|
+ #if !HEATER_IDLE_HANDLER
|
|
117
|
+ UNUSED(blink);
|
|
118
|
+ #endif
|
140
|
119
|
|
141
|
|
- const uint8_t tx = IFBED(STATUS_BED_TEXT_X, STATUS_HOTEND_TEXT_X(heater));
|
|
120
|
+ const bool isHeat = HOTEND_ALT(heater);
|
142
|
121
|
|
143
|
|
- #if ENABLED(MARLIN_DEV_MODE)
|
144
|
|
- const float temp = 20 + (millis() >> 8) % IFBED(100, 200),
|
145
|
|
- target = IFBED(100, 200);
|
146
|
|
- #else
|
147
|
|
- const float temp = IFBED(thermalManager.degBed(), thermalManager.degHotend(heater)),
|
148
|
|
- target = IFBED(thermalManager.degTargetBed(), thermalManager.degTargetHotend(heater));
|
149
|
|
- #endif
|
|
122
|
+ const uint8_t tx = STATUS_HOTEND_TEXT_X(heater);
|
150
|
123
|
|
151
|
|
- #if DISABLED(STATUS_HOTEND_ANIM)
|
152
|
|
- #define STATIC_HOTEND true
|
153
|
|
- #define HOTEND_DOT isHeat
|
154
|
|
- #else
|
155
|
|
- #define STATIC_HOTEND false
|
156
|
|
- #define HOTEND_DOT false
|
157
|
|
- #endif
|
|
124
|
+ const float temp = thermalManager.degHotend(heater),
|
|
125
|
+ target = thermalManager.degTargetHotend(heater);
|
158
|
126
|
|
159
|
|
- #if DO_DRAW_BED && DISABLED(STATUS_BED_ANIM)
|
160
|
|
- #define STATIC_BED true
|
161
|
|
- #define BED_DOT isHeat
|
162
|
|
- #else
|
163
|
|
- #define STATIC_BED false
|
164
|
|
- #define BED_DOT false
|
165
|
|
- #endif
|
|
127
|
+ #if DISABLED(STATUS_HOTEND_ANIM)
|
|
128
|
+ #define STATIC_HOTEND true
|
|
129
|
+ #define HOTEND_DOT isHeat
|
|
130
|
+ #else
|
|
131
|
+ #define STATIC_HOTEND false
|
|
132
|
+ #define HOTEND_DOT false
|
|
133
|
+ #endif
|
166
|
134
|
|
167
|
|
- #if ANIM_HOTEND && BOTH(STATUS_HOTEND_INVERTED, STATUS_HOTEND_NUMBERLESS)
|
168
|
|
- #define OFF_BMP(N) status_hotend_b_bmp
|
169
|
|
- #define ON_BMP(N) status_hotend_a_bmp
|
170
|
|
- #elif ANIM_HOTEND && DISABLED(STATUS_HOTEND_INVERTED) && ENABLED(STATUS_HOTEND_NUMBERLESS)
|
171
|
|
- #define OFF_BMP(N) status_hotend_a_bmp
|
172
|
|
- #define ON_BMP(N) status_hotend_b_bmp
|
173
|
|
- #elif ANIM_HOTEND && ENABLED(STATUS_HOTEND_INVERTED)
|
174
|
|
- #define OFF_BMP(N) status_hotend##N##_b_bmp
|
175
|
|
- #define ON_BMP(N) status_hotend##N##_a_bmp
|
176
|
|
- #else
|
177
|
|
- #define OFF_BMP(N) status_hotend##N##_a_bmp
|
178
|
|
- #define ON_BMP(N) status_hotend##N##_b_bmp
|
179
|
|
- #endif
|
|
135
|
+ #if ANIM_HOTEND && BOTH(STATUS_HOTEND_INVERTED, STATUS_HOTEND_NUMBERLESS)
|
|
136
|
+ #define OFF_BMP(N) status_hotend_b_bmp
|
|
137
|
+ #define ON_BMP(N) status_hotend_a_bmp
|
|
138
|
+ #elif ANIM_HOTEND && DISABLED(STATUS_HOTEND_INVERTED) && ENABLED(STATUS_HOTEND_NUMBERLESS)
|
|
139
|
+ #define OFF_BMP(N) status_hotend_a_bmp
|
|
140
|
+ #define ON_BMP(N) status_hotend_b_bmp
|
|
141
|
+ #elif ANIM_HOTEND && ENABLED(STATUS_HOTEND_INVERTED)
|
|
142
|
+ #define OFF_BMP(N) status_hotend##N##_b_bmp
|
|
143
|
+ #define ON_BMP(N) status_hotend##N##_a_bmp
|
|
144
|
+ #else
|
|
145
|
+ #define OFF_BMP(N) status_hotend##N##_a_bmp
|
|
146
|
+ #define ON_BMP(N) status_hotend##N##_b_bmp
|
|
147
|
+ #endif
|
180
|
148
|
|
181
|
|
- #if STATUS_HOTEND_BITMAPS > 1
|
182
|
|
- static const unsigned char* const status_hotend_gfx[STATUS_HOTEND_BITMAPS] PROGMEM = ARRAY_N(STATUS_HOTEND_BITMAPS, OFF_BMP(1), OFF_BMP(2), OFF_BMP(3), OFF_BMP(4), OFF_BMP(5), OFF_BMP(6));
|
183
|
|
- #if ANIM_HOTEND
|
184
|
|
- static const unsigned char* const status_hotend_on_gfx[STATUS_HOTEND_BITMAPS] PROGMEM = ARRAY_N(STATUS_HOTEND_BITMAPS, ON_BMP(1), ON_BMP(2), ON_BMP(3), ON_BMP(4), ON_BMP(5), ON_BMP(6));
|
185
|
|
- #define HOTEND_BITMAP(N,S) (unsigned char*)pgm_read_ptr((S) ? &status_hotend_on_gfx[(N) % (STATUS_HOTEND_BITMAPS)] : &status_hotend_gfx[(N) % (STATUS_HOTEND_BITMAPS)])
|
|
149
|
+ #if STATUS_HOTEND_BITMAPS > 1
|
|
150
|
+ static const unsigned char* const status_hotend_gfx[STATUS_HOTEND_BITMAPS] PROGMEM = ARRAY_N(STATUS_HOTEND_BITMAPS, OFF_BMP(1), OFF_BMP(2), OFF_BMP(3), OFF_BMP(4), OFF_BMP(5), OFF_BMP(6));
|
|
151
|
+ #if ANIM_HOTEND
|
|
152
|
+ static const unsigned char* const status_hotend_on_gfx[STATUS_HOTEND_BITMAPS] PROGMEM = ARRAY_N(STATUS_HOTEND_BITMAPS, ON_BMP(1), ON_BMP(2), ON_BMP(3), ON_BMP(4), ON_BMP(5), ON_BMP(6));
|
|
153
|
+ #define HOTEND_BITMAP(N,S) (unsigned char*)pgm_read_ptr((S) ? &status_hotend_on_gfx[(N) % (STATUS_HOTEND_BITMAPS)] : &status_hotend_gfx[(N) % (STATUS_HOTEND_BITMAPS)])
|
|
154
|
+ #else
|
|
155
|
+ #define HOTEND_BITMAP(N,S) (unsigned char*)pgm_read_ptr(&status_hotend_gfx[(N) % (STATUS_HOTEND_BITMAPS)])
|
|
156
|
+ #endif
|
|
157
|
+ #elif ANIM_HOTEND
|
|
158
|
+ #define HOTEND_BITMAP(N,S) ((S) ? ON_BMP() : OFF_BMP())
|
186
|
159
|
#else
|
187
|
|
- #define HOTEND_BITMAP(N,S) (unsigned char*)pgm_read_ptr(&status_hotend_gfx[(N) % (STATUS_HOTEND_BITMAPS)])
|
|
160
|
+ #define HOTEND_BITMAP(N,S) status_hotend_a_bmp
|
188
|
161
|
#endif
|
189
|
|
- #elif ANIM_HOTEND
|
190
|
|
- #define HOTEND_BITMAP(N,S) ((S) ? ON_BMP() : OFF_BMP())
|
191
|
|
- #else
|
192
|
|
- #define HOTEND_BITMAP(N,S) status_hotend_a_bmp
|
193
|
|
- #endif
|
194
|
162
|
|
195
|
|
- if (PAGE_CONTAINS(STATUS_HEATERS_Y, STATUS_HEATERS_BOT)) {
|
|
163
|
+ if (PAGE_CONTAINS(STATUS_HEATERS_Y, STATUS_HEATERS_BOT)) {
|
196
|
164
|
|
197
|
|
- #define BAR_TALL (STATUS_HEATERS_HEIGHT - 2)
|
|
165
|
+ #define BAR_TALL (STATUS_HEATERS_HEIGHT - 2)
|
198
|
166
|
|
199
|
|
- const float prop = target - 20,
|
200
|
|
- perc = prop > 0 && temp >= 20 ? (temp - 20) / prop : 0;
|
201
|
|
- uint8_t tall = uint8_t(perc * BAR_TALL + 0.5f);
|
202
|
|
- NOMORE(tall, BAR_TALL);
|
|
167
|
+ const float prop = target - 20,
|
|
168
|
+ perc = prop > 0 && temp >= 20 ? (temp - 20) / prop : 0;
|
|
169
|
+ uint8_t tall = uint8_t(perc * BAR_TALL + 0.5f);
|
|
170
|
+ NOMORE(tall, BAR_TALL);
|
203
|
171
|
|
204
|
|
- #if ANIM_HOTEND
|
205
|
|
- // Draw hotend bitmap, either whole or split by the heating percent
|
206
|
|
- if (IFBED(0, 1)) {
|
|
172
|
+ #if ANIM_HOTEND
|
|
173
|
+ // Draw hotend bitmap, either whole or split by the heating percent
|
207
|
174
|
const uint8_t hx = STATUS_HOTEND_X(heater),
|
208
|
175
|
bw = STATUS_HOTEND_BYTEWIDTH(heater);
|
209
|
176
|
#if ENABLED(STATUS_HEAT_PERCENT)
|
|
@@ -215,79 +182,129 @@ FORCE_INLINE void _draw_heater_status(const heater_ind_t heater, const bool blin
|
215
|
182
|
else
|
216
|
183
|
#endif
|
217
|
184
|
u8g.drawBitmapP(hx, STATUS_HEATERS_Y, bw, STATUS_HEATERS_HEIGHT, HOTEND_BITMAP(heater, isHeat));
|
218
|
|
- }
|
219
|
|
- #endif
|
|
185
|
+ #endif
|
220
|
186
|
|
221
|
|
- // Draw a heating progress bar, if specified
|
222
|
|
- #if DO_DRAW_BED && ENABLED(STATUS_HEAT_PERCENT)
|
|
187
|
+ // Draw a heating progress bar, if specified
|
|
188
|
+ #if DO_DRAW_BED && ENABLED(STATUS_HEAT_PERCENT)
|
223
|
189
|
|
224
|
|
- if (IFBED(true, STATIC_HOTEND) && isHeat) {
|
225
|
|
- const uint8_t bx = IFBED(STATUS_BED_X + STATUS_BED_WIDTH - 1, STATUS_HOTEND_X(heater) + STATUS_HOTEND_WIDTH(heater)) + 1;
|
226
|
|
- u8g.drawFrame(bx, STATUS_HEATERS_Y, 3, STATUS_HEATERS_HEIGHT);
|
227
|
|
- if (tall) {
|
228
|
|
- const uint8_t ph = STATUS_HEATERS_HEIGHT - 1 - tall;
|
229
|
|
- if (PAGE_OVER(STATUS_HEATERS_Y + ph))
|
230
|
|
- u8g.drawVLine(bx + 1, STATUS_HEATERS_Y + ph, tall);
|
|
190
|
+ if (STATIC_HOTEND && isHeat) {
|
|
191
|
+ const uint8_t bx = STATUS_HOTEND_X(heater) + STATUS_HOTEND_WIDTH(heater) + 1;
|
|
192
|
+ u8g.drawFrame(bx, STATUS_HEATERS_Y, 3, STATUS_HEATERS_HEIGHT);
|
|
193
|
+ if (tall) {
|
|
194
|
+ const uint8_t ph = STATUS_HEATERS_HEIGHT - 1 - tall;
|
|
195
|
+ if (PAGE_OVER(STATUS_HEATERS_Y + ph))
|
|
196
|
+ u8g.drawVLine(bx + 1, STATUS_HEATERS_Y + ph, tall);
|
|
197
|
+ }
|
231
|
198
|
}
|
232
|
|
- }
|
233
|
199
|
|
|
200
|
+ #endif
|
|
201
|
+
|
|
202
|
+ } // PAGE_CONTAINS
|
|
203
|
+
|
|
204
|
+ if (PAGE_UNDER(7)) {
|
|
205
|
+ #if HEATER_IDLE_HANDLER
|
|
206
|
+ const bool is_idle = thermalManager.hotend_idle[heater].timed_out,
|
|
207
|
+ dodraw = (blink || !is_idle);
|
|
208
|
+ #else
|
|
209
|
+ constexpr bool dodraw = true;
|
|
210
|
+ #endif
|
|
211
|
+ if (dodraw) _draw_centered_temp(target + 0.5, tx, 7);
|
|
212
|
+ }
|
|
213
|
+
|
|
214
|
+ if (PAGE_CONTAINS(28 - INFO_FONT_ASCENT, 28 - 1))
|
|
215
|
+ _draw_centered_temp(temp + 0.5f, tx, 28);
|
|
216
|
+
|
|
217
|
+ if (STATIC_HOTEND && HOTEND_DOT && PAGE_CONTAINS(17, 19)) {
|
|
218
|
+ u8g.setColorIndex(0); // set to white on black
|
|
219
|
+ u8g.drawBox(tx, 20 - 3, 2, 2);
|
|
220
|
+ u8g.setColorIndex(1); // restore black on white
|
|
221
|
+ }
|
|
222
|
+
|
|
223
|
+ }
|
|
224
|
+
|
|
225
|
+#endif // HOTENDS
|
|
226
|
+
|
|
227
|
+#if DO_DRAW_BED
|
|
228
|
+
|
|
229
|
+ FORCE_INLINE void _draw_bed_status(const bool blink) {
|
|
230
|
+ #if !HEATER_IDLE_HANDLER
|
|
231
|
+ UNUSED(blink);
|
234
|
232
|
#endif
|
235
|
233
|
|
236
|
|
- } // PAGE_CONTAINS
|
|
234
|
+ const bool isHeat = BED_ALT();
|
237
|
235
|
|
238
|
|
- if (PAGE_UNDER(7)) {
|
239
|
|
- #if HEATER_IDLE_HANDLER
|
240
|
|
- const bool is_idle = IFBED(thermalManager.bed_idle.timed_out, thermalManager.hotend_idle[heater].timed_out),
|
241
|
|
- dodraw = (blink || !is_idle);
|
|
236
|
+ const uint8_t tx = STATUS_BED_TEXT_X;
|
|
237
|
+
|
|
238
|
+ const float temp = thermalManager.degBed(),
|
|
239
|
+ target = thermalManager.degTargetBed();
|
|
240
|
+
|
|
241
|
+ #if DO_DRAW_BED && DISABLED(STATUS_BED_ANIM)
|
|
242
|
+ #define STATIC_BED true
|
|
243
|
+ #define BED_DOT isHeat
|
242
|
244
|
#else
|
243
|
|
- constexpr bool dodraw = true;
|
|
245
|
+ #define STATIC_BED false
|
|
246
|
+ #define BED_DOT false
|
244
|
247
|
#endif
|
245
|
|
- if (dodraw) _draw_centered_temp(target + 0.5, tx, 7);
|
246
|
|
- }
|
247
|
248
|
|
248
|
|
- if (PAGE_CONTAINS(28 - INFO_FONT_ASCENT, 28 - 1))
|
249
|
|
- _draw_centered_temp(temp + 0.5f, tx, 28);
|
|
249
|
+ if (PAGE_CONTAINS(STATUS_HEATERS_Y, STATUS_HEATERS_BOT)) {
|
250
|
250
|
|
251
|
|
- if (IFBED(STATIC_BED && BED_DOT, STATIC_HOTEND && HOTEND_DOT) && PAGE_CONTAINS(17, 19)) {
|
252
|
|
- u8g.setColorIndex(0); // set to white on black
|
253
|
|
- u8g.drawBox(tx, IFBED(20-2, 20-3), 2, 2);
|
254
|
|
- u8g.setColorIndex(1); // restore black on white
|
255
|
|
- }
|
|
251
|
+ #define BAR_TALL (STATUS_HEATERS_HEIGHT - 2)
|
256
|
252
|
|
257
|
|
-}
|
|
253
|
+ const float prop = target - 20,
|
|
254
|
+ perc = prop > 0 && temp >= 20 ? (temp - 20) / prop : 0;
|
|
255
|
+ uint8_t tall = uint8_t(perc * BAR_TALL + 0.5f);
|
|
256
|
+ NOMORE(tall, BAR_TALL);
|
258
|
257
|
|
259
|
|
-#if DO_DRAW_CHAMBER
|
|
258
|
+ // Draw a heating progress bar, if specified
|
|
259
|
+ #if ENABLED(STATUS_HEAT_PERCENT)
|
|
260
|
+
|
|
261
|
+ if (isHeat) {
|
|
262
|
+ const uint8_t bx = STATUS_BED_X + STATUS_BED_WIDTH;
|
|
263
|
+ u8g.drawFrame(bx, STATUS_HEATERS_Y, 3, STATUS_HEATERS_HEIGHT);
|
|
264
|
+ if (tall) {
|
|
265
|
+ const uint8_t ph = STATUS_HEATERS_HEIGHT - 1 - tall;
|
|
266
|
+ if (PAGE_OVER(STATUS_HEATERS_Y + ph))
|
|
267
|
+ u8g.drawVLine(bx + 1, STATUS_HEATERS_Y + ph, tall);
|
|
268
|
+ }
|
|
269
|
+ }
|
260
|
270
|
|
261
|
|
- FORCE_INLINE void _draw_chamber_status(const bool blink) {
|
262
|
|
- #if ENABLED(MARLIN_DEV_MODE)
|
263
|
|
- const float temp = 10 + (millis() >> 8) % CHAMBER_MAXTEMP,
|
264
|
|
- target = CHAMBER_MAXTEMP;
|
265
|
|
- #else
|
266
|
|
- const float temp = thermalManager.degChamber();
|
267
|
|
- #if HAS_HEATED_CHAMBER
|
268
|
|
- const float target = thermalManager.degTargetChamber();
|
269
|
271
|
#endif
|
270
|
|
- #endif
|
271
|
272
|
|
272
|
|
- #if !HEATER_IDLE_HANDLER
|
273
|
|
- UNUSED(blink);
|
274
|
|
- #endif
|
|
273
|
+ } // PAGE_CONTAINS
|
275
|
274
|
|
276
|
275
|
if (PAGE_UNDER(7)) {
|
277
|
276
|
#if HEATER_IDLE_HANDLER
|
278
|
|
- const bool is_idle = false, // thermalManager.chamber_idle.timed_out,
|
|
277
|
+ const bool is_idle = thermalManager.bed_idle.timed_out,
|
279
|
278
|
dodraw = (blink || !is_idle);
|
280
|
279
|
#else
|
281
|
280
|
constexpr bool dodraw = true;
|
282
|
281
|
#endif
|
283
|
|
- #if HAS_HEATED_CHAMBER
|
284
|
|
- if (dodraw) _draw_centered_temp(target + 0.5, STATUS_CHAMBER_TEXT_X, 7);
|
285
|
|
- #else
|
286
|
|
- UNUSED(dodraw);
|
287
|
|
- #endif
|
|
282
|
+ if (dodraw) _draw_centered_temp(target + 0.5, tx, 7);
|
288
|
283
|
}
|
|
284
|
+
|
289
|
285
|
if (PAGE_CONTAINS(28 - INFO_FONT_ASCENT, 28 - 1))
|
290
|
|
- _draw_centered_temp(temp + 0.5f, STATUS_CHAMBER_TEXT_X, 28);
|
|
286
|
+ _draw_centered_temp(temp + 0.5f, tx, 28);
|
|
287
|
+
|
|
288
|
+ if (STATIC_BED && BED_DOT && PAGE_CONTAINS(17, 19)) {
|
|
289
|
+ u8g.setColorIndex(0); // set to white on black
|
|
290
|
+ u8g.drawBox(tx, 20 - 2, 2, 2);
|
|
291
|
+ u8g.setColorIndex(1); // restore black on white
|
|
292
|
+ }
|
|
293
|
+
|
|
294
|
+ }
|
|
295
|
+
|
|
296
|
+#endif // DO_DRAW_BED
|
|
297
|
+
|
|
298
|
+#if DO_DRAW_CHAMBER
|
|
299
|
+
|
|
300
|
+ FORCE_INLINE void _draw_chamber_status() {
|
|
301
|
+ #if HAS_HEATED_CHAMBER
|
|
302
|
+ if (PAGE_UNDER(7))
|
|
303
|
+ _draw_centered_temp(thermalManager.degTargetChamber() + 0.5f, STATUS_CHAMBER_TEXT_X, 7);
|
|
304
|
+ #endif
|
|
305
|
+
|
|
306
|
+ if (PAGE_CONTAINS(28 - INFO_FONT_ASCENT, 28 - 1))
|
|
307
|
+ _draw_centered_temp(thermalManager.degChamber() + 0.5f, STATUS_CHAMBER_TEXT_X, 28);
|
291
|
308
|
}
|
292
|
309
|
|
293
|
310
|
#endif // DO_DRAW_CHAMBER
|
|
@@ -323,17 +340,8 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
|
323
|
340
|
}
|
324
|
341
|
}
|
325
|
342
|
|
326
|
|
-#if ENABLED(MARLIN_DEV_MODE)
|
327
|
|
- uint16_t count_renders = 0;
|
328
|
|
- uint32_t total_cycles = 0;
|
329
|
|
-#endif
|
330
|
|
-
|
331
|
343
|
void MarlinUI::draw_status_screen() {
|
332
|
344
|
|
333
|
|
- #if ENABLED(MARLIN_DEV_MODE)
|
334
|
|
- if (first_page) count_renders++;
|
335
|
|
- #endif
|
336
|
|
-
|
337
|
345
|
static char xstring[5
|
338
|
346
|
#if ENABLED(LCD_SHOW_E_TOTAL)
|
339
|
347
|
+ 7
|
|
@@ -378,13 +386,13 @@ void MarlinUI::draw_status_screen() {
|
378
|
386
|
#if ANIM_HBC
|
379
|
387
|
uint8_t new_bits = 0;
|
380
|
388
|
#if ANIM_HOTEND
|
381
|
|
- HOTEND_LOOP() if (thermalManager.isHeatingHotend(e) ^ SHOW_ON_STATE) SBI(new_bits, e);
|
|
389
|
+ HOTEND_LOOP() if (thermalManager.isHeatingHotend(e)) SBI(new_bits, e);
|
382
|
390
|
#endif
|
383
|
391
|
#if ANIM_BED
|
384
|
|
- if (thermalManager.isHeatingBed() ^ SHOW_ON_STATE) SBI(new_bits, 7);
|
|
392
|
+ if (thermalManager.isHeatingBed()) SBI(new_bits, 7);
|
385
|
393
|
#endif
|
386
|
394
|
#if DO_DRAW_CHAMBER && HAS_HEATED_CHAMBER
|
387
|
|
- if (thermalManager.isHeatingChamber() ^ SHOW_ON_STATE) SBI(new_bits, 6);
|
|
395
|
+ if (thermalManager.isHeatingChamber()) SBI(new_bits, 6);
|
388
|
396
|
#endif
|
389
|
397
|
heat_bits = new_bits;
|
390
|
398
|
#endif
|
|
@@ -486,10 +494,6 @@ void MarlinUI::draw_status_screen() {
|
486
|
494
|
// Status Menu Font
|
487
|
495
|
set_font(FONT_STATUSMENU);
|
488
|
496
|
|
489
|
|
- #if ENABLED(MARLIN_DEV_MODE)
|
490
|
|
- TCNT5 = 0;
|
491
|
|
- #endif
|
492
|
|
-
|
493
|
497
|
#if DO_DRAW_LOGO
|
494
|
498
|
if (PAGE_CONTAINS(STATUS_LOGO_Y, STATUS_LOGO_Y + STATUS_LOGO_HEIGHT - 1))
|
495
|
499
|
u8g.drawBitmapP(STATUS_LOGO_X, STATUS_LOGO_Y, STATUS_LOGO_BYTEWIDTH, STATUS_LOGO_HEIGHT, status_logo_bmp);
|
|
@@ -556,16 +560,16 @@ void MarlinUI::draw_status_screen() {
|
556
|
560
|
// Extruders
|
557
|
561
|
#if HOTENDS
|
558
|
562
|
for (uint8_t e = 0; e < MAX_HOTEND_DRAW; ++e)
|
559
|
|
- _draw_heater_status((heater_ind_t)e, blink);
|
|
563
|
+ _draw_hotend_status((heater_ind_t)e, blink);
|
560
|
564
|
#endif
|
561
|
565
|
|
562
|
566
|
// Heated bed
|
563
|
567
|
#if DO_DRAW_BED && DISABLED(STATUS_COMBINE_HEATERS) || (HAS_HEATED_BED && ENABLED(STATUS_COMBINE_HEATERS) && HOTENDS <= 4)
|
564
|
|
- _draw_heater_status(H_BED, blink);
|
|
568
|
+ _draw_bed_status(blink);
|
565
|
569
|
#endif
|
566
|
570
|
|
567
|
571
|
#if DO_DRAW_CHAMBER
|
568
|
|
- _draw_chamber_status(blink);
|
|
572
|
+ _draw_chamber_status();
|
569
|
573
|
#endif
|
570
|
574
|
|
571
|
575
|
// Fan, if a bitmap was provided
|
|
@@ -587,10 +591,6 @@ void MarlinUI::draw_status_screen() {
|
587
|
591
|
#endif
|
588
|
592
|
}
|
589
|
593
|
|
590
|
|
- #if ENABLED(MARLIN_DEV_MODE)
|
591
|
|
- total_cycles += TCNT5;
|
592
|
|
- #endif
|
593
|
|
-
|
594
|
594
|
#if ENABLED(SDSUPPORT)
|
595
|
595
|
//
|
596
|
596
|
// SD Card Symbol
|
|
@@ -795,17 +795,6 @@ void MarlinUI::draw_status_screen() {
|
795
|
795
|
|
796
|
796
|
void MarlinUI::draw_status_message(const bool blink) {
|
797
|
797
|
|
798
|
|
- #if ENABLED(MARLIN_DEV_MODE)
|
799
|
|
- if (PAGE_CONTAINS(64-8, 64-1)) {
|
800
|
|
- lcd_put_int(total_cycles);
|
801
|
|
- lcd_put_wchar('/');
|
802
|
|
- lcd_put_int(count_renders);
|
803
|
|
- lcd_put_wchar('=');
|
804
|
|
- lcd_put_int(int(total_cycles / count_renders));
|
805
|
|
- return;
|
806
|
|
- }
|
807
|
|
- #endif
|
808
|
|
-
|
809
|
798
|
// Get the UTF8 character count of the string
|
810
|
799
|
uint8_t slen = utf8_strlen(status_message);
|
811
|
800
|
|