From 0e6ec34228d3f2775952fd0a21b1e3ff8a110159 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 2 Apr 2017 00:45:39 -0500 Subject: [PATCH] Use PSTR versions of lcd_status... to save SRAM --- Marlin/G26_Mesh_Validation_Tool.cpp | 2 +- Marlin/UBL.h | 1 + Marlin/UBL_G29.cpp | 24 +++++++++++++----------- Marlin/ultralcd.cpp | 8 ++++---- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/Marlin/G26_Mesh_Validation_Tool.cpp b/Marlin/G26_Mesh_Validation_Tool.cpp index fc07275c13..d00369d575 100644 --- a/Marlin/G26_Mesh_Validation_Tool.cpp +++ b/Marlin/G26_Mesh_Validation_Tool.cpp @@ -128,7 +128,7 @@ extern bool code_value_bool(); extern bool code_has_value(); extern void lcd_init(); - extern void lcd_setstatuspgm(const char* const message, uint8_t level); + extern void lcd_setstatuspgm(const char* const message, const uint8_t level); #define PLANNER_XY_FEEDRATE() (min(planner.max_feedrate_mm_s[X_AXIS], planner.max_feedrate_mm_s[Y_AXIS])) //bob bool prepare_move_to_destination_cartesian(); void line_to_destination(); diff --git a/Marlin/UBL.h b/Marlin/UBL.h index f96d23e668..c62e05a31a 100644 --- a/Marlin/UBL.h +++ b/Marlin/UBL.h @@ -29,6 +29,7 @@ #if ENABLED(AUTO_BED_LEVELING_UBL) + #define UBL_VERSION "1.00" #define UBL_OK false #define UBL_ERR true diff --git a/Marlin/UBL_G29.cpp b/Marlin/UBL_G29.cpp index 9512f61b27..3d877cc8d0 100644 --- a/Marlin/UBL_G29.cpp +++ b/Marlin/UBL_G29.cpp @@ -307,7 +307,8 @@ static float x_pos, y_pos, measured_z, card_thickness = 0.0, ubl_constant = 0.0; #if ENABLED(ULTRA_LCD) - void lcd_setstatus(const char* message, bool persist); + extern void lcd_setstatus(const char* message, const bool persist); + extern void lcd_setstatuspgm(const char* message, const uint8_t level); #endif void gcode_G29() { @@ -655,7 +656,7 @@ if (ELAPSED(millis(), nxt)) { SERIAL_PROTOCOLLNPGM("\nZ-Offset Adjustment Stopped."); do_blocking_move_to_z(Z_CLEARANCE_DEPLOY_PROBE); - lcd_setstatus("Z-Offset Stopped", true); + lcd_setstatuspgm("Z-Offset Stopped"); restore_ubl_active_state_and_leave(); goto LEAVE; } @@ -673,7 +674,8 @@ LEAVE: #if ENABLED(ULTRA_LCD) - lcd_setstatus(" ", true); + lcd_reset_alert_level(); + lcd_setstatuspgm(""); lcd_quick_feedback(); #endif @@ -977,7 +979,7 @@ bool g29_parameter_parsing() { #if ENABLED(ULTRA_LCD) - lcd_setstatus("Doing G29 UBL !", true); + lcd_setstatuspgm("Doing G29 UBL!"); lcd_quick_feedback(); #endif @@ -1088,7 +1090,7 @@ ubl_state_recursion_chk++; if (ubl_state_recursion_chk != 1) { SERIAL_ECHOLNPGM("save_ubl_active_state_and_disabled() called multiple times in a row."); - lcd_setstatus("save_UBL_active() error", true); + lcd_setstatuspgm("save_UBL_active() error"); lcd_quick_feedback(); return; } @@ -1099,7 +1101,7 @@ void restore_ubl_active_state_and_leave() { if (--ubl_state_recursion_chk) { SERIAL_ECHOLNPGM("restore_ubl_active_state_and_leave() called too many times."); - lcd_setstatus("restore_UBL_active() error", true); + lcd_setstatuspgm("restore_UBL_active() error"); lcd_quick_feedback(); return; } @@ -1114,7 +1116,7 @@ void g29_what_command() { const uint16_t k = E2END - ubl.eeprom_start; - SERIAL_PROTOCOLPGM("Unified Bed Leveling System Version 1.00 "); + SERIAL_PROTOCOLPGM("Unified Bed Leveling System Version " UBL_VERSION " "); if (ubl.state.active) SERIAL_PROTOCOLCHAR('A'); else @@ -1339,7 +1341,7 @@ memset(not_done, 0xFF, sizeof(not_done)); #if ENABLED(ULTRA_LCD) - lcd_setstatus("Fine Tuning Mesh.", true); + lcd_setstatuspgm("Fine Tuning Mesh"); #endif do_blocking_move_to_z(Z_CLEARANCE_DEPLOY_PROBE); @@ -1398,7 +1400,7 @@ lcd_return_to_status(); //SERIAL_PROTOCOLLNPGM("\nFine Tuning of Mesh Stopped."); do_blocking_move_to_z(Z_CLEARANCE_DEPLOY_PROBE); - lcd_setstatus("Mesh Editing Stopped", true); + lcd_setstatuspgm("Mesh Editing Stopped"); while (ubl_lcd_clicked()) idle(); @@ -1426,9 +1428,9 @@ do_blocking_move_to_xy(lx, ly); #if ENABLED(ULTRA_LCD) - lcd_setstatus("Done Editing Mesh", true); + lcd_setstatuspgm("Done Editing Mesh"); #endif - SERIAL_ECHOLNPGM("Done Editing Mesh."); + SERIAL_ECHOLNPGM("Done Editing Mesh"); } #endif // AUTO_BED_LEVELING_UBL \ No newline at end of file diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index f407424427..d41281c927 100755 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -677,7 +677,7 @@ void kill_screen(const char* lcd_msg) { thermalManager.autotempShutdown(); #endif wait_for_heatup = false; - lcd_setstatus(MSG_PRINT_ABORTED, true); + lcd_setstatuspgm(PSTR(MSG_PRINT_ABORTED), true); } #endif // SDSUPPORT @@ -3552,13 +3552,13 @@ void lcd_finishstatus(bool persist=false) { bool lcd_hasstatus() { return (lcd_status_message[0] != '\0'); } -void lcd_setstatus(const char* const message, bool persist) { +void lcd_setstatus(const char * const message, const bool persist) { if (lcd_status_message_level > 0) return; strncpy(lcd_status_message, message, 3 * (LCD_WIDTH)); lcd_finishstatus(persist); } -void lcd_setstatuspgm(const char* const message, uint8_t level) { +void lcd_setstatuspgm(const char * const message, const uint8_t level) { if (level < lcd_status_message_level) return; lcd_status_message_level = level; strncpy_P(lcd_status_message, message, 3 * (LCD_WIDTH)); @@ -3575,7 +3575,7 @@ void status_printf(uint8_t level, const char *status, ...) { lcd_finishstatus(level > 0); } -void lcd_setalertstatuspgm(const char* const message) { +void lcd_setalertstatuspgm(const char * const message) { lcd_setstatuspgm(message, 1); #if ENABLED(ULTIPANEL) lcd_return_to_status();