Merge pull request #6816 from thinkyhead/bf_lcd_live_editing

Constrain LCD status message rendering
This commit is contained in:
Scott Lahteine 2017-05-22 11:15:35 -05:00 committed by GitHub
commit 850203fb3a
3 changed files with 18 additions and 6 deletions

View File

@ -2509,9 +2509,12 @@ void kill_screen(const char* lcd_msg) {
#if ENABLED(EEPROM_SETTINGS) #if ENABLED(EEPROM_SETTINGS)
MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings); MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings); MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
#endif
MENU_ITEM(function, MSG_RESTORE_FAILSAFE, lcd_factory_settings); MENU_ITEM(function, MSG_RESTORE_FAILSAFE, lcd_factory_settings);
#if ENABLED(EEPROM_SETTINGS)
MENU_ITEM(gcode, MSG_INIT_EEPROM, PSTR("M502\nM500")); // TODO: Add "Are You Sure?" step MENU_ITEM(gcode, MSG_INIT_EEPROM, PSTR("M502\nM500")); // TODO: Add "Are You Sure?" step
#endif #endif
END_MENU(); END_MENU();
} }

View File

@ -634,7 +634,10 @@ static void lcd_implementation_status_screen() {
#if ENABLED(FILAMENT_LCD_DISPLAY) && ENABLED(SDSUPPORT) #if ENABLED(FILAMENT_LCD_DISPLAY) && ENABLED(SDSUPPORT)
if (PENDING(millis(), previous_lcd_status_ms + 5000UL)) { //Display both Status message line and Filament display on the last line if (PENDING(millis(), previous_lcd_status_ms + 5000UL)) { //Display both Status message line and Filament display on the last line
lcd_print(lcd_status_message); const char *str = lcd_status_message;
uint8_t i = LCD_WIDTH;
char c;
while (i-- && (c = *str++)) lcd_print(c);
} }
else { else {
lcd_printPGM(PSTR(LCD_STR_FILAM_DIA)); lcd_printPGM(PSTR(LCD_STR_FILAM_DIA));
@ -646,7 +649,10 @@ static void lcd_implementation_status_screen() {
u8g.print('%'); u8g.print('%');
} }
#else #else
lcd_print(lcd_status_message); const char *str = lcd_status_message;
uint8_t i = LCD_WIDTH;
char c;
while (i-- && (c = *str++)) lcd_print(c);
#endif #endif
} }
} }

View File

@ -386,10 +386,10 @@ void lcd_printPGM(const char *str) {
} }
void lcd_print(const char* const str) { void lcd_print(const char* const str) {
for (uint8_t i = 0; char c = str[i]; ++i) charset_mapper(c); for (uint8_t i = 0; const char c = str[i]; ++i) charset_mapper(c);
} }
void lcd_print(char c) { charset_mapper(c); } void lcd_print(const char c) { charset_mapper(c); }
#if ENABLED(SHOW_BOOTSCREEN) #if ENABLED(SHOW_BOOTSCREEN)
@ -795,7 +795,10 @@ static void lcd_implementation_status_screen() {
#endif // FILAMENT_LCD_DISPLAY && SDSUPPORT #endif // FILAMENT_LCD_DISPLAY && SDSUPPORT
lcd_print(lcd_status_message); const char *str = lcd_status_message;
uint8_t i = LCD_WIDTH;
char c;
while (i-- && (c = *str++)) lcd_print(c);
} }
#if ENABLED(ULTIPANEL) #if ENABLED(ULTIPANEL)