Pārlūkot izejas kodu

Active MMU slot indicator (#21842)

charlespick 3 gadus atpakaļ
vecāks
revīzija
01741576eb
Revīzijas autora e-pasta adrese nav piesaistīta nevienam kontam

+ 267
- 7
Marlin/src/lcd/dogm/status/hotend.h Parādīt failu

@@ -25,16 +25,21 @@
25 25
 // lcd/dogm/status/hotend.h - Status Screen Hotends bitmaps
26 26
 //
27 27
 
28
-#define STATUS_HOTEND1_WIDTH  16
29
-
30
-#define MAX_HOTEND_BITMAPS     5
31
-#if HOTENDS > MAX_HOTEND_BITMAPS
32
-  #define STATUS_HOTEND_BITMAPS MAX_HOTEND_BITMAPS
28
+#if HAS_MMU
29
+  #define STATUS_HOTEND_BITMAPS EXTRUDERS
30
+  #define MAX_HOTEND_BITMAPS 8
33 31
 #else
34 32
   #define STATUS_HOTEND_BITMAPS HOTENDS
33
+  #define MAX_HOTEND_BITMAPS 5
34
+#endif
35
+#if STATUS_HOTEND_BITMAPS > MAX_HOTEND_BITMAPS
36
+  #undef STATUS_HOTEND_BITMAPS
37
+  #define STATUS_HOTEND_BITMAPS MAX_HOTEND_BITMAPS
35 38
 #endif
36 39
 
37
-#if HOTENDS == 1 || ENABLED(STATUS_HOTEND_NUMBERLESS)
40
+#define STATUS_HOTEND1_WIDTH  16
41
+
42
+#if STATUS_HOTEND_BITMAPS == 1 || ENABLED(STATUS_HOTEND_NUMBERLESS)
38 43
 
39 44
   const unsigned char status_hotend_a_bmp[] PROGMEM = {
40 45
     B00011111,B11100000,
@@ -70,7 +75,7 @@
70 75
 
71 76
   #endif
72 77
 
73
-#elif HOTENDS >= 2
78
+#elif STATUS_HOTEND_BITMAPS > 1
74 79
 
75 80
   #ifdef STATUS_HOTEND_ANIM
76 81
 
@@ -483,4 +488,259 @@
483 488
 
484 489
   #endif
485 490
 
491
+  #if STATUS_HOTEND_BITMAPS >= 6
492
+
493
+    #ifdef STATUS_HOTEND_ANIM
494
+
495
+      const unsigned char status_hotend6_a_bmp[] PROGMEM = {
496
+        B00011111,B11100000,
497
+        B00111111,B11110000,
498
+        #if LCD_FIRST_TOOL == 0
499
+          B00111000,B01110000,
500
+          B00111011,B11110000,
501
+          B00011000,B11100000,
502
+          B00011111,B01100000,
503
+          B00111111,B01110000,
504
+          B00111011,B01110000,
505
+          B00111100,B11110000,
506
+        #else
507
+          B00111100,B01110000,
508
+          B00111011,B11110000,
509
+          B00011011,B11100000,
510
+          B00011000,B11100000,
511
+          B00111011,B01110000,
512
+          B00111011,B01110000,
513
+          B00111100,B11110000,
514
+        #endif
515
+        B00001111,B11000000,
516
+        B00000111,B10000000,
517
+        B00000011,B00000000
518
+      };
519
+
520
+      const unsigned char status_hotend6_b_bmp[] PROGMEM = {
521
+        B00011111,B11100000,
522
+        B00100000,B00010000,
523
+        #if LCD_FIRST_TOOL == 0
524
+          B00100111,B10010000,
525
+          B00100100,B00010000,
526
+          B00010111,B00100000,
527
+          B00010000,B10100000,
528
+          B00100000,B10010000,
529
+          B00100100,B10010000,
530
+          B00110011,B00110000,
531
+        #else
532
+          B00100011,B10010000,
533
+          B00100100,B00010000,
534
+          B00010100,B00100000,
535
+          B00010111,B00100000,
536
+          B00100100,B10010000,
537
+          B00100100,B10010000,
538
+          B00110011,B00110000,
539
+        #endif
540
+        B00001000,B01000000,
541
+        B00000100,B10000000,
542
+        B00000011,B00000000
543
+      };
544
+
545
+    #else
546
+
547
+      const unsigned char status_hotend6_a_bmp[] PROGMEM = {
548
+        B00011111,B11100000,
549
+        #if LCD_FIRST_TOOL == 0
550
+          B00111000,B01110000,
551
+          B00111011,B11110000,
552
+          B00111000,B11110000,
553
+          B00011111,B01100000,
554
+          B00011111,B01100000,
555
+          B00111011,B01110000,
556
+          B00111100,B11110000,
557
+        #else
558
+          B00111100,B01110000,
559
+          B00111011,B11110000,
560
+          B00111011,B11110000,
561
+          B00011000,B11100000,
562
+          B00011011,B01100000,
563
+          B00111011,B01110000,
564
+          B00111100,B11110000,
565
+        #endif
566
+        B00111111,B11110000,
567
+        B00001111,B11000000,
568
+        B00000111,B10000000,
569
+        B00000011,B00000000
570
+      };
571
+
572
+    #endif
573
+
574
+  #endif
575
+
576
+  #if STATUS_HOTEND_BITMAPS >= 7
577
+
578
+    #ifdef STATUS_HOTEND_ANIM
579
+
580
+      const unsigned char status_hotend7_a_bmp[] PROGMEM = {
581
+        B00011111,B11100000,
582
+        B00111111,B11110000,
583
+        #if LCD_FIRST_TOOL == 0
584
+          B00111100,B01110000,
585
+          B00111011,B11110000,
586
+          B00011011,B11100000,
587
+          B00011000,B11100000,
588
+          B00111011,B01110000,
589
+          B00111011,B01110000,
590
+          B00111100,B11110000,
591
+        #else
592
+          B00111000,B01110000,
593
+          B00111011,B01110000,
594
+          B00011111,B01100000,
595
+          B00011110,B11100000,
596
+          B00111110,B11110000,
597
+          B00111101,B11110000,
598
+          B00111101,B11110000,
599
+        #endif
600
+        B00001111,B11000000,
601
+        B00000111,B10000000,
602
+        B00000011,B00000000
603
+      };
604
+
605
+      const unsigned char status_hotend7_b_bmp[] PROGMEM = {
606
+        B00011111,B11100000,
607
+        B00100000,B00010000,
608
+        #if LCD_FIRST_TOOL == 0
609
+          B00100011,B10010000,
610
+          B00100100,B00010000,
611
+          B00010100,B00100000,
612
+          B00010111,B00100000,
613
+          B00100100,B10010000,
614
+          B00100100,B10010000,
615
+          B00110011,B00110000,
616
+        #else
617
+          B00100111,B10010000,
618
+          B00100100,B10010000,
619
+          B00010000,B10100000,
620
+          B00010001,B00100000,
621
+          B00100001,B00010000,
622
+          B00100010,B00010000,
623
+          B00110010,B00110000,
624
+        #endif
625
+        B00001000,B01000000,
626
+        B00000100,B10000000,
627
+        B00000011,B00000000
628
+      };
629
+
630
+    #else
631
+
632
+      const unsigned char status_hotend7_a_bmp[] PROGMEM = {
633
+        B00011111,B11100000,
634
+        #if LCD_FIRST_TOOL == 0
635
+          B00111100,B01110000,
636
+          B00111011,B11110000,
637
+          B00111011,B11110000,
638
+          B00011000,B11100000,
639
+          B00011011,B01100000,
640
+          B00111011,B01110000,
641
+          B00111100,B11110000,
642
+        #else
643
+          B00111000,B01110000,
644
+          B00111011,B01110000,
645
+          B00111111,B01110000,
646
+          B00011110,B11100000,
647
+          B00011110,B11100000,
648
+          B00111101,B11110000,
649
+          B00111101,B11110000,
650
+        #endif
651
+        B00111111,B11110000,
652
+        B00001111,B11000000,
653
+        B00000111,B10000000,
654
+        B00000011,B00000000
655
+      };
656
+
657
+    #endif
658
+
659
+  #endif
660
+
661
+  #if STATUS_HOTEND_BITMAPS >= 8
662
+
663
+    #ifdef STATUS_HOTEND_ANIM
664
+
665
+      const unsigned char status_hotend8_a_bmp[] PROGMEM = {
666
+        B00011111,B11100000,
667
+        B00111111,B11110000,
668
+        #if LCD_FIRST_TOOL == 0
669
+          B00111000,B01110000,
670
+          B00111011,B01110000,
671
+          B00011111,B01100000,
672
+          B00011110,B11100000,
673
+          B00111110,B11110000,
674
+          B00111101,B11110000,
675
+          B00111101,B11110000,
676
+        #else
677
+          B00111100,B11110000,
678
+          B00111011,B01110000,
679
+          B00011011,B01100000,
680
+          B00011100,B11100000,
681
+          B00111011,B01110000,
682
+          B00111011,B01110000,
683
+          B00111100,B11110000,
684
+        #endif
685
+        B00001111,B11000000,
686
+        B00000111,B10000000,
687
+        B00000011,B00000000
688
+      };
689
+
690
+      const unsigned char status_hotend8_b_bmp[] PROGMEM = {
691
+        B00011111,B11100000,
692
+        B00100000,B00010000,
693
+        #if LCD_FIRST_TOOL == 0
694
+          B00100111,B10010000,
695
+          B00100100,B10010000,
696
+          B00010000,B10100000,
697
+          B00010001,B00100000,
698
+          B00100001,B00010000,
699
+          B00100010,B00010000,
700
+          B00110010,B00110000,
701
+        #else
702
+          B00100011,B00010000,
703
+          B00100100,B10010000,
704
+          B00010100,B10100000,
705
+          B00010011,B00100000,
706
+          B00100100,B10010000,
707
+          B00100100,B10010000,
708
+          B00110011,B00110000,
709
+        #endif
710
+        B00001000,B01000000,
711
+        B00000100,B10000000,
712
+        B00000011,B00000000
713
+      };
714
+
715
+    #else
716
+
717
+      const unsigned char status_hotend8_a_bmp[] PROGMEM = {
718
+        B00011111,B11100000,
719
+        #if LCD_FIRST_TOOL == 0
720
+          B00111000,B01110000,
721
+          B00111011,B01110000,
722
+          B00111111,B01110000,
723
+          B00011110,B11100000,
724
+          B00011110,B11100000,
725
+          B00111101,B11110000,
726
+          B00111101,B11110000,
727
+        #else
728
+          B00111100,B11110000,
729
+          B00111011,B01110000,
730
+          B00111011,B01110000,
731
+          B00011100,B11100000,
732
+          B00011011,B01100000,
733
+          B00111011,B01110000,
734
+          B00111100,B11110000,
735
+        #endif
736
+        B00111111,B11110000,
737
+        B00001111,B11000000,
738
+        B00000111,B10000000,
739
+        B00000011,B00000000
740
+      };
741
+
742
+    #endif
743
+
744
+  #endif
745
+
486 746
 #endif

+ 3
- 3
Marlin/src/lcd/dogm/status_screen_DOGM.cpp Parādīt failu

@@ -274,12 +274,12 @@ FORCE_INLINE void _draw_centered_temp(const celsius_t temp, const uint8_t tx, co
274 274
         #if ENABLED(STATUS_HEAT_PERCENT)
275 275
           if (isHeat && tall <= BAR_TALL) {
276 276
             const uint8_t ph = STATUS_HEATERS_HEIGHT - 1 - tall;
277
-            u8g.drawBitmapP(hx, STATUS_HEATERS_Y, bw, ph, HOTEND_BITMAP(heater_id, false));
278
-            u8g.drawBitmapP(hx, STATUS_HEATERS_Y + ph, bw, tall + 1, HOTEND_BITMAP(heater_id, true) + ph * bw);
277
+            u8g.drawBitmapP(hx, STATUS_HEATERS_Y, bw, ph, HOTEND_BITMAP(TERN(HAS_MMU, active_extruder, heater_id), false));
278
+            u8g.drawBitmapP(hx, STATUS_HEATERS_Y + ph, bw, tall + 1, HOTEND_BITMAP(TERN(HAS_MMU, active_extruder, heater_id), true) + ph * bw);
279 279
           }
280 280
           else
281 281
         #endif
282
-            u8g.drawBitmapP(hx, STATUS_HEATERS_Y, bw, STATUS_HEATERS_HEIGHT, HOTEND_BITMAP(heater_id, isHeat));
282
+            u8g.drawBitmapP(hx, STATUS_HEATERS_Y, bw, STATUS_HEATERS_HEIGHT, HOTEND_BITMAP(TERN(HAS_MMU, active_extruder, heater_id), isHeat));
283 283
       #endif
284 284
 
285 285
     } // PAGE_CONTAINS

Notiek ielāde…
Atcelt
Saglabāt