From b904b5ae8d2317a31fcc16a04f8d5fa8967e38d1 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 20 Mar 2017 06:10:31 -0500 Subject: [PATCH] Audible feedback for settings store/load/reset --- Marlin/Marlin_main.cpp | 20 ++++---- Marlin/configuration_store.cpp | 12 +++-- Marlin/configuration_store.h | 6 +-- Marlin/language_an.h | 4 +- Marlin/language_bg.h | 4 +- Marlin/language_ca.h | 4 +- Marlin/language_cn.h | 4 +- Marlin/language_cz.h | 4 +- Marlin/language_da.h | 4 +- Marlin/language_de.h | 4 +- Marlin/language_el-gr.h | 4 +- Marlin/language_el.h | 4 +- Marlin/language_en.h | 4 +- Marlin/language_es.h | 4 +- Marlin/language_eu.h | 4 +- Marlin/language_fi.h | 4 +- Marlin/language_fr.h | 4 +- Marlin/language_gl.h | 4 +- Marlin/language_hr.h | 4 +- Marlin/language_it.h | 4 +- Marlin/language_kana.h | 4 +- Marlin/language_kana_utf8.h | 4 +- Marlin/language_nl.h | 4 +- Marlin/language_pl.h | 4 +- Marlin/language_pt-br.h | 4 +- Marlin/language_pt-br_utf8.h | 4 +- Marlin/language_pt.h | 4 +- Marlin/language_pt_utf8.h | 4 +- Marlin/language_ru.h | 4 +- Marlin/language_tr.h | 4 +- Marlin/language_uk.h | 4 +- Marlin/language_zh_CN.h | 4 +- Marlin/language_zh_TW.h | 4 +- Marlin/ultralcd.cpp | 90 ++++++++++++++++++++-------------- Marlin/ultralcd.h | 5 +- 35 files changed, 137 insertions(+), 116 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 7d5cf729ab..18fffc911e 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3792,10 +3792,8 @@ inline void gcode_G28() { mbl.set_has_mesh(true); mbl.set_reactivate(true); enqueue_and_echo_commands_P(PSTR("G28")); - #if HAS_BUZZER - lcd_buzz(200, 659); - lcd_buzz(200, 698); - #endif + BUZZ(100, 659); + BUZZ(100, 698); } break; @@ -7289,8 +7287,8 @@ void quickstop_stepper() { SYNC_PLAN_POSITION_KINEMATIC(); report_current_position(); LCD_MESSAGEPGM(MSG_HOME_OFFSETS_APPLIED); - BUZZ(200, 659); - BUZZ(200, 698); + BUZZ(100, 659); + BUZZ(100, 698); } } @@ -7300,28 +7298,28 @@ void quickstop_stepper() { * M500: Store settings in EEPROM */ inline void gcode_M500() { - Config_StoreSettings(); + (void)Config_StoreSettings(); } /** * M501: Read settings from EEPROM */ inline void gcode_M501() { - Config_RetrieveSettings(); + (void)Config_RetrieveSettings(); } /** * M502: Revert to default settings */ inline void gcode_M502() { - Config_ResetDefault(); + (void)Config_ResetDefault(); } /** * M503: print settings currently in memory */ inline void gcode_M503() { - Config_PrintSettings(code_seen('S') && !code_value_bool()); + (void)Config_PrintSettings(code_seen('S') && !code_value_bool()); } #if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) @@ -10696,7 +10694,7 @@ void setup() { // Load data from EEPROM if available (or use defaults) // This also updates variables in the planner, elsewhere - Config_RetrieveSettings(); + (void)Config_RetrieveSettings(); #if DISABLED(NO_WORKSPACE_OFFSETS) // Initialize current position based on home_offset diff --git a/Marlin/configuration_store.cpp b/Marlin/configuration_store.cpp index ffe9fc36e5..09e89940c1 100644 --- a/Marlin/configuration_store.cpp +++ b/Marlin/configuration_store.cpp @@ -250,7 +250,7 @@ void Config_Postprocess() { /** * M500 - Store Configuration */ - void Config_StoreSettings() { + bool Config_StoreSettings() { float dummy = 0.0f; char ver[4] = "000"; @@ -538,17 +538,20 @@ void Config_Postprocess() { SERIAL_ECHOPAIR("Settings Stored (", eeprom_size - (EEPROM_OFFSET)); SERIAL_ECHOLNPGM(" bytes)"); } + #if ENABLED(AUTO_BED_LEVELING_UBL) blm.store_state(); if (blm.state.EEPROM_storage_slot >= 0) blm.store_mesh(blm.state.EEPROM_storage_slot); #endif + + return !eeprom_write_error; } /** * M501 - Retrieve Configuration */ - void Config_RetrieveSettings() { + bool Config_RetrieveSettings() { EEPROM_START(); eeprom_read_error = false; // If set EEPROM_READ won't write into RAM @@ -883,13 +886,16 @@ void Config_Postprocess() { #if ENABLED(EEPROM_CHITCHAT) Config_PrintSettings(); #endif + + return !eeprom_read_error; } #else // !EEPROM_SETTINGS - void Config_StoreSettings() { + bool Config_StoreSettings() { SERIAL_ERROR_START; SERIAL_ERRORLNPGM("EEPROM disabled"); + return false; } #endif // !EEPROM_SETTINGS diff --git a/Marlin/configuration_store.h b/Marlin/configuration_store.h index 7279dc4d57..93dbb7404c 100644 --- a/Marlin/configuration_store.h +++ b/Marlin/configuration_store.h @@ -26,7 +26,7 @@ #include "MarlinConfig.h" void Config_ResetDefault(); -void Config_StoreSettings(); +bool Config_StoreSettings(); #if DISABLED(DISABLE_M503) void Config_PrintSettings(bool forReplay=false); @@ -35,9 +35,9 @@ void Config_StoreSettings(); #endif #if ENABLED(EEPROM_SETTINGS) - void Config_RetrieveSettings(); + bool Config_RetrieveSettings(); #else - FORCE_INLINE void Config_RetrieveSettings() { Config_ResetDefault(); Config_PrintSettings(); } + FORCE_INLINE bool Config_RetrieveSettings() { Config_ResetDefault(); Config_PrintSettings(); return true; } #endif #endif //CONFIGURATION_STORE_H diff --git a/Marlin/language_an.h b/Marlin/language_an.h index 421e33c5c4..1ee83c423f 100644 --- a/Marlin/language_an.h +++ b/Marlin/language_an.h @@ -118,8 +118,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3") #define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.") #define MSG_CONTRAST _UxGT("Contraste") -#define MSG_STORE_EPROM _UxGT("Alzar memoria") -#define MSG_LOAD_EPROM _UxGT("Cargar memoria") +#define MSG_STORE_EEPROM _UxGT("Alzar memoria") +#define MSG_LOAD_EEPROM _UxGT("Cargar memoria") #define MSG_RESTORE_FAILSAFE _UxGT("Restaurar memoria") #define MSG_REFRESH _UxGT("Tornar a cargar") #define MSG_WATCH _UxGT("Informacion") diff --git a/Marlin/language_bg.h b/Marlin/language_bg.h index 0499b1ecdd..2349610f1b 100644 --- a/Marlin/language_bg.h +++ b/Marlin/language_bg.h @@ -119,8 +119,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3") #define MSG_FILAMENT_DIAM _UxGT("Диам. нишка") #define MSG_CONTRAST _UxGT("LCD контраст") -#define MSG_STORE_EPROM _UxGT("Запази в EPROM") -#define MSG_LOAD_EPROM _UxGT("Зареди от EPROM") +#define MSG_STORE_EEPROM _UxGT("Запази в EPROM") +#define MSG_LOAD_EEPROM _UxGT("Зареди от EPROM") #define MSG_RESTORE_FAILSAFE _UxGT("Фабрични настройки") #define MSG_REFRESH LCD_STR_REFRESH _UxGT("Обнови") #define MSG_WATCH _UxGT("Преглед") diff --git a/Marlin/language_ca.h b/Marlin/language_ca.h index 24bb53a4e9..796f2a7daa 100644 --- a/Marlin/language_ca.h +++ b/Marlin/language_ca.h @@ -123,8 +123,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E en mm3") #define MSG_FILAMENT_DIAM _UxGT("Diam. Fil.") #define MSG_CONTRAST _UxGT("Contrast de LCD") -#define MSG_STORE_EPROM _UxGT("Desa memoria") -#define MSG_LOAD_EPROM _UxGT("Carrega memoria") +#define MSG_STORE_EEPROM _UxGT("Desa memoria") +#define MSG_LOAD_EEPROM _UxGT("Carrega memoria") #define MSG_RESTORE_FAILSAFE _UxGT("Restaura valors") #define MSG_REFRESH _UxGT("Actualitza") #define MSG_WATCH _UxGT("Pantalla Info.") diff --git a/Marlin/language_cn.h b/Marlin/language_cn.h index 0c01a15119..2ef90b7d71 100644 --- a/Marlin/language_cn.h +++ b/Marlin/language_cn.h @@ -111,8 +111,8 @@ #define MSG_VOLUMETRIC_ENABLED "E in mm3" #define MSG_FILAMENT_DIAM "Fil. Dia." #define MSG_CONTRAST "LCD contrast" -#define MSG_STORE_EPROM "Store memory" -#define MSG_LOAD_EPROM "Load memory" +#define MSG_STORE_EEPROM "Store memory" +#define MSG_LOAD_EEPROM "Load memory" #define MSG_RESTORE_FAILSAFE "Restore failsafe" #define MSG_REFRESH "Refresh" #define MSG_WATCH "\xec\xed\xee\xef" diff --git a/Marlin/language_cz.h b/Marlin/language_cz.h index a92bbcbfff..d53ff6dda0 100644 --- a/Marlin/language_cz.h +++ b/Marlin/language_cz.h @@ -122,8 +122,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E na mm3") #define MSG_FILAMENT_DIAM _UxGT("Fil. Prum.") #define MSG_CONTRAST _UxGT("Kontrast LCD") -#define MSG_STORE_EPROM _UxGT("Ulozit nastaveni") -#define MSG_LOAD_EPROM _UxGT("Nacist nastaveni") +#define MSG_STORE_EEPROM _UxGT("Ulozit nastaveni") +#define MSG_LOAD_EEPROM _UxGT("Nacist nastaveni") #define MSG_RESTORE_FAILSAFE _UxGT("Obnovit vychozi") #define MSG_REFRESH _UxGT("Obnovit") #define MSG_WATCH _UxGT("Info obrazovka") diff --git a/Marlin/language_da.h b/Marlin/language_da.h index 3f5ae69720..9a963455c0 100644 --- a/Marlin/language_da.h +++ b/Marlin/language_da.h @@ -120,8 +120,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E i mm3") #define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.") #define MSG_CONTRAST _UxGT("LCD kontrast") -#define MSG_STORE_EPROM _UxGT("Gem i EEPROM") -#define MSG_LOAD_EPROM _UxGT("Hent fra EEPROM") +#define MSG_STORE_EEPROM _UxGT("Gem i EEPROM") +#define MSG_LOAD_EEPROM _UxGT("Hent fra EEPROM") #define MSG_RESTORE_FAILSAFE _UxGT("Gendan failsafe") #define MSG_REFRESH _UxGT("Genopfrisk") #define MSG_WATCH _UxGT("Info skærm") diff --git a/Marlin/language_de.h b/Marlin/language_de.h index 460fa39449..8a61bb1639 100644 --- a/Marlin/language_de.h +++ b/Marlin/language_de.h @@ -124,8 +124,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm³") #define MSG_FILAMENT_DIAM _UxGT("D Fil.") #define MSG_CONTRAST _UxGT("LCD Kontrast") -#define MSG_STORE_EPROM _UxGT("EPROM speichern") -#define MSG_LOAD_EPROM _UxGT("EPROM laden") +#define MSG_STORE_EEPROM _UxGT("EPROM speichern") +#define MSG_LOAD_EEPROM _UxGT("EPROM laden") #define MSG_RESTORE_FAILSAFE _UxGT("Standardkonfiguration") #define MSG_REFRESH _UxGT("Aktualisieren") #define MSG_WATCH _UxGT("Info") diff --git a/Marlin/language_el-gr.h b/Marlin/language_el-gr.h index 3e115e19b8..273a07a1d7 100644 --- a/Marlin/language_el-gr.h +++ b/Marlin/language_el-gr.h @@ -118,8 +118,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("Ε σε μμ3") #define MSG_FILAMENT_DIAM _UxGT("Διάμετρος νήματος") #define MSG_CONTRAST _UxGT("Κοντράστ LCD") -#define MSG_STORE_EPROM _UxGT("Αποθήκευση") -#define MSG_LOAD_EPROM _UxGT("Φόρτωση") +#define MSG_STORE_EEPROM _UxGT("Αποθήκευση") +#define MSG_LOAD_EEPROM _UxGT("Φόρτωση") #define MSG_RESTORE_FAILSAFE _UxGT("Επαναφορά ασφαλούς αντιγράφου") #define MSG_REFRESH _UxGT("Ανανέωση") #define MSG_WATCH _UxGT("Οθόνη πληροφόρησης") diff --git a/Marlin/language_el.h b/Marlin/language_el.h index f912446016..3f99b2b835 100644 --- a/Marlin/language_el.h +++ b/Marlin/language_el.h @@ -118,8 +118,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("Ε σε μμ3") #define MSG_FILAMENT_DIAM _UxGT("Διάμετρος νήματος") #define MSG_CONTRAST _UxGT("Κοντράστ LCD") -#define MSG_STORE_EPROM _UxGT("Αποθήκευση") -#define MSG_LOAD_EPROM _UxGT("Φόρτωση") +#define MSG_STORE_EEPROM _UxGT("Αποθήκευση") +#define MSG_LOAD_EEPROM _UxGT("Φόρτωση") #define MSG_RESTORE_FAILSAFE _UxGT("Επαναφορά ασφαλούς αντιγράφου") //SHORTEN #define MSG_REFRESH _UxGT("Ανανέωση") #define MSG_WATCH _UxGT("Οθόνη πληροφόρησης") diff --git a/Marlin/language_en.h b/Marlin/language_en.h index 6af3fcbf7a..b0ad5c986c 100644 --- a/Marlin/language_en.h +++ b/Marlin/language_en.h @@ -310,10 +310,10 @@ #define MSG_CONTRAST _UxGT("LCD contrast") #endif #ifndef MSG_STORE_EPROM - #define MSG_STORE_EPROM _UxGT("Store memory") + #define MSG_STORE_EEPROM _UxGT("Store memory") #endif #ifndef MSG_LOAD_EPROM - #define MSG_LOAD_EPROM _UxGT("Load memory") + #define MSG_LOAD_EEPROM _UxGT("Load memory") #endif #ifndef MSG_RESTORE_FAILSAFE #define MSG_RESTORE_FAILSAFE _UxGT("Restore failsafe") diff --git a/Marlin/language_es.h b/Marlin/language_es.h index fc54601f13..0da06d43b7 100644 --- a/Marlin/language_es.h +++ b/Marlin/language_es.h @@ -122,8 +122,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3") #define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.") #define MSG_CONTRAST _UxGT("Contraste") -#define MSG_STORE_EPROM _UxGT("Guardar memoria") -#define MSG_LOAD_EPROM _UxGT("Cargar memoria") +#define MSG_STORE_EEPROM _UxGT("Guardar memoria") +#define MSG_LOAD_EEPROM _UxGT("Cargar memoria") #define MSG_RESTORE_FAILSAFE _UxGT("Restaurar memoria") #define MSG_REFRESH _UxGT("Volver a cargar") #define MSG_WATCH _UxGT("Informacion") diff --git a/Marlin/language_eu.h b/Marlin/language_eu.h index 116d1e20ce..a83edb7006 100644 --- a/Marlin/language_eu.h +++ b/Marlin/language_eu.h @@ -109,8 +109,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3") #define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.") #define MSG_CONTRAST _UxGT("LCD kontrastea") -#define MSG_STORE_EPROM _UxGT("Gorde memoria") -#define MSG_LOAD_EPROM _UxGT("Kargatu memoria") +#define MSG_STORE_EEPROM _UxGT("Gorde memoria") +#define MSG_LOAD_EEPROM _UxGT("Kargatu memoria") #define MSG_RESTORE_FAILSAFE _UxGT("Larri. berriz.") #define MSG_REFRESH _UxGT("Berriz kargatu") #define MSG_WATCH _UxGT("Pantaila info") diff --git a/Marlin/language_fi.h b/Marlin/language_fi.h index 7fde1ca429..8072a8afee 100644 --- a/Marlin/language_fi.h +++ b/Marlin/language_fi.h @@ -110,8 +110,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm³") #define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.") #define MSG_CONTRAST _UxGT("LCD kontrasti") -#define MSG_STORE_EPROM _UxGT("Tallenna muistiin") -#define MSG_LOAD_EPROM _UxGT("Lataa muistista") +#define MSG_STORE_EEPROM _UxGT("Tallenna muistiin") +#define MSG_LOAD_EEPROM _UxGT("Lataa muistista") #define MSG_RESTORE_FAILSAFE _UxGT("Palauta oletus") #define MSG_REFRESH _UxGT("Päivitä") #define MSG_WATCH _UxGT("Seuraa") diff --git a/Marlin/language_fr.h b/Marlin/language_fr.h index c8681c399e..c4e1b6e668 100644 --- a/Marlin/language_fr.h +++ b/Marlin/language_fr.h @@ -123,8 +123,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E en mm3") #define MSG_FILAMENT_DIAM _UxGT("Diam. Fil.") #define MSG_CONTRAST _UxGT("Contraste LCD") -#define MSG_STORE_EPROM _UxGT("Sauver config") -#define MSG_LOAD_EPROM _UxGT("Lire config") +#define MSG_STORE_EEPROM _UxGT("Sauver config") +#define MSG_LOAD_EEPROM _UxGT("Lire config") #define MSG_RESTORE_FAILSAFE _UxGT("Restaurer défauts") #define MSG_REFRESH _UxGT("Actualiser") #define MSG_WATCH _UxGT("Surveiller") diff --git a/Marlin/language_gl.h b/Marlin/language_gl.h index 337871a114..442af39ff4 100644 --- a/Marlin/language_gl.h +++ b/Marlin/language_gl.h @@ -119,8 +119,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E en mm3") #define MSG_FILAMENT_DIAM _UxGT("Diam. fil.") #define MSG_CONTRAST _UxGT("Constraste LCD") -#define MSG_STORE_EPROM _UxGT("Gardar en memo.") -#define MSG_LOAD_EPROM _UxGT("Cargar de memo.") +#define MSG_STORE_EEPROM _UxGT("Gardar en memo.") +#define MSG_LOAD_EEPROM _UxGT("Cargar de memo.") #define MSG_RESTORE_FAILSAFE _UxGT("Cargar de firm.") #define MSG_REFRESH _UxGT("Volver a cargar") #define MSG_WATCH _UxGT("Monitorizacion") diff --git a/Marlin/language_hr.h b/Marlin/language_hr.h index e23269d171..3a326793d8 100644 --- a/Marlin/language_hr.h +++ b/Marlin/language_hr.h @@ -118,8 +118,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3") #define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.") #define MSG_CONTRAST _UxGT("Kontrast LCD-a") -#define MSG_STORE_EPROM _UxGT("Pohrani u memoriju") -#define MSG_LOAD_EPROM _UxGT("Učitaj memoriju") +#define MSG_STORE_EEPROM _UxGT("Pohrani u memoriju") +#define MSG_LOAD_EEPROM _UxGT("Učitaj memoriju") #define MSG_RESTORE_FAILSAFE _UxGT("Učitaj failsafe") #define MSG_REFRESH _UxGT("Osvježi") #define MSG_WATCH _UxGT("Info screen") diff --git a/Marlin/language_it.h b/Marlin/language_it.h index 3e1367772e..fe1608e7eb 100644 --- a/Marlin/language_it.h +++ b/Marlin/language_it.h @@ -126,8 +126,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3") #define MSG_FILAMENT_DIAM _UxGT("Diam. filo") #define MSG_CONTRAST _UxGT("Contrasto LCD") -#define MSG_STORE_EPROM _UxGT("Salva in memoria") -#define MSG_LOAD_EPROM _UxGT("Carica da memoria") +#define MSG_STORE_EEPROM _UxGT("Salva in memoria") +#define MSG_LOAD_EEPROM _UxGT("Carica da memoria") #define MSG_RESTORE_FAILSAFE _UxGT("Ripristina imp.") #define MSG_REFRESH _UxGT("Aggiorna") #define MSG_WATCH _UxGT("Guarda") diff --git a/Marlin/language_kana.h b/Marlin/language_kana.h index 8022ac2489..7925adbd02 100644 --- a/Marlin/language_kana.h +++ b/Marlin/language_kana.h @@ -157,8 +157,8 @@ #define MSG_FILAMENT_DIAM "\xcc\xa8\xd7\xd2\xdd\xc4\xb9\xb2" // "フィラメントケイ" ("Fil. Dia.") #endif #define MSG_CONTRAST "LCD\xba\xdd\xc4\xd7\xbd\xc4" // "LCDコントラスト" ("LCD contrast") -#define MSG_STORE_EPROM "\xd2\xd3\xd8\xcd\xb6\xb8\xc9\xb3" // "メモリヘカクノウ" ("Store memory") -#define MSG_LOAD_EPROM "\xd2\xd3\xd8\xb6\xd7\xd6\xd0\xba\xd0" // "メモリカラヨミコミ" ("Load memory") +#define MSG_STORE_EEPROM "\xd2\xd3\xd8\xcd\xb6\xb8\xc9\xb3" // "メモリヘカクノウ" ("Store memory") +#define MSG_LOAD_EEPROM "\xd2\xd3\xd8\xb6\xd7\xd6\xd0\xba\xd0" // "メモリカラヨミコミ" ("Load memory") #define MSG_RESTORE_FAILSAFE "\xbe\xaf\xc3\xb2\xd8\xbe\xaf\xc4" // "セッテイリセット" ("Restore failsafe") #define MSG_REFRESH "\xd8\xcc\xda\xaf\xbc\xad" // "リフレッシュ" ("Refresh") #define MSG_WATCH "\xbc\xde\xae\xb3\xce\xb3\xb6\xde\xd2\xdd" // "ジョウホウガメン" ("Info screen") diff --git a/Marlin/language_kana_utf8.h b/Marlin/language_kana_utf8.h index cb0404072d..48ffa37385 100644 --- a/Marlin/language_kana_utf8.h +++ b/Marlin/language_kana_utf8.h @@ -128,8 +128,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3") #define MSG_FILAMENT_DIAM _UxGT("フィラメントチョッケイ") // "Fil. Dia." #define MSG_CONTRAST _UxGT("LCDコントラスト") // "LCD contrast" -#define MSG_STORE_EPROM _UxGT("メモリヘカクノウ") // "Store memory" -#define MSG_LOAD_EPROM _UxGT("メモリカラヨミコミ") // "Load memory" +#define MSG_STORE_EEPROM _UxGT("メモリヘカクノウ") // "Store memory" +#define MSG_LOAD_EEPROM _UxGT("メモリカラヨミコミ") // "Load memory" #define MSG_RESTORE_FAILSAFE _UxGT("セッテイリセット") // "Restore failsafe" #define MSG_REFRESH _UxGT("リフレッシュ") // "Refresh" #define MSG_WATCH _UxGT("ジョウホウガメン") // "Info screen" diff --git a/Marlin/language_nl.h b/Marlin/language_nl.h index 5d15a699a8..33d3855041 100644 --- a/Marlin/language_nl.h +++ b/Marlin/language_nl.h @@ -118,8 +118,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3") #define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.") #define MSG_CONTRAST _UxGT("LCD contrast") -#define MSG_STORE_EPROM _UxGT("Geheugen opslaan") -#define MSG_LOAD_EPROM _UxGT("Geheugen laden") +#define MSG_STORE_EEPROM _UxGT("Geheugen opslaan") +#define MSG_LOAD_EEPROM _UxGT("Geheugen laden") #define MSG_RESTORE_FAILSAFE _UxGT("Noodstop reset") #define MSG_REFRESH _UxGT("Ververs") #define MSG_WATCH _UxGT("Info scherm") diff --git a/Marlin/language_pl.h b/Marlin/language_pl.h index 6531ad7da5..dc08e10e26 100644 --- a/Marlin/language_pl.h +++ b/Marlin/language_pl.h @@ -118,8 +118,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E w mm3") #define MSG_FILAMENT_DIAM _UxGT("Sr. fil.") #define MSG_CONTRAST _UxGT("Kontrast LCD") -#define MSG_STORE_EPROM _UxGT("Zapisz w pamieci") -#define MSG_LOAD_EPROM _UxGT("Wczytaj z pamieci") +#define MSG_STORE_EEPROM _UxGT("Zapisz w pamieci") +#define MSG_LOAD_EEPROM _UxGT("Wczytaj z pamieci") #define MSG_RESTORE_FAILSAFE _UxGT("Ustaw. fabryczne") #define MSG_REFRESH _UxGT("Odswiez") #define MSG_WATCH _UxGT("Ekran glowny") diff --git a/Marlin/language_pt-br.h b/Marlin/language_pt-br.h index 1c83f2167e..b6a0778a6c 100644 --- a/Marlin/language_pt-br.h +++ b/Marlin/language_pt-br.h @@ -111,8 +111,8 @@ #define MSG_VOLUMETRIC_ENABLED "Extr. em mm3" #define MSG_FILAMENT_DIAM "Diametro Fil." #define MSG_CONTRAST "Contraste" -#define MSG_STORE_EPROM "Salvar" -#define MSG_LOAD_EPROM "Ler" +#define MSG_STORE_EEPROM "Salvar" +#define MSG_LOAD_EEPROM "Ler" #define MSG_RESTORE_FAILSAFE "Rest. de emerg." #define MSG_REFRESH LCD_STR_REFRESH " Restaurar" #define MSG_WATCH "Monitorar" diff --git a/Marlin/language_pt-br_utf8.h b/Marlin/language_pt-br_utf8.h index bed0a8cd7b..ece1ff84a1 100644 --- a/Marlin/language_pt-br_utf8.h +++ b/Marlin/language_pt-br_utf8.h @@ -111,8 +111,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("Extr. em mm3") #define MSG_FILAMENT_DIAM _UxGT("Diametro Fil.") #define MSG_CONTRAST _UxGT("Contraste") -#define MSG_STORE_EPROM _UxGT("Salvar") -#define MSG_LOAD_EPROM _UxGT("Ler") +#define MSG_STORE_EEPROM _UxGT("Salvar") +#define MSG_LOAD_EEPROM _UxGT("Ler") #define MSG_RESTORE_FAILSAFE _UxGT("Rest. de emerg.") #define MSG_REFRESH LCD_STR_REFRESH _UxGT(" Restaurar") #define MSG_WATCH _UxGT("Monitorar") diff --git a/Marlin/language_pt.h b/Marlin/language_pt.h index bb281644e1..16a2cb9458 100644 --- a/Marlin/language_pt.h +++ b/Marlin/language_pt.h @@ -115,8 +115,8 @@ #define MSG_VOLUMETRIC_ENABLED "E em mm3" #define MSG_FILAMENT_DIAM "Fil. Diam." #define MSG_CONTRAST "Contraste" -#define MSG_STORE_EPROM "Guardar na memoria" -#define MSG_LOAD_EPROM "Carregar da memoria" +#define MSG_STORE_EEPROM "Guardar na memoria" +#define MSG_LOAD_EEPROM "Carregar da memoria" #define MSG_RESTORE_FAILSAFE "Rest. de emergen." #define MSG_REFRESH LCD_STR_REFRESH " Recarregar" #define MSG_WATCH "Monitorizar" diff --git a/Marlin/language_pt_utf8.h b/Marlin/language_pt_utf8.h index 84698f44e6..84f95188a8 100644 --- a/Marlin/language_pt_utf8.h +++ b/Marlin/language_pt_utf8.h @@ -115,8 +115,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E em mm3") #define MSG_FILAMENT_DIAM _UxGT("Fil. Diam.") #define MSG_CONTRAST _UxGT("Contraste") -#define MSG_STORE_EPROM _UxGT("Guardar na memoria") -#define MSG_LOAD_EPROM _UxGT("Carregar da memoria") +#define MSG_STORE_EEPROM _UxGT("Guardar na memoria") +#define MSG_LOAD_EEPROM _UxGT("Carregar da memoria") #define MSG_RESTORE_FAILSAFE _UxGT("Rest. de emergen.") #define MSG_REFRESH LCD_STR_REFRESH _UxGT(" Recarregar") #define MSG_WATCH _UxGT("Monitorizar") diff --git a/Marlin/language_ru.h b/Marlin/language_ru.h index 9026899a23..caa825cc78 100644 --- a/Marlin/language_ru.h +++ b/Marlin/language_ru.h @@ -115,8 +115,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E в mm3") #define MSG_FILAMENT_DIAM _UxGT("Диаметр прутка") #define MSG_CONTRAST _UxGT("Контраст LCD") -#define MSG_STORE_EPROM _UxGT("Сохранить в EEPROM") -#define MSG_LOAD_EPROM _UxGT("Считать из EEPROM") +#define MSG_STORE_EEPROM _UxGT("Сохранить в EEPROM") +#define MSG_LOAD_EEPROM _UxGT("Считать из EEPROM") #define MSG_RESTORE_FAILSAFE _UxGT("Сброс EEPROM") #define MSG_REFRESH _UxGT("Обновить") #define MSG_WATCH _UxGT("Обзор") diff --git a/Marlin/language_tr.h b/Marlin/language_tr.h index 5df82d4b71..d007a0afb2 100644 --- a/Marlin/language_tr.h +++ b/Marlin/language_tr.h @@ -123,8 +123,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3") // E in mm3 #define MSG_FILAMENT_DIAM _UxGT("Fil. Çap") // Fil. Çap #define MSG_CONTRAST _UxGT("LCD Kontrast") // LCD Kontrast -#define MSG_STORE_EPROM _UxGT("Hafızaya Al") // Hafızaya Al -#define MSG_LOAD_EPROM _UxGT("Hafızadan Yükle") // Hafızadan Yükle +#define MSG_STORE_EEPROM _UxGT("Hafızaya Al") // Hafızaya Al +#define MSG_LOAD_EEPROM _UxGT("Hafızadan Yükle") // Hafızadan Yükle #define MSG_RESTORE_FAILSAFE _UxGT("Fabrika Ayarları") // Fabrika Ayarları #define MSG_REFRESH _UxGT("Yenile") // Yenile #define MSG_WATCH _UxGT("Bilgi Ekranı") // Bilgi Ekranı diff --git a/Marlin/language_uk.h b/Marlin/language_uk.h index a3e1c90f91..4279edc8f0 100644 --- a/Marlin/language_uk.h +++ b/Marlin/language_uk.h @@ -119,8 +119,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("E в мм3") #define MSG_FILAMENT_DIAM _UxGT("Діам. волок.") #define MSG_CONTRAST _UxGT("контраст LCD") -#define MSG_STORE_EPROM _UxGT("Зберегти в ПЗП") -#define MSG_LOAD_EPROM _UxGT("Зчитати з ПЗП") +#define MSG_STORE_EEPROM _UxGT("Зберегти в ПЗП") +#define MSG_LOAD_EEPROM _UxGT("Зчитати з ПЗП") #define MSG_RESTORE_FAILSAFE _UxGT("Відновити базові") #define MSG_REFRESH _UxGT("Поновити") #define MSG_WATCH _UxGT("Інформація") diff --git a/Marlin/language_zh_CN.h b/Marlin/language_zh_CN.h index 202ddc55ce..41982754eb 100644 --- a/Marlin/language_zh_CN.h +++ b/Marlin/language_zh_CN.h @@ -112,8 +112,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("测容积mm³") //"E in mm3" volumetric_enabled #define MSG_FILAMENT_DIAM _UxGT("丝料直径") //"Fil. Dia." #define MSG_CONTRAST _UxGT("LCD对比度") //"LCD contrast" -#define MSG_STORE_EPROM _UxGT("保存设置") //"Store memory" -#define MSG_LOAD_EPROM _UxGT("装载设置") //"Load memory" +#define MSG_STORE_EEPROM _UxGT("保存设置") //"Store memory" +#define MSG_LOAD_EEPROM _UxGT("装载设置") //"Load memory" #define MSG_RESTORE_FAILSAFE _UxGT("恢复安全值") //"Restore failsafe" #define MSG_REFRESH _UxGT("刷新") //"Refresh" #define MSG_WATCH _UxGT("信息屏") //"Info screen" diff --git a/Marlin/language_zh_TW.h b/Marlin/language_zh_TW.h index 3ab8f2f503..3d5a03b961 100644 --- a/Marlin/language_zh_TW.h +++ b/Marlin/language_zh_TW.h @@ -112,8 +112,8 @@ #define MSG_VOLUMETRIC_ENABLED _UxGT("測容積mm³") //"E in mm3" volumetric_enabled #define MSG_FILAMENT_DIAM _UxGT("絲料直徑") //"Fil. Dia." #define MSG_CONTRAST _UxGT("LCD對比度") //"LCD contrast" -#define MSG_STORE_EPROM _UxGT("保存設置") //"Store memory" -#define MSG_LOAD_EPROM _UxGT("裝載設置") //"Load memory" +#define MSG_STORE_EEPROM _UxGT("保存設置") //"Store memory" +#define MSG_LOAD_EEPROM _UxGT("裝載設置") //"Load memory" #define MSG_RESTORE_FAILSAFE _UxGT("恢複安全值") //"Restore failsafe" #define MSG_REFRESH _UxGT("刷新") //"Refresh" #define MSG_WATCH _UxGT("資訊界面") //"Info screen" diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 2548e001dc..39ab47e325 100755 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -606,6 +606,43 @@ void kill_screen(const char* lcd_msg) { #if ENABLED(ULTIPANEL) + /** + * + * Audio feedback for controller clicks + * + */ + void lcd_buzz(long duration, uint16_t freq) { + #if ENABLED(LCD_USE_I2C_BUZZER) + lcd.buzz(duration, freq); + #elif PIN_EXISTS(BEEPER) + buzzer.tone(duration, freq); + #else + UNUSED(duration); UNUSED(freq); + #endif + } + + void lcd_quick_feedback() { + lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; + buttons = 0; + next_button_update_ms = millis() + 500; + + // Buzz and wait. The delay is needed for buttons to settle! + lcd_buzz(LCD_FEEDBACK_FREQUENCY_DURATION_MS, LCD_FEEDBACK_FREQUENCY_HZ); + #if ENABLED(LCD_USE_I2C_BUZZER) + delay(10); + #elif PIN_EXISTS(BEEPER) + for (int8_t i = 5; i--;) { buzzer.tick(); delay(2); } + #endif + } + + void lcd_completion_feedback(const bool good/*=true*/) { + if (good) { + lcd_buzz(100, 659); + lcd_buzz(100, 698); + } + else lcd_buzz(20, 440); + } + inline void line_to_current(AxisEnum axis) { planner.buffer_line_kinematic(current_position, MMM_TO_MMS(manual_feedrate_mm_m[axis]), active_extruder); } @@ -1382,10 +1419,7 @@ void kill_screen(const char* lcd_msg) { enqueue_and_echo_commands_P(PSTR("G28")); lcd_return_to_status(); //LCD_MESSAGEPGM(MSG_LEVEL_BED_DONE); - #if HAS_BUZZER - lcd_buzz(200, 659); - lcd_buzz(200, 698); - #endif + lcd_completion_feedback(); } else { lcd_goto_screen(_lcd_level_goto_next_point); @@ -1912,6 +1946,16 @@ KeepDrawing: * */ + #if ENABLED(EEPROM_SETTINGS) + static void lcd_store_settings() { lcd_completion_feedback(Config_StoreSettings()); } + static void lcd_load_settings() { lcd_completion_feedback(Config_RetrieveSettings()); } + #endif + + static void lcd_factory_settings() { + Config_ResetDefault(); + lcd_completion_feedback(); + } + void lcd_control_menu() { START_MENU(); MENU_BACK(MSG_MAIN); @@ -1931,10 +1975,11 @@ KeepDrawing: #endif #if ENABLED(EEPROM_SETTINGS) - MENU_ITEM(function, MSG_STORE_EPROM, Config_StoreSettings); - MENU_ITEM(function, MSG_LOAD_EPROM, Config_RetrieveSettings); + MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings); + MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings); #endif - MENU_ITEM(function, MSG_RESTORE_FAILSAFE, Config_ResetDefault); + + MENU_ITEM(function, MSG_RESTORE_FAILSAFE, lcd_factory_settings); END_MENU(); } @@ -2175,7 +2220,7 @@ KeepDrawing: MENU_ITEM_EDIT(int3, MSG_BED, &lcd_preheat_bed_temp[material], BED_MINTEMP, BED_MAXTEMP - 15); #endif #if ENABLED(EEPROM_SETTINGS) - MENU_ITEM(function, MSG_STORE_EPROM, Config_StoreSettings); + MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings); #endif END_MENU(); } @@ -3003,35 +3048,6 @@ KeepDrawing: #endif // REPRAPWORLD_KEYPAD - /** - * - * Audio feedback for controller clicks - * - */ - void lcd_buzz(long duration, uint16_t freq) { - #if ENABLED(LCD_USE_I2C_BUZZER) - lcd.buzz(duration, freq); - #elif PIN_EXISTS(BEEPER) - buzzer.tone(duration, freq); - #else - UNUSED(duration); UNUSED(freq); - #endif - } - - void lcd_quick_feedback() { - lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; - buttons = 0; - next_button_update_ms = millis() + 500; - - // Buzz and wait. The delay is needed for buttons to settle! - lcd_buzz(LCD_FEEDBACK_FREQUENCY_DURATION_MS, LCD_FEEDBACK_FREQUENCY_HZ); - #if ENABLED(LCD_USE_I2C_BUZZER) - delay(10); - #elif PIN_EXISTS(BEEPER) - for (int8_t i = 5; i--;) { buzzer.tick(); delay(2); } - #endif - } - /** * * Menu actions diff --git a/Marlin/ultralcd.h b/Marlin/ultralcd.h index 8dd2825a36..6b7179902b 100644 --- a/Marlin/ultralcd.h +++ b/Marlin/ultralcd.h @@ -78,9 +78,10 @@ #define EN_B (_BV(BLEN_B)) #define EN_C (_BV(BLEN_C)) - extern volatile uint8_t buttons; //the last checked buttons in a bit array. + extern volatile uint8_t buttons; // The last-checked buttons in a bit array. void lcd_buttons_update(); - void lcd_quick_feedback(); // Audible feedback for a button click - could also be visual + void lcd_quick_feedback(); // Audible feedback for a button click - could also be visual + void lcd_completion_feedback(const bool good=true); #if ENABLED(FILAMENT_CHANGE_FEATURE) void lcd_filament_change_show_message(const FilamentChangeMessage message);