diff --git a/radio/sdcard/horus/opentx.sdcard.version b/radio/sdcard/horus/opentx.sdcard.version new file mode 100755 index 000000000..e2446f1b2 --- /dev/null +++ b/radio/sdcard/horus/opentx.sdcard.version @@ -0,0 +1 @@ +2.2V0001 diff --git a/radio/sdcard/taranis/opentx.sdcard.version b/radio/sdcard/taranis/opentx.sdcard.version new file mode 100755 index 000000000..e2446f1b2 --- /dev/null +++ b/radio/sdcard/taranis/opentx.sdcard.version @@ -0,0 +1 @@ +2.2V0001 diff --git a/radio/src/dataconstants.h b/radio/src/dataconstants.h index c9c0c9ade..d9578b58d 100644 --- a/radio/src/dataconstants.h +++ b/radio/src/dataconstants.h @@ -127,6 +127,9 @@ #define NUM_CYC 3 #define NUM_CAL_PPM 4 +#if defined(SDCARD) +#define REQUIRED_SDCARD_VERSION "2.2V0001" +#endif enum CurveType { CURVE_TYPE_STANDARD, CURVE_TYPE_CUSTOM, diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 45e01a0c0..c03446618 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1084,6 +1084,27 @@ void doSplash() #define doSplash() #endif +#if defined(SDCARD) +void checkSDVersion() +{ + if (sdMounted()) { + FIL versionFile = {0}; + UINT read = 0; + char version[sizeof(REQUIRED_SDCARD_VERSION)]; + + FRESULT result = f_open(&versionFile, "/opentx.sdcard.version", FA_OPEN_EXISTING | FA_READ); + if ((result == FR_OK) && (f_size(&versionFile) == sizeof(REQUIRED_SDCARD_VERSION))) { + f_read(&versionFile, &version, sizeof(REQUIRED_SDCARD_VERSION), &read); + } + f_close(&versionFile); + if (strncmp(version, REQUIRED_SDCARD_VERSION, sizeof(REQUIRED_SDCARD_VERSION)-1) != 0) { + TRACE("sdCheckVersion FAILED"); + ALERT(STR_SDCARDVERSIONWARN, STR_WRONG_SDCARDVERSION, AU_ERROR); + } + } +} +#endif + #if defined(PCBTARANIS) void checkFailsafe() { @@ -1118,6 +1139,10 @@ void checkAll() checkFailsafe(); #endif +#if defined(SDCARD) + checkSDVersion(); +#endif + #if defined(CPUARM) if (g_model.displayChecklist && modelHasNotes()) { pushModelNotes(); diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index d6e91737f..ff882b39f 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -491,6 +491,8 @@ const pm_char STR_THROTTLEWARN[] PROGMEM = TR_THROTTLEWARN; const pm_char STR_ALARMSWARN[] PROGMEM = TR_ALARMSWARN; const pm_char STR_SWITCHWARN[] PROGMEM = TR_SWITCHWARN; const pm_char STR_FAILSAFEWARN[] PROGMEM = TR_FAILSAFEWARN; +const pm_char STR_SDCARDVERSIONWARN[] PROGMEM = TR_SDCARDVERSIONWARN; +const pm_char STR_WRONG_SDCARDVERSION[] PROGMEM = TR_WRONG_SDCARDVERSION; 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 086327e51..d008b279b 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -706,6 +706,8 @@ extern const pm_char STR_THROTTLEWARN[]; extern const pm_char STR_ALARMSWARN[]; extern const pm_char STR_SWITCHWARN[]; extern const pm_char STR_FAILSAFEWARN[]; +extern const pm_char STR_SDCARDVERSIONWARN[]; +extern const pm_char STR_WRONG_SDCARDVERSION[]; 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 02cd9f8c8..db677b22f 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -851,9 +851,9 @@ #define TR_MENUTEMPLATES "ŠABLONY" #define TR_MENUSTAT "STATISTIKA" #define TR_MENUDEBUG "DIAG" +#define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" #define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" #define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" -#define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" #define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" #define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" #define TR_MONITOR_OUTPUT_DESC "Outputs" @@ -910,6 +910,8 @@ #define TR_ALARMSWARN "ALARMU" #define TR_SWITCHWARN "POZICE" #define TR_FAILSAFEWARN "FAILSAFE" +#define TR_SDCARDVERSIONWARN "SD Card Check" +#define TR_WRONG_SDCARDVERSION "Wrong SDCARD file version" #define TR_NO_FAILSAFE "Failsafe není nastaveno" #define TR_KEYSTUCK "Zaseklá klávesa" #define TR_INVERT_THR "Invertovat plyn?" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 7a88eed15..2f074108b 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -111,7 +111,7 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" //LP45 =Low Power 4 und 5 Kanal #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM2\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Custom" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM2\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Custom" #define LEN_SUBTYPE_FLYSKY "\004" #define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912" @@ -140,7 +140,7 @@ #define TR_SUBTYPE_KN "WLtoys""FeiLun" #define LEN_SUBTYPE_MT99 "\004" -#define TR_SUBTYPE_MT99 "MT99""H7\0 ""YZ\0 ""LS\0 " +#define TR_SUBTYPE_MT99 "MT99""H7\0 ""YZ\0 ""LS\0 " #define LEN_SUBTYPE_MJXQ "\005" #define TR_SUBTYPE_MJXQ "WLH08""X600\0""X800\0""H26D" @@ -929,6 +929,8 @@ #define TR_ALARMSWARN "ALARM" #define TR_SWITCHWARN "SCHALTER" #define TR_FAILSAFEWARN "FAILSAFE" +#define TR_SDCARDVERSIONWARN "SD Card Check" +#define TR_WRONG_SDCARDVERSION "Wrong SDCARD file version" #define TR_NO_FAILSAFE TR("Failsafe not set", "Failsafe nicht programmiert") #define TR_KEYSTUCK "Taste klemmt" //Key stuck=Taste klemmt #define TR_INVERT_THR TR("Gas umkehren?", "Vollgas hinten?") // Th9x 9XR diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index b4182c64f..fd4bca0c9 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -898,6 +898,8 @@ #define TR_ALARMSWARN "ALARMS" #define TR_SWITCHWARN TR("SWITCH", "CONTROL") #define TR_FAILSAFEWARN "FAILSAFE" +#define TR_SDCARDVERSIONWARN "SD Card Check" +#define TR_WRONG_SDCARDVERSION "Wrong SDCARD file version" #define TR_NO_FAILSAFE "Failsafe not set" #define TR_KEYSTUCK "Key stuck" #define TR_INVERT_THR TR("Invert thr?", "Invert throttle?") diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index c741c106f..4e4ce99d3 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -874,6 +874,8 @@ #define TR_ALARMSWARN "ALARMAS" #define TR_SWITCHWARN "INTERPTOR" #define TR_FAILSAFEWARN "FAILSAFE" +#define TR_SDCARDVERSIONWARN "SD Card Check" +#define TR_WRONG_SDCARDVERSION "Wrong SDCARD file version" #define TR_NO_FAILSAFE "Failsafe not set" #define TR_KEYSTUCK "Key stuck" #define TR_INVERT_THR TR("Invertir Acel?", "Invertir Acel.?") diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 1812e2288..0934e5ad8 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -874,6 +874,8 @@ #define TR_ALARMSWARN "ALARMS" #define TR_SWITCHWARN TR("SWITCH","CONTROL") #define TR_FAILSAFEWARN "FAILSAFE" +#define TR_SDCARDVERSIONWARN "SD Card Check" +#define TR_WRONG_SDCARDVERSION "Wrong SDCARD file version" #define TR_NO_FAILSAFE "Failsafe not set" #define TR_KEYSTUCK "Key stuck" #define TR_INVERT_THR TR("Invert Thr?","Invert Throttle?") diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 437c9f668..ee34ba161 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -906,6 +906,8 @@ #define TR_ALARMSWARN "SON" #define TR_SWITCHWARN TR("INTERS","CONTROLES") #define TR_FAILSAFEWARN "FAILSAFE" +#define TR_SDCARDVERSIONWARN "SD Card Check" +#define TR_WRONG_SDCARDVERSION "Wrong SDCARD file version" #define TR_NO_FAILSAFE "Failsafe pas déf." #define TR_KEYSTUCK "Touche bloquée" #define TR_INVERT_THR "Inverser Gaz?" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 91ecf7358..4cfc77ee4 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -909,6 +909,8 @@ #define TR_ALARMSWARN "ALLARMI" #define TR_SWITCHWARN "CONTROLLI" #define TR_FAILSAFEWARN "FAILSAFE" +#define TR_SDCARDVERSIONWARN "SD Card Check" +#define TR_WRONG_SDCARDVERSION "Wrong SDCARD file version" #define TR_NO_FAILSAFE "Failsafe non settato" #define TR_KEYSTUCK "Tasto bloccato" #define TR_INVERT_THR "Inverti Mot?" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index fd680c949..8213566f5 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -923,6 +923,8 @@ #define TR_ALARMSWARN "ALARM" #define TR_SWITCHWARN "SCHAKELAAR" #define TR_FAILSAFEWARN "FAILSAFE" +#define TR_SDCARDVERSIONWARN "SD Card Check" +#define TR_WRONG_SDCARDVERSION "Wrong SDCARD file version" #define TR_NO_FAILSAFE TR("Failsafe niet ing.", "Failsafe niet ingesteld") #define TR_KEYSTUCK "Toets klemt" #define TR_INVERT_THR TR("Gas omdraaien?", "Volgas achter?") diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 1d15027b9..fb0bd456c 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -911,6 +911,8 @@ #define TR_ALARMSWARN "ALARM" #define TR_SWITCHWARN TR("Przełą","Kontrola") #define TR_FAILSAFEWARN "FAILSAFE" +#define TR_SDCARDVERSIONWARN "SD Card Check" +#define TR_WRONG_SDCARDVERSION "Wrong SDCARD file version" #define TR_NO_FAILSAFE "Brak Failsafe" #define TR_KEYSTUCK "Blokada klucza" #define TR_INVERT_THR TR("Odw.Gaz?","Odwróć gaz?") diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 25b0ec12a..cca955a99 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -869,6 +869,8 @@ #define TR_ALARMSWARN "ALARMES" #define TR_SWITCHWARN "CHAVES" #define TR_FAILSAFEWARN "FAILSAFE" +#define TR_SDCARDVERSIONWARN "SD Card Check" +#define TR_WRONG_SDCARDVERSION "Wrong SDCARD file version" #define TR_NO_FAILSAFE "Failsafe not set" #define TR_KEYSTUCK "Key stuck" #define TR_INVERT_THR "Inverte Acel?" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 6c0c129eb..772a58aa8 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -922,6 +922,8 @@ #define TR_ALARMSWARN "ALARM" #define TR_SWITCHWARN "BRYTARE" #define TR_FAILSAFEWARN "FAILSAFE" +#define TR_SDCARDVERSIONWARN "SD Card Check" +#define TR_WRONG_SDCARDVERSION "Wrong SDCARD file version" #define TR_NO_FAILSAFE "Failsafe ej given" #define TR_KEYSTUCK "Knapp-fel" #define TR_INVERT_THR TR("Invert.Gas?", "Invertera Gasen?")