|
@@ -29,11 +29,14 @@
|
29
|
29
|
*/
|
30
|
30
|
|
31
|
31
|
#include "../../inc/MarlinConfig.h"
|
|
32
|
+#include "ultralcd_DOGM.h"
|
32
|
33
|
|
33
|
34
|
#define BW(N) ((N + 7) / 8)
|
34
|
35
|
|
35
|
|
-#if ENABLED(CUSTOM_STATUS_SCREEN_IMAGE)
|
|
36
|
+#if ENABLED(CUSTOM_STATUS_SCREEN_IMAGE) && DISABLED(STATUS_COMBINE_HEATERS)
|
36
|
37
|
|
|
38
|
+ #undef STATUS_HEATERS_X
|
|
39
|
+ #undef STATUS_BED_X
|
37
|
40
|
/**
|
38
|
41
|
* Custom _Statusscreen.h files can define:
|
39
|
42
|
* - A custom logo image
|
|
@@ -50,54 +53,26 @@
|
50
|
53
|
|
51
|
54
|
#endif
|
52
|
55
|
|
53
|
|
-#if ENABLED(STATUS_COMBINE_HEATERS)
|
54
|
|
- #undef STATUS_HOTEND_ANIM
|
55
|
|
- #undef STATUS_BED_ANIM
|
56
|
|
-#endif
|
57
|
|
-
|
58
|
56
|
//
|
59
|
57
|
// Default Status Screen Heater or Hotends bitmaps
|
60
|
58
|
//
|
61
|
|
-
|
62
|
59
|
#if !STATUS_HEATERS_WIDTH && !STATUS_HOTEND1_WIDTH
|
63
|
60
|
|
64
|
61
|
#if ENABLED(STATUS_COMBINE_HEATERS)
|
65
|
62
|
|
|
63
|
+ #undef STATUS_HOTEND_ANIM
|
|
64
|
+ #undef STATUS_BED_ANIM
|
|
65
|
+ #define STATUS_HEATERS_XSPACE 24
|
|
66
|
+
|
66
|
67
|
//
|
67
|
68
|
// Status Screen Combined Heater bitmaps
|
68
|
69
|
//
|
|
70
|
+ #if HAS_HEATED_BED && HOTENDS <= 4
|
69
|
71
|
|
70
|
|
- #if HAS_HEATED_BED && HOTENDS == 0
|
71
|
|
- #define STATUS_HEATERS_X 80
|
72
|
|
- #endif
|
73
|
|
-
|
74
|
|
- #if HAS_HEATED_BED && HOTENDS <= 3
|
75
|
|
-
|
76
|
|
- #define STATUS_BED_WIDTH 21
|
77
|
|
-
|
78
|
|
- #if HOTENDS == 0
|
79
|
|
-
|
80
|
|
- #define STATUS_HEATERS_WIDTH 21
|
81
|
|
-
|
82
|
|
- const unsigned char status_heaters_bmp[] PROGMEM = {
|
83
|
|
- B00000100,B00010000,B01000000,
|
84
|
|
- B00000010,B00001000,B00100000,
|
85
|
|
- B00000010,B00001000,B00100000,
|
86
|
|
- B00000100,B00010000,B01000000,
|
87
|
|
- B00001000,B00100000,B10000000,
|
88
|
|
- B00010000,B01000001,B00000000,
|
89
|
|
- B00010000,B01000001,B00000000,
|
90
|
|
- B00001000,B00100000,B10000000,
|
91
|
|
- B00000100,B00010000,B01000000,
|
92
|
|
- B00000000,B00000000,B00000000,
|
93
|
|
- B00011111,B11111111,B11111000,
|
94
|
|
- B00011111,B11111111,B11111000
|
95
|
|
- };
|
96
|
|
-
|
97
|
|
- #elif HOTENDS == 1
|
|
72
|
+ #if HOTENDS == 1
|
98
|
73
|
|
99
|
|
- #define STATUS_HEATERS_WIDTH 90
|
100
|
|
- #define STATUS_BED_X 80
|
|
74
|
+ #define STATUS_HEATERS_WIDTH 96
|
|
75
|
+ #define STATUS_BED_TEXT_X (STATUS_HEATERS_WIDTH - 10)
|
101
|
76
|
|
102
|
77
|
const unsigned char status_heaters_bmp[] PROGMEM = {
|
103
|
78
|
B00011111,B11100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000100,B00010000,B01000000,
|
|
@@ -116,7 +91,8 @@
|
116
|
91
|
|
117
|
92
|
#elif HOTENDS == 2
|
118
|
93
|
|
119
|
|
- #define STATUS_HEATERS_WIDTH 90
|
|
94
|
+ #define STATUS_HEATERS_WIDTH 96
|
|
95
|
+ #define STATUS_BED_TEXT_X (STATUS_HEATERS_WIDTH - 10)
|
120
|
96
|
|
121
|
97
|
const unsigned char status_heaters_bmp[] PROGMEM = {
|
122
|
98
|
B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00000000,B00000000,B00000000,B00000100,B00010000,B01000000,
|
|
@@ -133,9 +109,10 @@
|
133
|
109
|
B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B00000000,B00000000,B00011111,B11111111,B11111000
|
134
|
110
|
};
|
135
|
111
|
|
136
|
|
- #else // HOTENDS > 2
|
|
112
|
+ #elif HOTENDS == 3
|
137
|
113
|
|
138
|
|
- #define STATUS_HEATERS_WIDTH 90
|
|
114
|
+ #define STATUS_HEATERS_WIDTH 96
|
|
115
|
+ #define STATUS_BED_TEXT_X (STATUS_HEATERS_WIDTH - 10)
|
139
|
116
|
|
140
|
117
|
const unsigned char status_heaters_bmp[] PROGMEM = {
|
141
|
118
|
B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00000100,B00010000,B01000000,
|
|
@@ -152,13 +129,33 @@
|
152
|
129
|
B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00011111,B11111111,B11111000
|
153
|
130
|
};
|
154
|
131
|
|
|
132
|
+ #else // HOTENDS > 3
|
|
133
|
+
|
|
134
|
+ #define STATUS_HEATERS_WIDTH 120
|
|
135
|
+ #define STATUS_BED_TEXT_X (STATUS_HEATERS_WIDTH - 10)
|
|
136
|
+
|
|
137
|
+ const unsigned char status_heaters_bmp[] PROGMEM = {
|
|
138
|
+ B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00000100,B00010000,B01000000,
|
|
139
|
+ B00111110,B11110000,B00000000,B00111100,B11110000,B00000000,B00111100,B11110000,B00000000,B00111011,B01110000,B00000000,B00000010,B00001000,B00100000,
|
|
140
|
+ B00111100,B11110000,B00000000,B00111011,B01110000,B00000000,B00111011,B01110000,B00000000,B00111011,B01110000,B00000000,B00000010,B00001000,B00100000,
|
|
141
|
+ B00111010,B11110000,B00000000,B00111111,B01110000,B00000000,B00111111,B01110000,B00000000,B00111011,B01110000,B00000000,B00000100,B00010000,B01000000,
|
|
142
|
+ B00011110,B11100000,B00000000,B00011110,B11100000,B00000000,B00011100,B11100000,B00000000,B00011011,B01100000,B00000000,B00001000,B00100000,B10000000,
|
|
143
|
+ B00011110,B11100000,B00000000,B00011101,B11100000,B00000000,B00011111,B01100000,B00000000,B00011000,B00100000,B00000000,B00010000,B01000001,B00000000,
|
|
144
|
+ B00111110,B11110000,B00000000,B00111011,B11110000,B00000000,B00111011,B01110000,B00000000,B00111111,B01110000,B00000000,B00010000,B01000001,B00000000,
|
|
145
|
+ B00111110,B11110000,B00000000,B00111000,B01110000,B00000000,B00111100,B11110000,B00000000,B00111111,B01110000,B00000000,B00001000,B00100000,B10000000,
|
|
146
|
+ B00111111,B11110000,B00000000,B00111111,B11110000,B00000000,B00111111,B11110000,B00000000,B00111111,B11110000,B00000000,B00000100,B00010000,B01000000,
|
|
147
|
+ B00001111,B11000000,B00000000,B00001111,B11000000,B00000000,B00001111,B11000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,
|
|
148
|
+ B00000111,B10000000,B00000000,B00000111,B10000000,B00000000,B00000111,B10000000,B00000000,B00000111,B10000000,B00000000,B00011111,B11111111,B11111000,
|
|
149
|
+ B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00011111,B11111111,B11111000
|
|
150
|
+ };
|
|
151
|
+
|
155
|
152
|
#endif // HOTENDS
|
156
|
153
|
|
157
|
154
|
#else // !HAS_HEATED_BED || HOTENDS > 3
|
158
|
155
|
|
159
|
156
|
#if HOTENDS == 1
|
160
|
157
|
|
161
|
|
- #define STATUS_HEATERS_WIDTH 11
|
|
158
|
+ #define STATUS_HEATERS_WIDTH 12
|
162
|
159
|
|
163
|
160
|
const unsigned char status_heaters_bmp[] PROGMEM = {
|
164
|
161
|
B00011111,B11100000,
|
|
@@ -213,7 +210,7 @@
|
213
|
210
|
B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000
|
214
|
211
|
};
|
215
|
212
|
|
216
|
|
- #elif HOTENDS > 3
|
|
213
|
+ #elif HOTENDS == 4
|
217
|
214
|
|
218
|
215
|
#define STATUS_HEATERS_WIDTH 84
|
219
|
216
|
|
|
@@ -232,6 +229,25 @@
|
232
|
229
|
B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000
|
233
|
230
|
};
|
234
|
231
|
|
|
232
|
+ #elif HOTENDS > 4
|
|
233
|
+
|
|
234
|
+ #define STATUS_HEATERS_WIDTH 108
|
|
235
|
+
|
|
236
|
+ const unsigned char status_heaters_bmp[] PROGMEM = {
|
|
237
|
+ B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00011111,B11100000,
|
|
238
|
+ B00111110,B11110000,B00000000,B00111100,B11110000,B00000000,B00111100,B11110000,B00000000,B00111011,B01110000,B00000000,B00111000,B01110000,
|
|
239
|
+ B00111100,B11110000,B00000000,B00111011,B01110000,B00000000,B00111011,B01110000,B00000000,B00111011,B01110000,B00000000,B00111011,B11110000,
|
|
240
|
+ B00111010,B11110000,B00000000,B00111111,B01110000,B00000000,B00111111,B01110000,B00000000,B00111011,B01110000,B00000000,B00111000,B11110000,
|
|
241
|
+ B00011110,B11100000,B00000000,B00011110,B11100000,B00000000,B00011100,B11100000,B00000000,B00011011,B01100000,B00000000,B00011111,B01100000,
|
|
242
|
+ B00011110,B11100000,B00000000,B00011101,B11100000,B00000000,B00011111,B01100000,B00000000,B00011000,B00100000,B00000000,B00011111,B01100000,
|
|
243
|
+ B00111110,B11110000,B00000000,B00111011,B11110000,B00000000,B00111011,B01110000,B00000000,B00111111,B01110000,B00000000,B00111011,B01110000,
|
|
244
|
+ B00111110,B11110000,B00000000,B00111000,B01110000,B00000000,B00111100,B11110000,B00000000,B00111111,B01110000,B00000000,B00111100,B11110000,
|
|
245
|
+ B00111111,B11110000,B00000000,B00111111,B11110000,B00000000,B00111111,B11110000,B00000000,B00111111,B11110000,B00000000,B00111111,B11110000,
|
|
246
|
+ B00001111,B11000000,B00000000,B00001111,B11000000,B00000000,B00001111,B11000000,B00000000,B00001111,B11000000,B00000000,B00001111,B11000000,
|
|
247
|
+ B00000111,B10000000,B00000000,B00000111,B10000000,B00000000,B00000111,B10000000,B00000000,B00000111,B10000000,B00000000,B00000111,B10000000,
|
|
248
|
+ B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000
|
|
249
|
+ };
|
|
250
|
+
|
235
|
251
|
#endif // HOTENDS
|
236
|
252
|
|
237
|
253
|
#endif // !HAS_HEATED_BED || HOTENDS > 3
|
|
@@ -241,10 +257,16 @@
|
241
|
257
|
//
|
242
|
258
|
// Status Screen Hotends bitmaps
|
243
|
259
|
//
|
244
|
|
-
|
245
|
260
|
#if HOTENDS
|
246
|
261
|
|
247
|
|
- #define STATUS_HOTEND1_WIDTH 12
|
|
262
|
+ #define STATUS_HOTEND1_WIDTH 16
|
|
263
|
+
|
|
264
|
+ #define MAX_HOTEND_BITMAPS 5
|
|
265
|
+ #if HOTENDS > MAX_HOTEND_BITMAPS
|
|
266
|
+ #define STATUS_HOTEND_BITMAPS MAX_HOTEND_BITMAPS
|
|
267
|
+ #else
|
|
268
|
+ #define STATUS_HOTEND_BITMAPS HOTENDS
|
|
269
|
+ #endif
|
248
|
270
|
|
249
|
271
|
#if HOTENDS == 1 || ENABLED(STATUS_HOTEND_NUMBERLESS)
|
250
|
272
|
|
|
@@ -286,17 +308,6 @@
|
286
|
308
|
|
287
|
309
|
#if HOTENDS >= 2
|
288
|
310
|
|
289
|
|
- #if HAS_HEATED_BED
|
290
|
|
- #define MAX_HOTEND_BITMAPS 3
|
291
|
|
- #else
|
292
|
|
- #define MAX_HOTEND_BITMAPS 4
|
293
|
|
- #endif
|
294
|
|
- #if HOTENDS > MAX_HOTEND_BITMAPS
|
295
|
|
- #define STATUS_HOTEND_BITMAPS MAX_HOTEND_BITMAPS
|
296
|
|
- #else
|
297
|
|
- #define STATUS_HOTEND_BITMAPS HOTENDS
|
298
|
|
- #endif
|
299
|
|
-
|
300
|
311
|
#ifdef STATUS_HOTEND_ANIM
|
301
|
312
|
|
302
|
313
|
const unsigned char status_hotend1_a_bmp[] PROGMEM = {
|
|
@@ -450,7 +461,7 @@
|
450
|
461
|
|
451
|
462
|
#endif
|
452
|
463
|
|
453
|
|
- #if STATUS_HOTEND_BITMAPS >= 4 && !HAS_HEATED_BED
|
|
464
|
+ #if STATUS_HOTEND_BITMAPS >= 4
|
454
|
465
|
|
455
|
466
|
#ifdef STATUS_HOTEND_ANIM
|
456
|
467
|
|
|
@@ -505,7 +516,7 @@
|
505
|
516
|
|
506
|
517
|
#endif
|
507
|
518
|
|
508
|
|
- #if STATUS_HOTEND_BITMAPS >= 5 && !HAS_HEATED_BED
|
|
519
|
+ #if STATUS_HOTEND_BITMAPS >= 5
|
509
|
520
|
|
510
|
521
|
#ifdef STATUS_HOTEND_ANIM
|
511
|
522
|
|
|
@@ -571,17 +582,16 @@
|
571
|
582
|
//
|
572
|
583
|
// Default Status Screen Bed bitmaps
|
573
|
584
|
//
|
574
|
|
-
|
575
|
|
-#if !STATUS_BED_WIDTH && DISABLED(STATUS_COMBINE_HEATERS) && HAS_HEATED_BED && HOTENDS < 4
|
|
585
|
+#if !STATUS_BED_WIDTH && HAS_HEATED_BED && DISABLED(STATUS_COMBINE_HEATERS)
|
576
|
586
|
|
577
|
587
|
#if ENABLED(STATUS_ALT_BED_BITMAP)
|
578
|
588
|
|
579
|
589
|
#define STATUS_BED_ANIM
|
580
|
590
|
#define STATUS_BED_WIDTH 24
|
581
|
591
|
#ifndef STATUS_BED_X
|
582
|
|
- #define STATUS_BED_X 72
|
|
592
|
+ #define STATUS_BED_X (LCD_PIXEL_WIDTH - (STATUS_BED_BYTEWIDTH + STATUS_CHAMBER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH) * 8)
|
583
|
593
|
#endif
|
584
|
|
- #define STATUS_BED_TEXT_X (STATUS_BED_X + 13)
|
|
594
|
+ #define STATUS_BED_TEXT_X (STATUS_BED_X + 11)
|
585
|
595
|
|
586
|
596
|
const unsigned char status_bed_bmp[] PROGMEM = {
|
587
|
597
|
B11111111,B11111111,B11000000,
|
|
@@ -612,7 +622,7 @@
|
612
|
622
|
|
613
|
623
|
#define STATUS_BED_WIDTH 21
|
614
|
624
|
#ifndef STATUS_BED_X
|
615
|
|
- #define STATUS_BED_X 80
|
|
625
|
+ #define STATUS_BED_X (LCD_PIXEL_WIDTH - (STATUS_BED_BYTEWIDTH + STATUS_CHAMBER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH) * 8)
|
616
|
626
|
#endif
|
617
|
627
|
|
618
|
628
|
#ifdef STATUS_BED_ANIM
|
|
@@ -657,81 +667,104 @@
|
657
|
667
|
#endif
|
658
|
668
|
|
659
|
669
|
#endif
|
|
670
|
+#else
|
|
671
|
+ #define STATUS_BED_WIDTH 0
|
|
672
|
+#endif
|
660
|
673
|
|
661
|
|
-#endif // !STATUS_BED_WIDTH && !STATUS_COMBINE_HEATERS && HAS_HEATED_BED && HOTENDS < 4
|
|
674
|
+#if !STATUS_CHAMBER_WIDTH && HAS_HEATED_CHAMBER && ((HOTENDS <= 4 && !HAS_HEATED_BED) || (HOTENDS <= 3 && HAS_HEATED_BED))
|
662
|
675
|
|
663
|
|
-#if HAS_HEATED_CHAMBER
|
|
676
|
+ #define STATUS_CHAMBER_WIDTH 21
|
664
|
677
|
|
665
|
|
- #define STATUS_CHAMBER_WIDTH 16
|
|
678
|
+ #if STATUS_HEATERS_WIDTH
|
|
679
|
+ #if ENABLED(STATUS_COMBINE_HEATERS)
|
|
680
|
+ #define STATUS_CHAMBER_X (LCD_PIXEL_WIDTH - 2 - (STATUS_CHAMBER_BYTEWIDTH) * 8)
|
|
681
|
+ #elif HAS_FAN0 && HAS_HEATED_BED && HOTENDS <= 2
|
|
682
|
+ #define STATUS_CHAMBER_X (LCD_PIXEL_WIDTH - 2 - (STATUS_HEATERS_BYTEWIDTH - STATUS_CHAMBER_BYTEWIDTH) * 8)
|
|
683
|
+ #elif HAS_FAN0 && !HAS_HEATED_BED
|
|
684
|
+ #define STATUS_CHAMBER_X (LCD_PIXEL_WIDTH - (STATUS_CHAMBER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH) * 8)
|
|
685
|
+ #else
|
|
686
|
+ #define STATUS_CHAMBER_X (LCD_PIXEL_WIDTH - (STATUS_CHAMBER_BYTEWIDTH) * 8)
|
|
687
|
+ #endif
|
|
688
|
+ #endif
|
666
|
689
|
|
667
|
690
|
#ifdef STATUS_CHAMBER_ANIM
|
668
|
691
|
|
669
|
692
|
const unsigned char status_chamber_bmp[] PROGMEM = {
|
670
|
|
- B11111111,B11111111,
|
671
|
|
- B10000000,B00000001,
|
672
|
|
- B10000000,B00000001,
|
673
|
|
- B10000000,B00000001,
|
674
|
|
- B10000000,B00000001,
|
675
|
|
- B10000000,B00000001,
|
676
|
|
- B10000000,B00000001,
|
677
|
|
- B10000000,B00000001,
|
678
|
|
- B10000000,B00000001,
|
679
|
|
- B10000000,B00000001,
|
680
|
|
- B11111111,B11111111,
|
681
|
|
- B11111111,B11111111
|
|
693
|
+ B00011111,B11111111,B11111000,
|
|
694
|
+ B00010000,B00000000,B00001000,
|
|
695
|
+ B00010000,B00000000,B00001000,
|
|
696
|
+ B00010000,B00000000,B00001000,
|
|
697
|
+ B00010000,B00000000,B00001000,
|
|
698
|
+ B00010000,B00000000,B00001000,
|
|
699
|
+ B00010000,B00000000,B00001000,
|
|
700
|
+ B00010000,B00000000,B00001000,
|
|
701
|
+ B00010000,B00000000,B00001000,
|
|
702
|
+ B00010000,B00000000,B00001000,
|
|
703
|
+ B00011111,B11111111,B11111000,
|
|
704
|
+ B00011111,B11111111,B11111000
|
682
|
705
|
};
|
683
|
706
|
|
684
|
707
|
const unsigned char status_chamber_on_bmp[] PROGMEM = {
|
685
|
|
- B11111111,B11111111,
|
686
|
|
- B10000000,B00000001,
|
687
|
|
- B10000100,B00100001,
|
688
|
|
- B10000010,B00010001,
|
689
|
|
- B10000010,B00010001,
|
690
|
|
- B10000100,B00100001,
|
691
|
|
- B10001000,B01000001,
|
692
|
|
- B10001000,B01000001,
|
693
|
|
- B10000100,B00100001,
|
694
|
|
- B10000000,B00000001,
|
695
|
|
- B11111111,B11111111,
|
696
|
|
- B11111111,B11111111
|
|
708
|
+ B00011111,B11111111,B11111000,
|
|
709
|
+ B00010000,B00000000,B00001000,
|
|
710
|
+ B00010000,B10000100,B00001000,
|
|
711
|
+ B00010000,B01000010,B00001000,
|
|
712
|
+ B00010000,B01000010,B00001000,
|
|
713
|
+ B00010000,B10000100,B00001000,
|
|
714
|
+ B00010001,B00001000,B00001000,
|
|
715
|
+ B00010001,B00001000,B00001000,
|
|
716
|
+ B00010000,B10000100,B00001000,
|
|
717
|
+ B00010000,B00000000,B00001000,
|
|
718
|
+ B00011111,B11111111,B11111000,
|
|
719
|
+ B00011111,B11111111,B11111000
|
697
|
720
|
};
|
698
|
721
|
|
699
|
722
|
#else
|
700
|
723
|
|
701
|
724
|
const unsigned char status_chamber_bmp[] PROGMEM = {
|
702
|
|
- B11111111,B11111111,
|
703
|
|
- B10000000,B00000001,
|
704
|
|
- B10000100,B00100001,
|
705
|
|
- B10000010,B00010001,
|
706
|
|
- B10000010,B00010001,
|
707
|
|
- B10000100,B00100001,
|
708
|
|
- B10001000,B01000001,
|
709
|
|
- B10001000,B01000001,
|
710
|
|
- B10000100,B00100001,
|
711
|
|
- B10000000,B00000001,
|
712
|
|
- B11111111,B11111111,
|
713
|
|
- B11111111,B11111111
|
|
725
|
+ B00011111,B11111111,B11111000,
|
|
726
|
+ B00010000,B00000000,B00001000,
|
|
727
|
+ B00010000,B10000100,B00001000,
|
|
728
|
+ B00010000,B01000010,B00001000,
|
|
729
|
+ B00010000,B01000010,B00001000,
|
|
730
|
+ B00010000,B10000100,B00001000,
|
|
731
|
+ B00010001,B00001000,B00001000,
|
|
732
|
+ B00010001,B00001000,B00001000,
|
|
733
|
+ B00010000,B10000100,B00001000,
|
|
734
|
+ B00010000,B00000000,B00001000,
|
|
735
|
+ B00011111,B11111111,B11111000,
|
|
736
|
+ B00011111,B11111111,B11111000
|
714
|
737
|
};
|
715
|
738
|
|
716
|
739
|
#endif
|
|
740
|
+#else // HAS_HEATED_CHAMBER
|
|
741
|
+ #define STATUS_CHAMBER_WIDTH 0
|
|
742
|
+#endif
|
717
|
743
|
|
718
|
|
-#endif // HAS_HEATED_CHAMBER
|
|
744
|
+#define BED_CHAM (HAS_HEATED_BED || HAS_HEATED_CHAMBER)
|
|
745
|
+#define BED_CHAM_FAN (BED_CHAM || HAS_FAN0)
|
719
|
746
|
|
720
|
|
-// Can also be overridden in Configuration.h
|
|
747
|
+// Can also be overridden in Configuration_adv.h
|
721
|
748
|
// If you can afford it, try the 3-frame fan animation!
|
722
|
749
|
// Don't compile in the fan animation with no fan
|
723
|
|
-#if !HAS_FAN0
|
|
750
|
+#if !HAS_FAN0 || (HOTENDS == 5 || (HOTENDS == 4 && BED_CHAM) || (ENABLED(STATUS_COMBINE_HEATERS) && HAS_HEATED_CHAMBER))
|
724
|
751
|
#undef STATUS_FAN_FRAMES
|
725
|
|
-#elif !defined(STATUS_FAN_FRAMES)
|
|
752
|
+#elif !STATUS_FAN_FRAMES
|
726
|
753
|
#define STATUS_FAN_FRAMES 2
|
727
|
754
|
#elif STATUS_FAN_FRAMES > 4
|
728
|
755
|
#error "A maximum of 4 fan animation frames is currently supported."
|
729
|
756
|
#endif
|
730
|
757
|
|
|
758
|
+#if HOTENDS > 4
|
|
759
|
+ #undef STATUS_LOGO_WIDTH
|
|
760
|
+ #undef STATUS_HEATERS_XSPACE
|
|
761
|
+ #define STATUS_HEATERS_XSPACE 24
|
|
762
|
+#endif
|
|
763
|
+
|
731
|
764
|
//
|
732
|
765
|
// Provide default Fan Bitmaps
|
733
|
766
|
//
|
734
|
|
-#if !defined(STATUS_FAN_WIDTH) && STATUS_FAN_FRAMES > 0
|
|
767
|
+#if !STATUS_FAN_WIDTH && STATUS_FAN_FRAMES > 0
|
735
|
768
|
|
736
|
769
|
// Provide a fan animation if none exists
|
737
|
770
|
|
|
@@ -836,7 +869,7 @@
|
836
|
869
|
|
837
|
870
|
#elif STATUS_FAN_FRAMES == 3
|
838
|
871
|
|
839
|
|
- #define STATUS_FAN_WIDTH 21
|
|
872
|
+ #define STATUS_FAN_WIDTH 20
|
840
|
873
|
|
841
|
874
|
#if ENABLED(STATUS_ALT_FAN_BITMAP)
|
842
|
875
|
|
|
@@ -974,7 +1007,7 @@
|
974
|
1007
|
|
975
|
1008
|
#elif STATUS_FAN_FRAMES == 4
|
976
|
1009
|
|
977
|
|
- #define STATUS_FAN_WIDTH 21
|
|
1010
|
+ #define STATUS_FAN_WIDTH 20
|
978
|
1011
|
|
979
|
1012
|
#if ENABLED(STATUS_ALT_FAN_BITMAP)
|
980
|
1013
|
|
|
@@ -1153,6 +1186,35 @@
|
1153
|
1186
|
#endif // !STATUS_ALT_FAN_BITMAP
|
1154
|
1187
|
|
1155
|
1188
|
#endif
|
|
1189
|
+#else
|
|
1190
|
+ #undef STATUS_FAN_FRAMES
|
|
1191
|
+ #define STATUS_FAN_WIDTH 0
|
|
1192
|
+#endif
|
|
1193
|
+
|
|
1194
|
+#if ENABLED(CUSTOM_STATUS_SCREEN_IMAGE)
|
|
1195
|
+
|
|
1196
|
+ #if STATUS_HOTEND1_WIDTH
|
|
1197
|
+ #define HAS_SPACES ((LCD_PIXEL_WIDTH - (HOTENDS * STATUS_HOTEND1_WIDTH) - STATUS_BED_WIDTH - STATUS_CHAMBER_WIDTH - STATUS_FAN_WIDTH - 24) < STATUS_LOGO_WIDTH ? true : false)
|
|
1198
|
+ #elif STATUS_HEATERS_WIDTH
|
|
1199
|
+ #define HAS_SPACES (((LCD_PIXEL_WIDTH - STATUS_HEATERS_WIDTH - STATUS_BED_WIDTH - STATUS_CHAMBER_WIDTH - STATUS_FAN_WIDTH - 20) < STATUS_LOGO_WIDTH) ? true : false)
|
|
1200
|
+ #endif
|
|
1201
|
+
|
|
1202
|
+ #if HAS_SPACES
|
|
1203
|
+ #undef STATUS_LOGO_WIDTH
|
|
1204
|
+ #endif
|
|
1205
|
+
|
|
1206
|
+ #if (HOTENDS > 1 && STATUS_LOGO_WIDTH && BED_CHAM_FAN) || ( HOTENDS >= 3 && !BED_CHAM_FAN)
|
|
1207
|
+ #define _STATUS_HEATERS_X(H,S,N) (((LCD_PIXEL_WIDTH - (H * (S + N)) - STATUS_LOGO_WIDTH - STATUS_BED_WIDTH - STATUS_CHAMBER_WIDTH - STATUS_FAN_WIDTH) / 2) + STATUS_LOGO_WIDTH)
|
|
1208
|
+ #if STATUS_HOTEND1_WIDTH
|
|
1209
|
+ #if HOTENDS > 2
|
|
1210
|
+ #define STATUS_HEATERS_X _STATUS_HEATERS_X(HOTENDS, STATUS_HOTEND1_WIDTH, 6)
|
|
1211
|
+ #else
|
|
1212
|
+ #define STATUS_HEATERS_X _STATUS_HEATERS_X(HOTENDS, STATUS_HOTEND1_WIDTH, 4)
|
|
1213
|
+ #endif
|
|
1214
|
+ #else
|
|
1215
|
+ #define STATUS_HEATERS_X _STATUS_HEATERS_X(1, STATUS_HEATERS_WIDTH, 4)
|
|
1216
|
+ #endif
|
|
1217
|
+ #endif
|
1156
|
1218
|
|
1157
|
1219
|
#endif
|
1158
|
1220
|
|
|
@@ -1187,14 +1249,25 @@
|
1187
|
1249
|
#if STATUS_HOTEND1_WIDTH || STATUS_HEATERS_WIDTH
|
1188
|
1250
|
|
1189
|
1251
|
#ifndef STATUS_HEATERS_XSPACE
|
1190
|
|
- #define STATUS_HEATERS_XSPACE 24 // Like the included bitmaps
|
|
1252
|
+ #if (HOTENDS == 3 || HOTENDS == 4) && ENABLED(STATUS_COMBINE_HEATERS)
|
|
1253
|
+ #define STATUS_HEATERS_XSPACE 24
|
|
1254
|
+ #else
|
|
1255
|
+ #define STATUS_HEATERS_XSPACE 26 // Like the included bitmaps
|
|
1256
|
+ #endif
|
1191
|
1257
|
#endif
|
1192
|
1258
|
|
1193
|
1259
|
#ifndef STATUS_HEATERS_X
|
1194
|
1260
|
#if STATUS_LOGO_BYTEWIDTH
|
1195
|
|
- #define STATUS_HEATERS_X ((STATUS_LOGO_BYTEWIDTH + 0) * 8)
|
|
1261
|
+ #define STATUS_HEATERS_X (STATUS_LOGO_BYTEWIDTH * 8)
|
|
1262
|
+ #elif ((STATUS_CHAMBER_WIDTH || STATUS_FAN_WIDTH) && (STATUS_BED_WIDTH && STATUS_HOTEND_BITMAPS == 3)) || \
|
|
1263
|
+ ((STATUS_CHAMBER_WIDTH || STATUS_FAN_WIDTH || STATUS_BED_WIDTH) && STATUS_HOTEND_BITMAPS == 4)
|
|
1264
|
+ #define STATUS_HEATERS_X 5
|
1196
|
1265
|
#else
|
1197
|
|
- #define STATUS_HEATERS_X 8 // Like the included bitmaps
|
|
1266
|
+ #if ENABLED(STATUS_COMBINE_HEATERS) && HAS_HEATED_BED && HOTENDS <= 4
|
|
1267
|
+ #define STATUS_HEATERS_X 5
|
|
1268
|
+ #else
|
|
1269
|
+ #define STATUS_HEATERS_X 8 // Like the included bitmaps
|
|
1270
|
+ #endif
|
1198
|
1271
|
#endif
|
1199
|
1272
|
#endif
|
1200
|
1273
|
|
|
@@ -1205,7 +1278,6 @@
|
1205
|
1278
|
//
|
1206
|
1279
|
// Hotend images. A base hotend image and optional "ON" state image.
|
1207
|
1280
|
//
|
1208
|
|
-
|
1209
|
1281
|
#ifndef STATUS_HOTEND_BITMAPS
|
1210
|
1282
|
#define STATUS_HOTEND_BITMAPS 1
|
1211
|
1283
|
#endif
|
|
@@ -1257,20 +1329,21 @@
|
1257
|
1329
|
#ifndef STATUS_HOTEND2_X
|
1258
|
1330
|
#define STATUS_HOTEND2_X STATUS_HOTEND1_X + STATUS_HEATERS_XSPACE
|
1259
|
1331
|
#endif
|
1260
|
|
- #ifndef STATUS_HOTEND3_X
|
1261
|
|
- #define STATUS_HOTEND3_X STATUS_HOTEND2_X + STATUS_HEATERS_XSPACE
|
1262
|
|
- #endif
|
1263
|
|
- #ifndef STATUS_HOTEND4_X
|
1264
|
|
- #define STATUS_HOTEND4_X STATUS_HOTEND3_X + STATUS_HEATERS_XSPACE
|
1265
|
|
- #endif
|
1266
|
|
- #ifndef STATUS_HOTEND5_X
|
1267
|
|
- #define STATUS_HOTEND5_X STATUS_HOTEND4_X + STATUS_HEATERS_XSPACE
|
1268
|
|
- #endif
|
1269
|
|
- #ifndef STATUS_HOTEND6_X
|
1270
|
|
- #define STATUS_HOTEND6_X STATUS_HOTEND5_X + STATUS_HEATERS_XSPACE
|
1271
|
|
- #endif
|
1272
|
1332
|
|
1273
|
1333
|
#if HOTENDS > 2
|
|
1334
|
+ #ifndef STATUS_HOTEND3_X
|
|
1335
|
+ #define STATUS_HOTEND3_X STATUS_HOTEND2_X + STATUS_HEATERS_XSPACE
|
|
1336
|
+ #endif
|
|
1337
|
+ #ifndef STATUS_HOTEND4_X
|
|
1338
|
+ #define STATUS_HOTEND4_X STATUS_HOTEND3_X + STATUS_HEATERS_XSPACE
|
|
1339
|
+ #endif
|
|
1340
|
+ #ifndef STATUS_HOTEND5_X
|
|
1341
|
+ #define STATUS_HOTEND5_X STATUS_HOTEND4_X + STATUS_HEATERS_XSPACE
|
|
1342
|
+ #endif
|
|
1343
|
+ #ifndef STATUS_HOTEND6_X
|
|
1344
|
+ #define STATUS_HOTEND6_X STATUS_HOTEND5_X + STATUS_HEATERS_XSPACE
|
|
1345
|
+ #endif
|
|
1346
|
+
|
1274
|
1347
|
constexpr uint8_t status_hotend_x[HOTENDS] = ARRAY_N(HOTENDS, STATUS_HOTEND1_X, STATUS_HOTEND2_X, STATUS_HOTEND3_X, STATUS_HOTEND4_X, STATUS_HOTEND5_X, STATUS_HOTEND6_X);
|
1275
|
1348
|
#define STATUS_HOTEND_X(N) status_hotend_x[N]
|
1276
|
1349
|
#elif HOTENDS > 1
|
|
@@ -1303,7 +1376,7 @@
|
1303
|
1376
|
#endif
|
1304
|
1377
|
#endif
|
1305
|
1378
|
|
1306
|
|
- #if STATUS_HOTEND_BITMAPS > 1
|
|
1379
|
+ #if STATUS_HOTEND_BITMAPS > 1 && DISABLED(STATUS_HOTEND_NUMBERLESS)
|
1307
|
1380
|
#define TEST_BITMAP_OFF status_hotend1_a_bmp
|
1308
|
1381
|
#define TEST_BITMAP_ON status_hotend1_b_bmp
|
1309
|
1382
|
#else
|
|
@@ -1341,7 +1414,11 @@
|
1341
|
1414
|
#define STATUS_HOTEND_X(N) (STATUS_HEATERS_X + 2 + (N) * (STATUS_HEATERS_XSPACE))
|
1342
|
1415
|
#endif
|
1343
|
1416
|
#ifndef STATUS_HOTEND_TEXT_X
|
1344
|
|
- #define STATUS_HOTEND_TEXT_X(N) (STATUS_HEATERS_X + 6 + (N) * (STATUS_HEATERS_XSPACE))
|
|
1417
|
+ #if HOTENDS == 4 && STATUS_LOGO_WIDTH
|
|
1418
|
+ #define STATUS_HOTEND_TEXT_X(N) (STATUS_HEATERS_X + 6 + (N) * (STATUS_HEATERS_XSPACE))
|
|
1419
|
+ #else
|
|
1420
|
+ #define STATUS_HOTEND_TEXT_X(N) (STATUS_HEATERS_X + 6 + (N) * (STATUS_HEATERS_XSPACE))
|
|
1421
|
+ #endif
|
1345
|
1422
|
#endif
|
1346
|
1423
|
#ifndef STATUS_HEATERS_BYTEWIDTH
|
1347
|
1424
|
#define STATUS_HEATERS_BYTEWIDTH BW(STATUS_HEATERS_WIDTH)
|
|
@@ -1363,16 +1440,13 @@
|
1363
|
1440
|
//
|
1364
|
1441
|
// Chamber Bitmap Properties
|
1365
|
1442
|
//
|
1366
|
|
-#ifndef STATUS_CHAMBER_WIDTH
|
1367
|
|
- #define STATUS_CHAMBER_WIDTH 0
|
1368
|
|
-#endif
|
1369
|
1443
|
#ifndef STATUS_CHAMBER_BYTEWIDTH
|
1370
|
1444
|
#define STATUS_CHAMBER_BYTEWIDTH BW(STATUS_CHAMBER_WIDTH)
|
1371
|
1445
|
#endif
|
1372
|
|
-#if STATUS_CHAMBER_WIDTH && !STATUS_HEATERS_WIDTH
|
|
1446
|
+#if STATUS_CHAMBER_WIDTH
|
1373
|
1447
|
|
1374
|
1448
|
#ifndef STATUS_CHAMBER_X
|
1375
|
|
- #define STATUS_CHAMBER_X (128 - (STATUS_FAN_BYTEWIDTH + STATUS_CHAMBER_BYTEWIDTH) * 8)
|
|
1449
|
+ #define STATUS_CHAMBER_X (LCD_PIXEL_WIDTH - (STATUS_CHAMBER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH) * 8)
|
1376
|
1450
|
#endif
|
1377
|
1451
|
|
1378
|
1452
|
#ifndef STATUS_CHAMBER_HEIGHT
|
|
@@ -1388,7 +1462,7 @@
|
1388
|
1462
|
#endif
|
1389
|
1463
|
|
1390
|
1464
|
#ifndef STATUS_CHAMBER_TEXT_X
|
1391
|
|
- #define STATUS_CHAMBER_TEXT_X (STATUS_CHAMBER_X + 7)
|
|
1465
|
+ #define STATUS_CHAMBER_TEXT_X (STATUS_CHAMBER_X + 11)
|
1392
|
1466
|
#endif
|
1393
|
1467
|
|
1394
|
1468
|
static_assert(
|
|
@@ -1407,16 +1481,13 @@
|
1407
|
1481
|
//
|
1408
|
1482
|
// Bed Bitmap Properties
|
1409
|
1483
|
//
|
1410
|
|
-#ifndef STATUS_BED_WIDTH
|
1411
|
|
- #define STATUS_BED_WIDTH 0
|
1412
|
|
-#endif
|
1413
|
1484
|
#ifndef STATUS_BED_BYTEWIDTH
|
1414
|
1485
|
#define STATUS_BED_BYTEWIDTH BW(STATUS_BED_WIDTH)
|
1415
|
1486
|
#endif
|
1416
|
1487
|
#if STATUS_BED_WIDTH && !STATUS_HEATERS_WIDTH
|
1417
|
1488
|
|
1418
|
1489
|
#ifndef STATUS_BED_X
|
1419
|
|
- #define STATUS_BED_X (128 - (STATUS_CHAMBER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH + STATUS_BED_BYTEWIDTH) * 8)
|
|
1490
|
+ #define STATUS_BED_X (LCD_PIXEL_WIDTH - (STATUS_CHAMBER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH + STATUS_BED_BYTEWIDTH) * 8)
|
1420
|
1491
|
#endif
|
1421
|
1492
|
|
1422
|
1493
|
#ifndef STATUS_BED_HEIGHT
|
|
@@ -1432,7 +1503,7 @@
|
1432
|
1503
|
#endif
|
1433
|
1504
|
|
1434
|
1505
|
#ifndef STATUS_BED_TEXT_X
|
1435
|
|
- #define STATUS_BED_TEXT_X (STATUS_BED_X + 11)
|
|
1506
|
+ #define STATUS_BED_TEXT_X (STATUS_BED_X + 9)
|
1436
|
1507
|
#endif
|
1437
|
1508
|
|
1438
|
1509
|
static_assert(
|
|
@@ -1445,27 +1516,23 @@
|
1445
|
1516
|
"Status bed bitmap (status_bed_on_bmp) dimensions don't match data."
|
1446
|
1517
|
);
|
1447
|
1518
|
#endif
|
1448
|
|
-
|
1449
|
1519
|
#endif
|
1450
|
1520
|
|
1451
|
1521
|
//
|
1452
|
1522
|
// Fan Bitmap Properties
|
1453
|
1523
|
//
|
1454
|
|
-#ifndef STATUS_FAN_WIDTH
|
1455
|
|
- #define STATUS_FAN_WIDTH 0
|
1456
|
|
-#endif
|
1457
|
1524
|
#ifndef STATUS_FAN_BYTEWIDTH
|
1458
|
1525
|
#define STATUS_FAN_BYTEWIDTH BW(STATUS_FAN_WIDTH)
|
1459
|
1526
|
#endif
|
1460
|
1527
|
#if STATUS_FAN_FRAMES
|
1461
|
1528
|
#ifndef STATUS_FAN_X
|
1462
|
|
- #define STATUS_FAN_X (128 - (STATUS_FAN_BYTEWIDTH) * 8)
|
|
1529
|
+ #define STATUS_FAN_X (LCD_PIXEL_WIDTH - (STATUS_FAN_BYTEWIDTH) * 8)
|
1463
|
1530
|
#endif
|
1464
|
1531
|
#ifndef STATUS_FAN_Y
|
1465
|
1532
|
#define STATUS_FAN_Y 1
|
1466
|
1533
|
#endif
|
1467
|
1534
|
#ifndef STATUS_FAN_TEXT_X
|
1468
|
|
- #define STATUS_FAN_TEXT_X 103
|
|
1535
|
+ #define STATUS_FAN_TEXT_X (STATUS_FAN_X - 1)
|
1469
|
1536
|
#endif
|
1470
|
1537
|
#ifndef STATUS_FAN_TEXT_Y
|
1471
|
1538
|
#define STATUS_FAN_TEXT_Y 28
|