|
|
@ -29,11 +29,14 @@ |
|
|
|
*/ |
|
|
|
|
|
|
|
#include "../../inc/MarlinConfig.h" |
|
|
|
#include "ultralcd_DOGM.h" |
|
|
|
|
|
|
|
#define BW(N) ((N + 7) / 8) |
|
|
|
|
|
|
|
#if ENABLED(CUSTOM_STATUS_SCREEN_IMAGE) |
|
|
|
#if ENABLED(CUSTOM_STATUS_SCREEN_IMAGE) && DISABLED(STATUS_COMBINE_HEATERS) |
|
|
|
|
|
|
|
#undef STATUS_HEATERS_X |
|
|
|
#undef STATUS_BED_X |
|
|
|
/**
|
|
|
|
* Custom _Statusscreen.h files can define: |
|
|
|
* - A custom logo image |
|
|
@ -50,54 +53,26 @@ |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(STATUS_COMBINE_HEATERS) |
|
|
|
#undef STATUS_HOTEND_ANIM |
|
|
|
#undef STATUS_BED_ANIM |
|
|
|
#endif |
|
|
|
|
|
|
|
//
|
|
|
|
// Default Status Screen Heater or Hotends bitmaps
|
|
|
|
//
|
|
|
|
|
|
|
|
#if !STATUS_HEATERS_WIDTH && !STATUS_HOTEND1_WIDTH |
|
|
|
|
|
|
|
#if ENABLED(STATUS_COMBINE_HEATERS) |
|
|
|
|
|
|
|
#undef STATUS_HOTEND_ANIM |
|
|
|
#undef STATUS_BED_ANIM |
|
|
|
#define STATUS_HEATERS_XSPACE 24 |
|
|
|
|
|
|
|
//
|
|
|
|
// Status Screen Combined Heater bitmaps
|
|
|
|
//
|
|
|
|
#if HAS_HEATED_BED && HOTENDS <= 4 |
|
|
|
|
|
|
|
#if HAS_HEATED_BED && HOTENDS == 0 |
|
|
|
#define STATUS_HEATERS_X 80 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if HAS_HEATED_BED && HOTENDS <= 3 |
|
|
|
|
|
|
|
#define STATUS_BED_WIDTH 21 |
|
|
|
|
|
|
|
#if HOTENDS == 0 |
|
|
|
|
|
|
|
#define STATUS_HEATERS_WIDTH 21 |
|
|
|
|
|
|
|
const unsigned char status_heaters_bmp[] PROGMEM = { |
|
|
|
B00000100,B00010000,B01000000, |
|
|
|
B00000010,B00001000,B00100000, |
|
|
|
B00000010,B00001000,B00100000, |
|
|
|
B00000100,B00010000,B01000000, |
|
|
|
B00001000,B00100000,B10000000, |
|
|
|
B00010000,B01000001,B00000000, |
|
|
|
B00010000,B01000001,B00000000, |
|
|
|
B00001000,B00100000,B10000000, |
|
|
|
B00000100,B00010000,B01000000, |
|
|
|
B00000000,B00000000,B00000000, |
|
|
|
B00011111,B11111111,B11111000, |
|
|
|
B00011111,B11111111,B11111000 |
|
|
|
}; |
|
|
|
|
|
|
|
#elif HOTENDS == 1 |
|
|
|
#if HOTENDS == 1 |
|
|
|
|
|
|
|
#define STATUS_HEATERS_WIDTH 90 |
|
|
|
#define STATUS_BED_X 80 |
|
|
|
#define STATUS_HEATERS_WIDTH 96 |
|
|
|
#define STATUS_BED_TEXT_X (STATUS_HEATERS_WIDTH - 10) |
|
|
|
|
|
|
|
const unsigned char status_heaters_bmp[] PROGMEM = { |
|
|
|
B00011111,B11100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000100,B00010000,B01000000, |
|
|
@ -116,7 +91,8 @@ |
|
|
|
|
|
|
|
#elif HOTENDS == 2 |
|
|
|
|
|
|
|
#define STATUS_HEATERS_WIDTH 90 |
|
|
|
#define STATUS_HEATERS_WIDTH 96 |
|
|
|
#define STATUS_BED_TEXT_X (STATUS_HEATERS_WIDTH - 10) |
|
|
|
|
|
|
|
const unsigned char status_heaters_bmp[] PROGMEM = { |
|
|
|
B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00000000,B00000000,B00000000,B00000100,B00010000,B01000000, |
|
|
@ -133,9 +109,10 @@ |
|
|
|
B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B00000000,B00000000,B00011111,B11111111,B11111000 |
|
|
|
}; |
|
|
|
|
|
|
|
#else // HOTENDS > 2
|
|
|
|
#elif HOTENDS == 3 |
|
|
|
|
|
|
|
#define STATUS_HEATERS_WIDTH 90 |
|
|
|
#define STATUS_HEATERS_WIDTH 96 |
|
|
|
#define STATUS_BED_TEXT_X (STATUS_HEATERS_WIDTH - 10) |
|
|
|
|
|
|
|
const unsigned char status_heaters_bmp[] PROGMEM = { |
|
|
|
B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00000100,B00010000,B01000000, |
|
|
@ -152,13 +129,33 @@ |
|
|
|
B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00011111,B11111111,B11111000 |
|
|
|
}; |
|
|
|
|
|
|
|
#else // HOTENDS > 3
|
|
|
|
|
|
|
|
#define STATUS_HEATERS_WIDTH 120 |
|
|
|
#define STATUS_BED_TEXT_X (STATUS_HEATERS_WIDTH - 10) |
|
|
|
|
|
|
|
const unsigned char status_heaters_bmp[] PROGMEM = { |
|
|
|
B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00000100,B00010000,B01000000, |
|
|
|
B00111110,B11110000,B00000000,B00111100,B11110000,B00000000,B00111100,B11110000,B00000000,B00111011,B01110000,B00000000,B00000010,B00001000,B00100000, |
|
|
|
B00111100,B11110000,B00000000,B00111011,B01110000,B00000000,B00111011,B01110000,B00000000,B00111011,B01110000,B00000000,B00000010,B00001000,B00100000, |
|
|
|
B00111010,B11110000,B00000000,B00111111,B01110000,B00000000,B00111111,B01110000,B00000000,B00111011,B01110000,B00000000,B00000100,B00010000,B01000000, |
|
|
|
B00011110,B11100000,B00000000,B00011110,B11100000,B00000000,B00011100,B11100000,B00000000,B00011011,B01100000,B00000000,B00001000,B00100000,B10000000, |
|
|
|
B00011110,B11100000,B00000000,B00011101,B11100000,B00000000,B00011111,B01100000,B00000000,B00011000,B00100000,B00000000,B00010000,B01000001,B00000000, |
|
|
|
B00111110,B11110000,B00000000,B00111011,B11110000,B00000000,B00111011,B01110000,B00000000,B00111111,B01110000,B00000000,B00010000,B01000001,B00000000, |
|
|
|
B00111110,B11110000,B00000000,B00111000,B01110000,B00000000,B00111100,B11110000,B00000000,B00111111,B01110000,B00000000,B00001000,B00100000,B10000000, |
|
|
|
B00111111,B11110000,B00000000,B00111111,B11110000,B00000000,B00111111,B11110000,B00000000,B00111111,B11110000,B00000000,B00000100,B00010000,B01000000, |
|
|
|
B00001111,B11000000,B00000000,B00001111,B11000000,B00000000,B00001111,B11000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000, |
|
|
|
B00000111,B10000000,B00000000,B00000111,B10000000,B00000000,B00000111,B10000000,B00000000,B00000111,B10000000,B00000000,B00011111,B11111111,B11111000, |
|
|
|
B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00011111,B11111111,B11111000 |
|
|
|
}; |
|
|
|
|
|
|
|
#endif // HOTENDS
|
|
|
|
|
|
|
|
#else // !HAS_HEATED_BED || HOTENDS > 3
|
|
|
|
|
|
|
|
#if HOTENDS == 1 |
|
|
|
|
|
|
|
#define STATUS_HEATERS_WIDTH 11 |
|
|
|
#define STATUS_HEATERS_WIDTH 12 |
|
|
|
|
|
|
|
const unsigned char status_heaters_bmp[] PROGMEM = { |
|
|
|
B00011111,B11100000, |
|
|
@ -213,7 +210,7 @@ |
|
|
|
B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000 |
|
|
|
}; |
|
|
|
|
|
|
|
#elif HOTENDS > 3 |
|
|
|
#elif HOTENDS == 4 |
|
|
|
|
|
|
|
#define STATUS_HEATERS_WIDTH 84 |
|
|
|
|
|
|
@ -232,6 +229,25 @@ |
|
|
|
B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000 |
|
|
|
}; |
|
|
|
|
|
|
|
#elif HOTENDS > 4 |
|
|
|
|
|
|
|
#define STATUS_HEATERS_WIDTH 108 |
|
|
|
|
|
|
|
const unsigned char status_heaters_bmp[] PROGMEM = { |
|
|
|
B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00011111,B11100000,B00000000,B00011111,B11100000, |
|
|
|
B00111110,B11110000,B00000000,B00111100,B11110000,B00000000,B00111100,B11110000,B00000000,B00111011,B01110000,B00000000,B00111000,B01110000, |
|
|
|
B00111100,B11110000,B00000000,B00111011,B01110000,B00000000,B00111011,B01110000,B00000000,B00111011,B01110000,B00000000,B00111011,B11110000, |
|
|
|
B00111010,B11110000,B00000000,B00111111,B01110000,B00000000,B00111111,B01110000,B00000000,B00111011,B01110000,B00000000,B00111000,B11110000, |
|
|
|
B00011110,B11100000,B00000000,B00011110,B11100000,B00000000,B00011100,B11100000,B00000000,B00011011,B01100000,B00000000,B00011111,B01100000, |
|
|
|
B00011110,B11100000,B00000000,B00011101,B11100000,B00000000,B00011111,B01100000,B00000000,B00011000,B00100000,B00000000,B00011111,B01100000, |
|
|
|
B00111110,B11110000,B00000000,B00111011,B11110000,B00000000,B00111011,B01110000,B00000000,B00111111,B01110000,B00000000,B00111011,B01110000, |
|
|
|
B00111110,B11110000,B00000000,B00111000,B01110000,B00000000,B00111100,B11110000,B00000000,B00111111,B01110000,B00000000,B00111100,B11110000, |
|
|
|
B00111111,B11110000,B00000000,B00111111,B11110000,B00000000,B00111111,B11110000,B00000000,B00111111,B11110000,B00000000,B00111111,B11110000, |
|
|
|
B00001111,B11000000,B00000000,B00001111,B11000000,B00000000,B00001111,B11000000,B00000000,B00001111,B11000000,B00000000,B00001111,B11000000, |
|
|
|
B00000111,B10000000,B00000000,B00000111,B10000000,B00000000,B00000111,B10000000,B00000000,B00000111,B10000000,B00000000,B00000111,B10000000, |
|
|
|
B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000,B00000000,B00000011,B00000000 |
|
|
|
}; |
|
|
|
|
|
|
|
#endif // HOTENDS
|
|
|
|
|
|
|
|
#endif // !HAS_HEATED_BED || HOTENDS > 3
|
|
|
@ -241,10 +257,16 @@ |
|
|
|
//
|
|
|
|
// Status Screen Hotends bitmaps
|
|
|
|
//
|
|
|
|
|
|
|
|
#if HOTENDS |
|
|
|
|
|
|
|
#define STATUS_HOTEND1_WIDTH 12 |
|
|
|
#define STATUS_HOTEND1_WIDTH 16 |
|
|
|
|
|
|
|
#define MAX_HOTEND_BITMAPS 5 |
|
|
|
#if HOTENDS > MAX_HOTEND_BITMAPS |
|
|
|
#define STATUS_HOTEND_BITMAPS MAX_HOTEND_BITMAPS |
|
|
|
#else |
|
|
|
#define STATUS_HOTEND_BITMAPS HOTENDS |
|
|
|
#endif |
|
|
|
|
|
|
|
#if HOTENDS == 1 || ENABLED(STATUS_HOTEND_NUMBERLESS) |
|
|
|
|
|
|
@ -286,17 +308,6 @@ |
|
|
|
|
|
|
|
#if HOTENDS >= 2 |
|
|
|
|
|
|
|
#if HAS_HEATED_BED |
|
|
|
#define MAX_HOTEND_BITMAPS 3 |
|
|
|
#else |
|
|
|
#define MAX_HOTEND_BITMAPS 4 |
|
|
|
#endif |
|
|
|
#if HOTENDS > MAX_HOTEND_BITMAPS |
|
|
|
#define STATUS_HOTEND_BITMAPS MAX_HOTEND_BITMAPS |
|
|
|
#else |
|
|
|
#define STATUS_HOTEND_BITMAPS HOTENDS |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifdef STATUS_HOTEND_ANIM |
|
|
|
|
|
|
|
const unsigned char status_hotend1_a_bmp[] PROGMEM = { |
|
|
@ -450,7 +461,7 @@ |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if STATUS_HOTEND_BITMAPS >= 4 && !HAS_HEATED_BED |
|
|
|
#if STATUS_HOTEND_BITMAPS >= 4 |
|
|
|
|
|
|
|
#ifdef STATUS_HOTEND_ANIM |
|
|
|
|
|
|
@ -505,7 +516,7 @@ |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if STATUS_HOTEND_BITMAPS >= 5 && !HAS_HEATED_BED |
|
|
|
#if STATUS_HOTEND_BITMAPS >= 5 |
|
|
|
|
|
|
|
#ifdef STATUS_HOTEND_ANIM |
|
|
|
|
|
|
@ -571,17 +582,16 @@ |
|
|
|
//
|
|
|
|
// Default Status Screen Bed bitmaps
|
|
|
|
//
|
|
|
|
|
|
|
|
#if !STATUS_BED_WIDTH && DISABLED(STATUS_COMBINE_HEATERS) && HAS_HEATED_BED && HOTENDS < 4 |
|
|
|
#if !STATUS_BED_WIDTH && HAS_HEATED_BED && DISABLED(STATUS_COMBINE_HEATERS) |
|
|
|
|
|
|
|
#if ENABLED(STATUS_ALT_BED_BITMAP) |
|
|
|
|
|
|
|
#define STATUS_BED_ANIM |
|
|
|
#define STATUS_BED_WIDTH 24 |
|
|
|
#ifndef STATUS_BED_X |
|
|
|
#define STATUS_BED_X 72 |
|
|
|
#define STATUS_BED_X (LCD_PIXEL_WIDTH - (STATUS_BED_BYTEWIDTH + STATUS_CHAMBER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH) * 8) |
|
|
|
#endif |
|
|
|
#define STATUS_BED_TEXT_X (STATUS_BED_X + 13) |
|
|
|
#define STATUS_BED_TEXT_X (STATUS_BED_X + 11) |
|
|
|
|
|
|
|
const unsigned char status_bed_bmp[] PROGMEM = { |
|
|
|
B11111111,B11111111,B11000000, |
|
|
@ -612,7 +622,7 @@ |
|
|
|
|
|
|
|
#define STATUS_BED_WIDTH 21 |
|
|
|
#ifndef STATUS_BED_X |
|
|
|
#define STATUS_BED_X 80 |
|
|
|
#define STATUS_BED_X (LCD_PIXEL_WIDTH - (STATUS_BED_BYTEWIDTH + STATUS_CHAMBER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH) * 8) |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifdef STATUS_BED_ANIM |
|
|
@ -657,81 +667,104 @@ |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif |
|
|
|
#else |
|
|
|
#define STATUS_BED_WIDTH 0 |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif // !STATUS_BED_WIDTH && !STATUS_COMBINE_HEATERS && HAS_HEATED_BED && HOTENDS < 4
|
|
|
|
#if !STATUS_CHAMBER_WIDTH && HAS_HEATED_CHAMBER && ((HOTENDS <= 4 && !HAS_HEATED_BED) || (HOTENDS <= 3 && HAS_HEATED_BED)) |
|
|
|
|
|
|
|
#if HAS_HEATED_CHAMBER |
|
|
|
#define STATUS_CHAMBER_WIDTH 21 |
|
|
|
|
|
|
|
#define STATUS_CHAMBER_WIDTH 16 |
|
|
|
#if STATUS_HEATERS_WIDTH |
|
|
|
#if ENABLED(STATUS_COMBINE_HEATERS) |
|
|
|
#define STATUS_CHAMBER_X (LCD_PIXEL_WIDTH - 2 - (STATUS_CHAMBER_BYTEWIDTH) * 8) |
|
|
|
#elif HAS_FAN0 && HAS_HEATED_BED && HOTENDS <= 2 |
|
|
|
#define STATUS_CHAMBER_X (LCD_PIXEL_WIDTH - 2 - (STATUS_HEATERS_BYTEWIDTH - STATUS_CHAMBER_BYTEWIDTH) * 8) |
|
|
|
#elif HAS_FAN0 && !HAS_HEATED_BED |
|
|
|
#define STATUS_CHAMBER_X (LCD_PIXEL_WIDTH - (STATUS_CHAMBER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH) * 8) |
|
|
|
#else |
|
|
|
#define STATUS_CHAMBER_X (LCD_PIXEL_WIDTH - (STATUS_CHAMBER_BYTEWIDTH) * 8) |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifdef STATUS_CHAMBER_ANIM |
|
|
|
|
|
|
|
const unsigned char status_chamber_bmp[] PROGMEM = { |
|
|
|
B11111111,B11111111, |
|
|
|
B10000000,B00000001, |
|
|
|
B10000000,B00000001, |
|
|
|
B10000000,B00000001, |
|
|
|
B10000000,B00000001, |
|
|
|
B10000000,B00000001, |
|
|
|
B10000000,B00000001, |
|
|
|
B10000000,B00000001, |
|
|
|
B10000000,B00000001, |
|
|
|
B10000000,B00000001, |
|
|
|
B11111111,B11111111, |
|
|
|
B11111111,B11111111 |
|
|
|
B00011111,B11111111,B11111000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00011111,B11111111,B11111000, |
|
|
|
B00011111,B11111111,B11111000 |
|
|
|
}; |
|
|
|
|
|
|
|
const unsigned char status_chamber_on_bmp[] PROGMEM = { |
|
|
|
B11111111,B11111111, |
|
|
|
B10000000,B00000001, |
|
|
|
B10000100,B00100001, |
|
|
|
B10000010,B00010001, |
|
|
|
B10000010,B00010001, |
|
|
|
B10000100,B00100001, |
|
|
|
B10001000,B01000001, |
|
|
|
B10001000,B01000001, |
|
|
|
B10000100,B00100001, |
|
|
|
B10000000,B00000001, |
|
|
|
B11111111,B11111111, |
|
|
|
B11111111,B11111111 |
|
|
|
B00011111,B11111111,B11111000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00010000,B10000100,B00001000, |
|
|
|
B00010000,B01000010,B00001000, |
|
|
|
B00010000,B01000010,B00001000, |
|
|
|
B00010000,B10000100,B00001000, |
|
|
|
B00010001,B00001000,B00001000, |
|
|
|
B00010001,B00001000,B00001000, |
|
|
|
B00010000,B10000100,B00001000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00011111,B11111111,B11111000, |
|
|
|
B00011111,B11111111,B11111000 |
|
|
|
}; |
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
const unsigned char status_chamber_bmp[] PROGMEM = { |
|
|
|
B11111111,B11111111, |
|
|
|
B10000000,B00000001, |
|
|
|
B10000100,B00100001, |
|
|
|
B10000010,B00010001, |
|
|
|
B10000010,B00010001, |
|
|
|
B10000100,B00100001, |
|
|
|
B10001000,B01000001, |
|
|
|
B10001000,B01000001, |
|
|
|
B10000100,B00100001, |
|
|
|
B10000000,B00000001, |
|
|
|
B11111111,B11111111, |
|
|
|
B11111111,B11111111 |
|
|
|
B00011111,B11111111,B11111000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00010000,B10000100,B00001000, |
|
|
|
B00010000,B01000010,B00001000, |
|
|
|
B00010000,B01000010,B00001000, |
|
|
|
B00010000,B10000100,B00001000, |
|
|
|
B00010001,B00001000,B00001000, |
|
|
|
B00010001,B00001000,B00001000, |
|
|
|
B00010000,B10000100,B00001000, |
|
|
|
B00010000,B00000000,B00001000, |
|
|
|
B00011111,B11111111,B11111000, |
|
|
|
B00011111,B11111111,B11111000 |
|
|
|
}; |
|
|
|
|
|
|
|
#endif |
|
|
|
#else // HAS_HEATED_CHAMBER
|
|
|
|
#define STATUS_CHAMBER_WIDTH 0 |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif // HAS_HEATED_CHAMBER
|
|
|
|
#define BED_CHAM (HAS_HEATED_BED || HAS_HEATED_CHAMBER) |
|
|
|
#define BED_CHAM_FAN (BED_CHAM || HAS_FAN0) |
|
|
|
|
|
|
|
// Can also be overridden in Configuration.h
|
|
|
|
// Can also be overridden in Configuration_adv.h
|
|
|
|
// If you can afford it, try the 3-frame fan animation!
|
|
|
|
// Don't compile in the fan animation with no fan
|
|
|
|
#if !HAS_FAN0 |
|
|
|
#if !HAS_FAN0 || (HOTENDS == 5 || (HOTENDS == 4 && BED_CHAM) || (ENABLED(STATUS_COMBINE_HEATERS) && HAS_HEATED_CHAMBER)) |
|
|
|
#undef STATUS_FAN_FRAMES |
|
|
|
#elif !defined(STATUS_FAN_FRAMES) |
|
|
|
#elif !STATUS_FAN_FRAMES |
|
|
|
#define STATUS_FAN_FRAMES 2 |
|
|
|
#elif STATUS_FAN_FRAMES > 4 |
|
|
|
#error "A maximum of 4 fan animation frames is currently supported." |
|
|
|
#endif |
|
|
|
|
|
|
|
#if HOTENDS > 4 |
|
|
|
#undef STATUS_LOGO_WIDTH |
|
|
|
#undef STATUS_HEATERS_XSPACE |
|
|
|
#define STATUS_HEATERS_XSPACE 24 |
|
|
|
#endif |
|
|
|
|
|
|
|
//
|
|
|
|
// Provide default Fan Bitmaps
|
|
|
|
//
|
|
|
|
#if !defined(STATUS_FAN_WIDTH) && STATUS_FAN_FRAMES > 0 |
|
|
|
#if !STATUS_FAN_WIDTH && STATUS_FAN_FRAMES > 0 |
|
|
|
|
|
|
|
// Provide a fan animation if none exists
|
|
|
|
|
|
|
@ -836,7 +869,7 @@ |
|
|
|
|
|
|
|
#elif STATUS_FAN_FRAMES == 3 |
|
|
|
|
|
|
|
#define STATUS_FAN_WIDTH 21 |
|
|
|
#define STATUS_FAN_WIDTH 20 |
|
|
|
|
|
|
|
#if ENABLED(STATUS_ALT_FAN_BITMAP) |
|
|
|
|
|
|
@ -974,7 +1007,7 @@ |
|
|
|
|
|
|
|
#elif STATUS_FAN_FRAMES == 4 |
|
|
|
|
|
|
|
#define STATUS_FAN_WIDTH 21 |
|
|
|
#define STATUS_FAN_WIDTH 20 |
|
|
|
|
|
|
|
#if ENABLED(STATUS_ALT_FAN_BITMAP) |
|
|
|
|
|
|
@ -1153,6 +1186,35 @@ |
|
|
|
#endif // !STATUS_ALT_FAN_BITMAP
|
|
|
|
|
|
|
|
#endif |
|
|
|
#else |
|
|
|
#undef STATUS_FAN_FRAMES |
|
|
|
#define STATUS_FAN_WIDTH 0 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(CUSTOM_STATUS_SCREEN_IMAGE) |
|
|
|
|
|
|
|
#if STATUS_HOTEND1_WIDTH |
|
|
|
#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) |
|
|
|
#elif STATUS_HEATERS_WIDTH |
|
|
|
#define HAS_SPACES (((LCD_PIXEL_WIDTH - STATUS_HEATERS_WIDTH - STATUS_BED_WIDTH - STATUS_CHAMBER_WIDTH - STATUS_FAN_WIDTH - 20) < STATUS_LOGO_WIDTH) ? true : false) |
|
|
|
#endif |
|
|
|
|
|
|
|
#if HAS_SPACES |
|
|
|
#undef STATUS_LOGO_WIDTH |
|
|
|
#endif |
|
|
|
|
|
|
|
#if (HOTENDS > 1 && STATUS_LOGO_WIDTH && BED_CHAM_FAN) || ( HOTENDS >= 3 && !BED_CHAM_FAN) |
|
|
|
#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) |
|
|
|
#if STATUS_HOTEND1_WIDTH |
|
|
|
#if HOTENDS > 2 |
|
|
|
#define STATUS_HEATERS_X _STATUS_HEATERS_X(HOTENDS, STATUS_HOTEND1_WIDTH, 6) |
|
|
|
#else |
|
|
|
#define STATUS_HEATERS_X _STATUS_HEATERS_X(HOTENDS, STATUS_HOTEND1_WIDTH, 4) |
|
|
|
#endif |
|
|
|
#else |
|
|
|
#define STATUS_HEATERS_X _STATUS_HEATERS_X(1, STATUS_HEATERS_WIDTH, 4) |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
@ -1187,16 +1249,27 @@ |
|
|
|
#if STATUS_HOTEND1_WIDTH || STATUS_HEATERS_WIDTH |
|
|
|
|
|
|
|
#ifndef STATUS_HEATERS_XSPACE |
|
|
|
#define STATUS_HEATERS_XSPACE 24 // Like the included bitmaps
|
|
|
|
#if (HOTENDS == 3 || HOTENDS == 4) && ENABLED(STATUS_COMBINE_HEATERS) |
|
|
|
#define STATUS_HEATERS_XSPACE 24 |
|
|
|
#else |
|
|
|
#define STATUS_HEATERS_XSPACE 26 // Like the included bitmaps
|
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifndef STATUS_HEATERS_X |
|
|
|
#if STATUS_LOGO_BYTEWIDTH |
|
|
|
#define STATUS_HEATERS_X ((STATUS_LOGO_BYTEWIDTH + 0) * 8) |
|
|
|
#define STATUS_HEATERS_X (STATUS_LOGO_BYTEWIDTH * 8) |
|
|
|
#elif ((STATUS_CHAMBER_WIDTH || STATUS_FAN_WIDTH) && (STATUS_BED_WIDTH && STATUS_HOTEND_BITMAPS == 3)) || \ |
|
|
|
((STATUS_CHAMBER_WIDTH || STATUS_FAN_WIDTH || STATUS_BED_WIDTH) && STATUS_HOTEND_BITMAPS == 4) |
|
|
|
#define STATUS_HEATERS_X 5 |
|
|
|
#else |
|
|
|
#if ENABLED(STATUS_COMBINE_HEATERS) && HAS_HEATED_BED && HOTENDS <= 4 |
|
|
|
#define STATUS_HEATERS_X 5 |
|
|
|
#else |
|
|
|
#define STATUS_HEATERS_X 8 // Like the included bitmaps
|
|
|
|
#endif |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
@ -1205,7 +1278,6 @@ |
|
|
|
//
|
|
|
|
// Hotend images. A base hotend image and optional "ON" state image.
|
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef STATUS_HOTEND_BITMAPS |
|
|
|
#define STATUS_HOTEND_BITMAPS 1 |
|
|
|
#endif |
|
|
@ -1257,6 +1329,8 @@ |
|
|
|
#ifndef STATUS_HOTEND2_X |
|
|
|
#define STATUS_HOTEND2_X STATUS_HOTEND1_X + STATUS_HEATERS_XSPACE |
|
|
|
#endif |
|
|
|
|
|
|
|
#if HOTENDS > 2 |
|
|
|
#ifndef STATUS_HOTEND3_X |
|
|
|
#define STATUS_HOTEND3_X STATUS_HOTEND2_X + STATUS_HEATERS_XSPACE |
|
|
|
#endif |
|
|
@ -1270,7 +1344,6 @@ |
|
|
|
#define STATUS_HOTEND6_X STATUS_HOTEND5_X + STATUS_HEATERS_XSPACE |
|
|
|
#endif |
|
|
|
|
|
|
|
#if HOTENDS > 2 |
|
|
|
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); |
|
|
|
#define STATUS_HOTEND_X(N) status_hotend_x[N] |
|
|
|
#elif HOTENDS > 1 |
|
|
@ -1303,7 +1376,7 @@ |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
#if STATUS_HOTEND_BITMAPS > 1 |
|
|
|
#if STATUS_HOTEND_BITMAPS > 1 && DISABLED(STATUS_HOTEND_NUMBERLESS) |
|
|
|
#define TEST_BITMAP_OFF status_hotend1_a_bmp |
|
|
|
#define TEST_BITMAP_ON status_hotend1_b_bmp |
|
|
|
#else |
|
|
@ -1341,8 +1414,12 @@ |
|
|
|
#define STATUS_HOTEND_X(N) (STATUS_HEATERS_X + 2 + (N) * (STATUS_HEATERS_XSPACE)) |
|
|
|
#endif |
|
|
|
#ifndef STATUS_HOTEND_TEXT_X |
|
|
|
#if HOTENDS == 4 && STATUS_LOGO_WIDTH |
|
|
|
#define STATUS_HOTEND_TEXT_X(N) (STATUS_HEATERS_X + 6 + (N) * (STATUS_HEATERS_XSPACE)) |
|
|
|
#else |
|
|
|
#define STATUS_HOTEND_TEXT_X(N) (STATUS_HEATERS_X + 6 + (N) * (STATUS_HEATERS_XSPACE)) |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
#ifndef STATUS_HEATERS_BYTEWIDTH |
|
|
|
#define STATUS_HEATERS_BYTEWIDTH BW(STATUS_HEATERS_WIDTH) |
|
|
|
#endif |
|
|
@ -1363,16 +1440,13 @@ |
|
|
|
//
|
|
|
|
// Chamber Bitmap Properties
|
|
|
|
//
|
|
|
|
#ifndef STATUS_CHAMBER_WIDTH |
|
|
|
#define STATUS_CHAMBER_WIDTH 0 |
|
|
|
#endif |
|
|
|
#ifndef STATUS_CHAMBER_BYTEWIDTH |
|
|
|
#define STATUS_CHAMBER_BYTEWIDTH BW(STATUS_CHAMBER_WIDTH) |
|
|
|
#endif |
|
|
|
#if STATUS_CHAMBER_WIDTH && !STATUS_HEATERS_WIDTH |
|
|
|
#if STATUS_CHAMBER_WIDTH |
|
|
|
|
|
|
|
#ifndef STATUS_CHAMBER_X |
|
|
|
#define STATUS_CHAMBER_X (128 - (STATUS_FAN_BYTEWIDTH + STATUS_CHAMBER_BYTEWIDTH) * 8) |
|
|
|
#define STATUS_CHAMBER_X (LCD_PIXEL_WIDTH - (STATUS_CHAMBER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH) * 8) |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifndef STATUS_CHAMBER_HEIGHT |
|
|
@ -1388,7 +1462,7 @@ |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifndef STATUS_CHAMBER_TEXT_X |
|
|
|
#define STATUS_CHAMBER_TEXT_X (STATUS_CHAMBER_X + 7) |
|
|
|
#define STATUS_CHAMBER_TEXT_X (STATUS_CHAMBER_X + 11) |
|
|
|
#endif |
|
|
|
|
|
|
|
static_assert( |
|
|
@ -1407,16 +1481,13 @@ |
|
|
|
//
|
|
|
|
// Bed Bitmap Properties
|
|
|
|
//
|
|
|
|
#ifndef STATUS_BED_WIDTH |
|
|
|
#define STATUS_BED_WIDTH 0 |
|
|
|
#endif |
|
|
|
#ifndef STATUS_BED_BYTEWIDTH |
|
|
|
#define STATUS_BED_BYTEWIDTH BW(STATUS_BED_WIDTH) |
|
|
|
#endif |
|
|
|
#if STATUS_BED_WIDTH && !STATUS_HEATERS_WIDTH |
|
|
|
|
|
|
|
#ifndef STATUS_BED_X |
|
|
|
#define STATUS_BED_X (128 - (STATUS_CHAMBER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH + STATUS_BED_BYTEWIDTH) * 8) |
|
|
|
#define STATUS_BED_X (LCD_PIXEL_WIDTH - (STATUS_CHAMBER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH + STATUS_BED_BYTEWIDTH) * 8) |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifndef STATUS_BED_HEIGHT |
|
|
@ -1432,7 +1503,7 @@ |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifndef STATUS_BED_TEXT_X |
|
|
|
#define STATUS_BED_TEXT_X (STATUS_BED_X + 11) |
|
|
|
#define STATUS_BED_TEXT_X (STATUS_BED_X + 9) |
|
|
|
#endif |
|
|
|
|
|
|
|
static_assert( |
|
|
@ -1445,27 +1516,23 @@ |
|
|
|
"Status bed bitmap (status_bed_on_bmp) dimensions don't match data." |
|
|
|
); |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
//
|
|
|
|
// Fan Bitmap Properties
|
|
|
|
//
|
|
|
|
#ifndef STATUS_FAN_WIDTH |
|
|
|
#define STATUS_FAN_WIDTH 0 |
|
|
|
#endif |
|
|
|
#ifndef STATUS_FAN_BYTEWIDTH |
|
|
|
#define STATUS_FAN_BYTEWIDTH BW(STATUS_FAN_WIDTH) |
|
|
|
#endif |
|
|
|
#if STATUS_FAN_FRAMES |
|
|
|
#ifndef STATUS_FAN_X |
|
|
|
#define STATUS_FAN_X (128 - (STATUS_FAN_BYTEWIDTH) * 8) |
|
|
|
#define STATUS_FAN_X (LCD_PIXEL_WIDTH - (STATUS_FAN_BYTEWIDTH) * 8) |
|
|
|
#endif |
|
|
|
#ifndef STATUS_FAN_Y |
|
|
|
#define STATUS_FAN_Y 1 |
|
|
|
#endif |
|
|
|
#ifndef STATUS_FAN_TEXT_X |
|
|
|
#define STATUS_FAN_TEXT_X 103 |
|
|
|
#define STATUS_FAN_TEXT_X (STATUS_FAN_X - 1) |
|
|
|
#endif |
|
|
|
#ifndef STATUS_FAN_TEXT_Y |
|
|
|
#define STATUS_FAN_TEXT_Y 28 |
|
|
|