|
|
@ -211,7 +211,7 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to
|
|
|
|
/* Helper macros for menus */
|
|
|
|
/* Helper macros for menus */
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* START_MENU generates the init code for a menu function
|
|
|
|
* START_SCREEN generates the init code for a screen function
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* encoderLine is the position based on the encoder
|
|
|
|
* encoderLine is the position based on the encoder
|
|
|
|
* currentMenuViewOffset is the top menu line to display
|
|
|
|
* currentMenuViewOffset is the top menu line to display
|
|
|
@ -219,17 +219,26 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to
|
|
|
|
* _lineNr is the menu item to draw and process
|
|
|
|
* _lineNr is the menu item to draw and process
|
|
|
|
* _menuItemNr is the index of each MENU_ITEM
|
|
|
|
* _menuItemNr is the index of each MENU_ITEM
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
#define START_MENU() do { \
|
|
|
|
#define _START_SCREEN(CODE) do { \
|
|
|
|
ENCODER_DIRECTION_MENUS(); \
|
|
|
|
ENCODER_DIRECTION_MENUS(); \
|
|
|
|
encoderRateMultiplierEnabled = false; \
|
|
|
|
encoderRateMultiplierEnabled = false; \
|
|
|
|
if (encoderPosition > 0x8000) encoderPosition = 0; \
|
|
|
|
if (encoderPosition > 0x8000) encoderPosition = 0; \
|
|
|
|
uint8_t encoderLine = encoderPosition / ENCODER_STEPS_PER_MENU_ITEM; \
|
|
|
|
uint8_t encoderLine = encoderPosition / ENCODER_STEPS_PER_MENU_ITEM; \
|
|
|
|
NOMORE(currentMenuViewOffset, encoderLine); \
|
|
|
|
NOMORE(currentMenuViewOffset, encoderLine); \
|
|
|
|
uint8_t _lineNr = currentMenuViewOffset, _menuItemNr; \
|
|
|
|
uint8_t _lineNr = currentMenuViewOffset, _menuItemNr; \
|
|
|
|
bool wasClicked = LCD_CLICKED, itemSelected; \
|
|
|
|
CODE; \
|
|
|
|
for (uint8_t _drawLineNr = 0; _drawLineNr < LCD_HEIGHT; _drawLineNr++, _lineNr++) { \
|
|
|
|
for (uint8_t _drawLineNr = 0; _drawLineNr < LCD_HEIGHT; _drawLineNr++, _lineNr++) { \
|
|
|
|
_menuItemNr = 0;
|
|
|
|
_menuItemNr = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define START_SCREEN() _START_SCREEN(0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* START_MENU generates the init code for a menu function
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* wasClicked indicates the controller was clicked
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define START_MENU() _START_SCREEN(bool wasClicked = LCD_CLICKED)
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* MENU_ITEM generates draw & handler code for a menu item, potentially calling:
|
|
|
|
* MENU_ITEM generates draw & handler code for a menu item, potentially calling:
|
|
|
|
*
|
|
|
|
*
|
|
|
@ -253,10 +262,9 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
#define _MENU_ITEM_PART_1(type, label, args...) \
|
|
|
|
#define _MENU_ITEM_PART_1(type, label, args...) \
|
|
|
|
if (_menuItemNr == _lineNr) { \
|
|
|
|
if (_menuItemNr == _lineNr) { \
|
|
|
|
itemSelected = encoderLine == _menuItemNr; \
|
|
|
|
|
|
|
|
if (lcdDrawUpdate) \
|
|
|
|
if (lcdDrawUpdate) \
|
|
|
|
lcd_implementation_drawmenu_ ## type(itemSelected, _drawLineNr, PSTR(label), ## args); \
|
|
|
|
lcd_implementation_drawmenu_ ## type(encoderLine == _menuItemNr, _drawLineNr, PSTR(label), ## args); \
|
|
|
|
if (wasClicked && itemSelected) { \
|
|
|
|
if (wasClicked && encoderLine == _menuItemNr) { \
|
|
|
|
lcd_quick_feedback()
|
|
|
|
lcd_quick_feedback()
|
|
|
|
|
|
|
|
|
|
|
|
#define _MENU_ITEM_PART_2(type, args...) \
|
|
|
|
#define _MENU_ITEM_PART_2(type, args...) \
|
|
|
@ -281,6 +289,21 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to
|
|
|
|
} \
|
|
|
|
} \
|
|
|
|
_menuItemNr++
|
|
|
|
_menuItemNr++
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define END_SCREEN() \
|
|
|
|
|
|
|
|
if (encoderLine >= _menuItemNr) { \
|
|
|
|
|
|
|
|
encoderPosition = _menuItemNr * (ENCODER_STEPS_PER_MENU_ITEM) - 1; \
|
|
|
|
|
|
|
|
encoderLine = _menuItemNr - 1; \
|
|
|
|
|
|
|
|
} \
|
|
|
|
|
|
|
|
if (encoderLine >= currentMenuViewOffset + LCD_HEIGHT) { \
|
|
|
|
|
|
|
|
currentMenuViewOffset = encoderLine - (LCD_HEIGHT) + 1; \
|
|
|
|
|
|
|
|
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT; \
|
|
|
|
|
|
|
|
_lineNr = currentMenuViewOffset - 1; \
|
|
|
|
|
|
|
|
_drawLineNr = -1; \
|
|
|
|
|
|
|
|
} \
|
|
|
|
|
|
|
|
} } while(0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define END_MENU() END_SCREEN()
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(ENCODER_RATE_MULTIPLIER)
|
|
|
|
#if ENABLED(ENCODER_RATE_MULTIPLIER)
|
|
|
|
|
|
|
|
|
|
|
|
//#define ENCODER_RATE_MULTIPLIER_DEBUG // If defined, output the encoder steps per second value
|
|
|
|
//#define ENCODER_RATE_MULTIPLIER_DEBUG // If defined, output the encoder steps per second value
|
|
|
@ -307,10 +330,6 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to
|
|
|
|
#define MENU_MULTIPLIER_ITEM_EDIT(type, label, args...) MENU_ITEM(setting_edit_ ## type, label, PSTR(label), ## args)
|
|
|
|
#define MENU_MULTIPLIER_ITEM_EDIT(type, label, args...) MENU_ITEM(setting_edit_ ## type, label, PSTR(label), ## args)
|
|
|
|
#define MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(type, label, args...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## args)
|
|
|
|
#define MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(type, label, args...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## args)
|
|
|
|
#endif //!ENCODER_RATE_MULTIPLIER
|
|
|
|
#endif //!ENCODER_RATE_MULTIPLIER
|
|
|
|
#define END_MENU() \
|
|
|
|
|
|
|
|
if (encoderLine >= _menuItemNr) { encoderPosition = _menuItemNr * (ENCODER_STEPS_PER_MENU_ITEM) - 1; encoderLine = _menuItemNr - 1; }\
|
|
|
|
|
|
|
|
if (encoderLine >= currentMenuViewOffset + LCD_HEIGHT) { currentMenuViewOffset = encoderLine - (LCD_HEIGHT) + 1; lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT; _lineNr = currentMenuViewOffset - 1; _drawLineNr = -1; } \
|
|
|
|
|
|
|
|
} } while(0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** Used variables to keep track of the menu */
|
|
|
|
/** Used variables to keep track of the menu */
|
|
|
|
volatile uint8_t buttons; //the last checked buttons in a bit array.
|
|
|
|
volatile uint8_t buttons; //the last checked buttons in a bit array.
|
|
|
@ -1927,14 +1946,14 @@ static void lcd_status_screen() {
|
|
|
|
printStatistics stats = print_job_counter.getStats();
|
|
|
|
printStatistics stats = print_job_counter.getStats();
|
|
|
|
|
|
|
|
|
|
|
|
char printTime[6];
|
|
|
|
char printTime[6];
|
|
|
|
sprintf(printTime, "%02d:%02d", stats.printTime / 60, stats.printTime % 60);
|
|
|
|
sprintf(printTime, "%02d:%02d", int(stats.printTime / 60), int(stats.printTime % 60));
|
|
|
|
|
|
|
|
|
|
|
|
if (LCD_CLICKED) lcd_goto_previous_menu(true);
|
|
|
|
if (LCD_CLICKED) lcd_goto_previous_menu(true);
|
|
|
|
START_MENU();
|
|
|
|
START_SCREEN();
|
|
|
|
STATIC_ITEM(MSG_INFO_TOTAL_PRINTS ": ", itostr3left(stats.totalPrints)); // Total Prints: 999
|
|
|
|
STATIC_ITEM(MSG_INFO_TOTAL_PRINTS ": ", itostr3left(stats.totalPrints)); // Total Prints: 999
|
|
|
|
STATIC_ITEM(MSG_INFO_FINISHED_PRINTS ": ", itostr3left(stats.finishedPrints)); // Finished Prints: 666
|
|
|
|
STATIC_ITEM(MSG_INFO_FINISHED_PRINTS ": ", itostr3left(stats.finishedPrints)); // Finished Prints: 666
|
|
|
|
STATIC_ITEM(MSG_INFO_PRINT_TIME ": ", printTime); // Total Print Time: 123456
|
|
|
|
STATIC_ITEM(MSG_INFO_PRINT_TIME ": ", printTime); // Total Print Time: 123456
|
|
|
|
END_MENU();
|
|
|
|
END_SCREEN();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif // PRINTCOUNTER
|
|
|
|
#endif // PRINTCOUNTER
|
|
|
|
|
|
|
|
|
|
|
@ -1945,7 +1964,7 @@ static void lcd_status_screen() {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
static void lcd_info_thermistors_menu() {
|
|
|
|
static void lcd_info_thermistors_menu() {
|
|
|
|
if (LCD_CLICKED) lcd_goto_previous_menu(true);
|
|
|
|
if (LCD_CLICKED) lcd_goto_previous_menu(true);
|
|
|
|
START_MENU();
|
|
|
|
START_SCREEN();
|
|
|
|
#define THERMISTOR_ID TEMP_SENSOR_0
|
|
|
|
#define THERMISTOR_ID TEMP_SENSOR_0
|
|
|
|
#include "thermistornames.h"
|
|
|
|
#include "thermistornames.h"
|
|
|
|
STATIC_ITEM("T0: " THERMISTOR_NAME);
|
|
|
|
STATIC_ITEM("T0: " THERMISTOR_NAME);
|
|
|
@ -1987,7 +2006,7 @@ static void lcd_status_screen() {
|
|
|
|
STATIC_ITEM(MSG_INFO_MIN_TEMP ": " STRINGIFY(BED_MINTEMP));
|
|
|
|
STATIC_ITEM(MSG_INFO_MIN_TEMP ": " STRINGIFY(BED_MINTEMP));
|
|
|
|
STATIC_ITEM(MSG_INFO_MAX_TEMP ": " STRINGIFY(BED_MAXTEMP));
|
|
|
|
STATIC_ITEM(MSG_INFO_MAX_TEMP ": " STRINGIFY(BED_MAXTEMP));
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
END_MENU();
|
|
|
|
END_SCREEN();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -1997,7 +2016,7 @@ static void lcd_status_screen() {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
static void lcd_info_board_menu() {
|
|
|
|
static void lcd_info_board_menu() {
|
|
|
|
if (LCD_CLICKED) lcd_goto_previous_menu(true);
|
|
|
|
if (LCD_CLICKED) lcd_goto_previous_menu(true);
|
|
|
|
START_MENU();
|
|
|
|
START_SCREEN();
|
|
|
|
STATIC_ITEM(BOARD_NAME); // MyPrinterController
|
|
|
|
STATIC_ITEM(BOARD_NAME); // MyPrinterController
|
|
|
|
STATIC_ITEM(MSG_INFO_BAUDRATE ": " STRINGIFY(BAUDRATE)); // Baud: 250000
|
|
|
|
STATIC_ITEM(MSG_INFO_BAUDRATE ": " STRINGIFY(BAUDRATE)); // Baud: 250000
|
|
|
|
STATIC_ITEM(MSG_INFO_PROTOCOL ": " PROTOCOL_VERSION); // Protocol: 1.0
|
|
|
|
STATIC_ITEM(MSG_INFO_PROTOCOL ": " PROTOCOL_VERSION); // Protocol: 1.0
|
|
|
@ -2008,7 +2027,7 @@ static void lcd_status_screen() {
|
|
|
|
STATIC_ITEM(MSG_INFO_PSU ": XBox"); // Power Supply: XBox
|
|
|
|
STATIC_ITEM(MSG_INFO_PSU ": XBox"); // Power Supply: XBox
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif // POWER_SUPPLY
|
|
|
|
#endif // POWER_SUPPLY
|
|
|
|
END_MENU();
|
|
|
|
END_SCREEN();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -2018,14 +2037,14 @@ static void lcd_status_screen() {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
static void lcd_info_printer_menu() {
|
|
|
|
static void lcd_info_printer_menu() {
|
|
|
|
if (LCD_CLICKED) lcd_goto_previous_menu(true);
|
|
|
|
if (LCD_CLICKED) lcd_goto_previous_menu(true);
|
|
|
|
START_MENU();
|
|
|
|
START_SCREEN();
|
|
|
|
STATIC_ITEM(MSG_MARLIN); // Marlin
|
|
|
|
STATIC_ITEM(MSG_MARLIN); // Marlin
|
|
|
|
STATIC_ITEM(SHORT_BUILD_VERSION); // x.x.x-Branch
|
|
|
|
STATIC_ITEM(SHORT_BUILD_VERSION); // x.x.x-Branch
|
|
|
|
STATIC_ITEM(STRING_DISTRIBUTION_DATE); // YYYY-MM-DD HH:MM
|
|
|
|
STATIC_ITEM(STRING_DISTRIBUTION_DATE); // YYYY-MM-DD HH:MM
|
|
|
|
STATIC_ITEM(MACHINE_NAME); // My3DPrinter
|
|
|
|
STATIC_ITEM(MACHINE_NAME); // My3DPrinter
|
|
|
|
STATIC_ITEM(WEBSITE_URL); // www.my3dprinter.com
|
|
|
|
STATIC_ITEM(WEBSITE_URL); // www.my3dprinter.com
|
|
|
|
STATIC_ITEM(MSG_INFO_EXTRUDERS ": " STRINGIFY(EXTRUDERS)); // Extruders: 2
|
|
|
|
STATIC_ITEM(MSG_INFO_EXTRUDERS ": " STRINGIFY(EXTRUDERS)); // Extruders: 2
|
|
|
|
END_MENU();
|
|
|
|
END_SCREEN();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -2069,7 +2088,7 @@ static void lcd_status_screen() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void lcd_filament_change_init_message() {
|
|
|
|
static void lcd_filament_change_init_message() {
|
|
|
|
START_MENU();
|
|
|
|
START_SCREEN();
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_1);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_1);
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_INIT_2
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_INIT_2
|
|
|
@ -2078,11 +2097,11 @@ static void lcd_status_screen() {
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_INIT_3
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_INIT_3
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_3);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_3);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
END_MENU();
|
|
|
|
END_SCREEN();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void lcd_filament_change_unload_message() {
|
|
|
|
static void lcd_filament_change_unload_message() {
|
|
|
|
START_MENU();
|
|
|
|
START_SCREEN();
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_1);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_1);
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_UNLOAD_2
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_UNLOAD_2
|
|
|
@ -2091,11 +2110,11 @@ static void lcd_status_screen() {
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_UNLOAD_3
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_UNLOAD_3
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_3);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_3);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
END_MENU();
|
|
|
|
END_SCREEN();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void lcd_filament_change_insert_message() {
|
|
|
|
static void lcd_filament_change_insert_message() {
|
|
|
|
START_MENU();
|
|
|
|
START_SCREEN();
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_1);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_1);
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_INSERT_2
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_INSERT_2
|
|
|
@ -2104,11 +2123,11 @@ static void lcd_status_screen() {
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_INSERT_3
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_INSERT_3
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_3);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_3);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
END_MENU();
|
|
|
|
END_SCREEN();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void lcd_filament_change_load_message() {
|
|
|
|
static void lcd_filament_change_load_message() {
|
|
|
|
START_MENU();
|
|
|
|
START_SCREEN();
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_1);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_1);
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_LOAD_2
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_LOAD_2
|
|
|
@ -2117,11 +2136,11 @@ static void lcd_status_screen() {
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_LOAD_3
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_LOAD_3
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_3);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_3);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
END_MENU();
|
|
|
|
END_SCREEN();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void lcd_filament_change_extrude_message() {
|
|
|
|
static void lcd_filament_change_extrude_message() {
|
|
|
|
START_MENU();
|
|
|
|
START_SCREEN();
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_EXTRUDE_1);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_EXTRUDE_1);
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_EXTRUDE_2
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_EXTRUDE_2
|
|
|
@ -2130,11 +2149,11 @@ static void lcd_status_screen() {
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_EXTRUDE_3
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_EXTRUDE_3
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_EXTRUDE_3);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_EXTRUDE_3);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
END_MENU();
|
|
|
|
END_SCREEN();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void lcd_filament_change_resume_message() {
|
|
|
|
static void lcd_filament_change_resume_message() {
|
|
|
|
START_MENU();
|
|
|
|
START_SCREEN();
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_RESUME_1);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_RESUME_1);
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_RESUME_2
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_RESUME_2
|
|
|
@ -2143,7 +2162,7 @@ static void lcd_status_screen() {
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_RESUME_3
|
|
|
|
#ifdef MSG_FILAMENT_CHANGE_RESUME_3
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_RESUME_3);
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_RESUME_3);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
END_MENU();
|
|
|
|
END_SCREEN();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void lcd_filament_change_show_message(FilamentChangeMessage message) {
|
|
|
|
void lcd_filament_change_show_message(FilamentChangeMessage message) {
|
|
|
|