From 830593d62e142e829ab4f6ec0fa4f4e26b0c3772 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 31 Aug 2016 23:06:02 +0200 Subject: [PATCH] =?UTF-8?q?[Horus]=C2=A0SD=20hot=20mount=20if=20removed=20?= =?UTF-8?q?when=20the=20radio=20is=20ON?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- radio/src/main_arm.cpp | 21 ++++++++++++++------- radio/src/translations.cpp | 1 + radio/src/translations.h | 1 + radio/src/translations/cz.h.txt | 1 + radio/src/translations/de.h.txt | 1 + radio/src/translations/en.h.txt | 1 + radio/src/translations/es.h.txt | 1 + radio/src/translations/fi.h.txt | 1 + radio/src/translations/fr.h.txt | 1 + radio/src/translations/it.h.txt | 1 + radio/src/translations/nl.h.txt | 1 + radio/src/translations/pl.h.txt | 1 + radio/src/translations/pt.h.txt | 1 + radio/src/translations/se.h.txt | 1 + 14 files changed, 27 insertions(+), 7 deletions(-) diff --git a/radio/src/main_arm.cpp b/radio/src/main_arm.cpp index b05bd10ac..5a4708d86 100644 --- a/radio/src/main_arm.cpp +++ b/radio/src/main_arm.cpp @@ -413,23 +413,30 @@ void perMain() #if defined(RAMBACKUP) if (unexpectedShutdown) { - lcd->clear(); - lcdDrawText(LCD_W/2, LCD_H/2-20, "EMERGENCY MODE", DBLSIZE|CENTERED|TEXT_BGCOLOR); - lcdRefresh(); + drawFatalErrorScreen(STR_EMERGENCY_MODE); return; } #endif + +#if defined(PCBHORUS) + // TODO if it is OK on HORUS it could be ported to all other boards + // But in this case it's needed to define sdMount for all boards, because sdInit also initializes the SD mutex + static uint32_t sdcard_present_before = SD_CARD_PRESENT(); + uint32_t sdcard_present_now = SD_CARD_PRESENT(); + if (sdcard_present_now && !sdcard_present_before) { + sdMount(); + } + sdcard_present_before = sdcard_present_now; +#endif #if !defined(EEPROM) // In case the SD card is removed during the session if (!SD_CARD_PRESENT()) { - lcd->clear(); - lcdDrawText(LCD_W/2, LCD_H/2-20, STR_NO_SDCARD, DBLSIZE|CENTERED|TEXT_BGCOLOR); - lcdRefresh(); + drawFatalErrorScreen(STR_NO_SDCARD); return; } #endif - + #if defined(USB_MASS_STORAGE) if (usbPlugged()) { // disable access to menus diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 65b9c1628..f35cddef6 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -493,6 +493,7 @@ const pm_char STR_SWITCHWARN[] PROGMEM = TR_SWITCHWARN; const pm_char STR_FAILSAFEWARN[] PROGMEM = TR_FAILSAFEWARN; const pm_char STR_WRONG_SDCARDVERSION[] PROGMEM = TR_WRONG_SDCARDVERSION; const pm_char STR_WRONG_PCBREV[] PROGMEM = TR_WRONG_PCBREV; +const pm_char STR_EMERGENCY_MODE[] PROGMEM = TR_EMERGENCY_MODE; const pm_char STR_PCBREV_ERROR[] PROGMEM = TR_PCBREV_ERROR; const pm_char STR_NO_FAILSAFE[] PROGMEM = TR_NO_FAILSAFE; const pm_char STR_KEYSTUCK[] PROGMEM = TR_KEYSTUCK; diff --git a/radio/src/translations.h b/radio/src/translations.h index ffcda1311..037f32f7c 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -708,6 +708,7 @@ extern const pm_char STR_SWITCHWARN[]; extern const pm_char STR_FAILSAFEWARN[]; extern const pm_char STR_WRONG_SDCARDVERSION[]; extern const pm_char STR_WRONG_PCBREV[]; +extern const pm_char STR_EMERGENCY_MODE[]; extern const pm_char STR_PCBREV_ERROR[]; extern const pm_char STR_NO_FAILSAFE[]; extern const pm_char STR_KEYSTUCK[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 276f58839..c3d9c34a6 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -915,6 +915,7 @@ #define TR_FAILSAFEWARN "FAILSAFE" #define TR_WRONG_SDCARDVERSION "Wrong files version" #define TR_WRONG_PCBREV "Wrong PCB detected" +#define TR_EMERGENCY_MODE "EMERGENCY MODE" #define TR_PCBREV_ERROR "PCB error" #define TR_NO_FAILSAFE "Failsafe není nastaveno" #define TR_KEYSTUCK "Zaseklá klávesa" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index c3e8ddb74..b1380e146 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -934,6 +934,7 @@ #define TR_FAILSAFEWARN "FAILSAFE" #define TR_WRONG_SDCARDVERSION "Wrong files version" #define TR_WRONG_PCBREV "Wrong PCB detected" +#define TR_EMERGENCY_MODE "EMERGENCY MODE" #define TR_PCBREV_ERROR "PCB error" #define TR_NO_FAILSAFE TR("Failsafe not set", "Failsafe nicht programmiert") #define TR_KEYSTUCK "Taste klemmt" //Key stuck=Taste klemmt diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 535261072..bcec26549 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -900,6 +900,7 @@ #define TR_FAILSAFEWARN "FAILSAFE" #define TR_WRONG_SDCARDVERSION "Wrong files version" #define TR_WRONG_PCBREV "Wrong PCB detected" +#define TR_EMERGENCY_MODE "EMERGENCY MODE" #define TR_PCBREV_ERROR "PCB error" #define TR_NO_FAILSAFE "Failsafe not set" #define TR_KEYSTUCK "Key stuck" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index ea5ccef41..6fae8ace7 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -879,6 +879,7 @@ #define TR_FAILSAFEWARN "FAILSAFE" #define TR_WRONG_SDCARDVERSION "Wrong files version" #define TR_WRONG_PCBREV "Wrong PCB detected" +#define TR_EMERGENCY_MODE "EMERGENCY MODE" #define TR_PCBREV_ERROR "PCB error" #define TR_NO_FAILSAFE "Failsafe not set" #define TR_KEYSTUCK "Key stuck" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index f4a88e9e0..756ae025a 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -879,6 +879,7 @@ #define TR_FAILSAFEWARN "FAILSAFE" #define TR_WRONG_SDCARDVERSION "Wrong files version" #define TR_WRONG_PCBREV "Wrong PCB detected" +#define TR_EMERGENCY_MODE "EMERGENCY MODE" #define TR_PCBREV_ERROR "PCB error" #define TR_NO_FAILSAFE "Failsafe not set" #define TR_KEYSTUCK "Key stuck" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 22dc13312..117f5114d 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -911,6 +911,7 @@ #define TR_FAILSAFEWARN "FAILSAFE" #define TR_WRONG_SDCARDVERSION "Version des fichiers incompatible" #define TR_WRONG_PCBREV "Wrong PCB detected" +#define TR_EMERGENCY_MODE "EMERGENCY MODE" #define TR_PCBREV_ERROR "PCB error" #define TR_NO_FAILSAFE "Failsafe pas déf." #define TR_KEYSTUCK "Touche bloquée" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index c4958e52a..3201983f8 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -914,6 +914,7 @@ #define TR_FAILSAFEWARN "FAILSAFE" #define TR_WRONG_SDCARDVERSION "Wrong files version" #define TR_WRONG_PCBREV "Wrong PCB detected" +#define TR_EMERGENCY_MODE "EMERGENCY MODE" #define TR_PCBREV_ERROR "PCB error" #define TR_NO_FAILSAFE "Failsafe non settato" #define TR_KEYSTUCK "Tasto bloccato" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index d0fcf331d..eb46c43b3 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -928,6 +928,7 @@ #define TR_FAILSAFEWARN "FAILSAFE" #define TR_WRONG_SDCARDVERSION "Wrong files version" #define TR_WRONG_PCBREV "Wrong PCB detected" +#define TR_EMERGENCY_MODE "EMERGENCY MODE" #define TR_PCBREV_ERROR "PCB error" #define TR_NO_FAILSAFE TR("Failsafe niet ing.", "Failsafe niet ingesteld") #define TR_KEYSTUCK "Toets klemt" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 76e61f956..251117b2a 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -916,6 +916,7 @@ #define TR_FAILSAFEWARN "FAILSAFE" #define TR_WRONG_SDCARDVERSION "Wrong files version" #define TR_WRONG_PCBREV "Wrong PCB detected" +#define TR_EMERGENCY_MODE "EMERGENCY MODE" #define TR_PCBREV_ERROR "PCB error" #define TR_NO_FAILSAFE "Brak Failsafe" #define TR_KEYSTUCK "Blokada klucza" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 735452308..34a4ffe12 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -874,6 +874,7 @@ #define TR_FAILSAFEWARN "FAILSAFE" #define TR_WRONG_SDCARDVERSION "Wrong files version" #define TR_WRONG_PCBREV "Wrong PCB detected" +#define TR_EMERGENCY_MODE "EMERGENCY MODE" #define TR_PCBREV_ERROR "PCB error" #define TR_NO_FAILSAFE "Failsafe not set" #define TR_KEYSTUCK "Key stuck" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index a4ae8bce5..e0407057a 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -928,6 +928,7 @@ #define TR_SDCARDVERSIONWARN "SD Card Check" #define TR_WRONG_SDCARDVERSION "Wrong SDCARD file version" #define TR_WRONG_PCBREV "Wrong PCB detected" +#define TR_EMERGENCY_MODE "EMERGENCY MODE" #define TR_PCBREV_ERROR "PCB error" #define TR_NO_FAILSAFE "Failsafe ej given" #define TR_KEYSTUCK "Knapp-fel"