From df342c646dff4e295d277e01693166bd1adf53b1 Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Wed, 19 Jul 2017 20:59:38 +0200 Subject: [PATCH] dont show message that default settings are used if user has never run M500 --- Firmware/ConfigurationStore.cpp | 19 ++++++++++++------- Firmware/Marlin_main.cpp | 15 +++++++-------- Firmware/language_all.cpp | 2 +- Firmware/language_en.h | 2 +- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/Firmware/ConfigurationStore.cpp b/Firmware/ConfigurationStore.cpp index b4e58831a..0011e71df 100644 --- a/Firmware/ConfigurationStore.cpp +++ b/Firmware/ConfigurationStore.cpp @@ -273,13 +273,12 @@ void Config_PrintSettings() bool Config_RetrieveSettings() { int i=EEPROM_OFFSET; - bool settings_from_eeprom; + bool previous_settings_retrieved = true; char stored_ver[4]; char ver[4]=EEPROM_VERSION; EEPROM_READ_VAR(i,stored_ver); //read stored version - SERIAL_ECHOLNPGM("Stored EEPROM version:"); - MYSERIAL.println(stored_ver); - // SERIAL_ECHOLN("Version: [" << ver << "] Stored version: [" << stored_ver << "]"); + + // SERIAL_ECHOLN("Version: [" << ver << "] Stored version: [" << stored_ver << "]"); if (strncmp(ver,stored_ver,3) == 0) { // version number match @@ -362,17 +361,23 @@ bool Config_RetrieveSettings() SERIAL_ECHO_START; SERIAL_ECHOLNPGM("Stored settings retrieved"); - settings_from_eeprom = true; } else { Config_ResetDefault(); - settings_from_eeprom = false; + + //Return false to inform user that eeprom version was changed and firmware is using default hardcoded settings now. + //In case that storing to eeprom was not used yet, do not inform user that hardcoded settings are used. + if (eeprom_read_byte((uint8_t *)EEPROM_OFFSET) != 0xFF || + eeprom_read_byte((uint8_t *)EEPROM_OFFSET + 1) != 0xFF || + eeprom_read_byte((uint8_t *)EEPROM_OFFSET + 2) != 0xFF) { + previous_settings_retrieved = false; + } } #ifdef EEPROM_CHITCHAT Config_PrintSettings(); #endif - return settings_from_eeprom; + return previous_settings_retrieved; } #endif diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a40a97910..0d7d5c6e2 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1045,7 +1045,7 @@ void setup() SERIAL_ECHOLN((int)sizeof(block_t)*BLOCK_BUFFER_SIZE); lcd_update_enable(false); // loads data from EEPROM if available else uses defaults (and resets step acceleration rate) - settings_from_eeprom = Config_RetrieveSettings(); + bool previous_settings_retrieved = Config_RetrieveSettings(); SdFatUtil::set_stack_guard(); //writes magic number at the end of static variables to protect against overwriting static memory by stack tp_init(); // Initialize temperature loop plan_init(); // Initialize planner; @@ -1209,11 +1209,14 @@ void setup() lcd_show_fullscreen_message_and_wait_P(MSG_FOLLOW_CALIBRATION_FLOW); } for (int i = 0; i<4; i++) EEPROM_read_B(EEPROM_BOWDEN_LENGTH + i * 2, &bowden_length[i]); + + //If eeprom version for storing parameters to eeprom using M500 changed, default settings are used. Inform user in this case + if (!previous_settings_retrieved) { + lcd_show_fullscreen_message_and_wait_P(MSG_DEFAULT_SETTINGS_LOADED); + } + lcd_update_enable(true); - //If eeprom version for storing parameters to eeprom using M500 changed, default settings are used. Inform user in this case. - if(!setting_from_eeprom) lcd_show_fullscreen_message_and_wait_P(MSG_DEFAULT_SETTINGS_LOADED); - // Store the currently running firmware into an eeprom, // so the next time the firmware gets updated, it will know from which version it has been updated. update_current_firmware_version_to_eeprom(); @@ -4953,10 +4956,6 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp } break; #endif - - - - case 500: // M500 Store settings in EEPROM { diff --git a/Firmware/language_all.cpp b/Firmware/language_all.cpp index d72f1dc17..73f8477e1 100644 --- a/Firmware/language_all.cpp +++ b/Firmware/language_all.cpp @@ -775,7 +775,7 @@ const char * const MSG_DATE_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_DATE_DE }; -const char MSG_DEFAULT_SETTINGS_LOADED_EN[] PROGMEM = "Hardcoded default settings loaded"; +const char MSG_DEFAULT_SETTINGS_LOADED_EN[] PROGMEM = "Default settings loaded"; const char * const MSG_DEFAULT_SETTINGS_LOADED_LANG_TABLE[1] PROGMEM = { MSG_DEFAULT_SETTINGS_LOADED_EN }; diff --git a/Firmware/language_en.h b/Firmware/language_en.h index eb986789a..9a275fa30 100644 --- a/Firmware/language_en.h +++ b/Firmware/language_en.h @@ -311,4 +311,4 @@ #define(length=15, lines=1) MSG_MEASURED_SKEW "Measured skew:" #define(length=15, lines=1) MSG_SLIGHT_SKEW "Slight skew:" #define(length=15, lines=1) MSG_SEVERE_SKEW "Severe skew:" -#define(length=20, lines=4) MSG_DEFAULT_SETTINGS_LOADED "Hardcoded default settings loaded" \ No newline at end of file +#define(length=20, lines=4) MSG_DEFAULT_SETTINGS_LOADED "Default settings loaded" \ No newline at end of file