diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index e70fc4773..b163789b7 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -908,16 +908,16 @@ void menuModelSetup(event_t event) else if (old_editMode > 0) { if (isModuleR9M(EXTERNAL_MODULE)) { if (g_model.moduleData[EXTERNAL_MODULE].subType > MODULE_SUBTYPE_R9M_EU) { - POPUP_WARNING(STR_R9M_PROTO_FLEX_WARN1); - SET_WARNING_INFO(STR_R9M_PROTO_WARN2, sizeof(TR_R9M_PROTO_WARN2), 0); + POPUP_WARNING(STR_R9M_PROTO_FLEX_WARN_LINE1); + SET_WARNING_INFO(STR_R9M_PROTO_WARN_LINE2, sizeof(TR_R9M_PROTO_WARN_LINE2) - 1, 0); } else if (g_model.moduleData[EXTERNAL_MODULE].subType == MODULE_SUBTYPE_R9M_EU) { - POPUP_WARNING(STR_R9M_PROTO_EU_WARN1); - SET_WARNING_INFO(STR_R9M_PROTO_WARN2, sizeof(TR_R9M_PROTO_WARN2), 0); + POPUP_WARNING(STR_R9M_PROTO_EU_WARN_LINE1); + SET_WARNING_INFO(STR_R9M_PROTO_WARN_LINE2, sizeof(TR_R9M_PROTO_WARN_LINE2) - 1, 0); } else { - POPUP_WARNING(STR_R9M_PROTO_FCC_WARN1); - SET_WARNING_INFO(STR_R9M_PROTO_WARN2, sizeof(TR_R9M_PROTO_WARN2), 0); + POPUP_WARNING(STR_R9M_PROTO_FCC_WARN_LINE1); + SET_WARNING_INFO(STR_R9M_PROTO_WARN_LINE2, sizeof(TR_R9M_PROTO_WARN_LINE2) - 1, 0); } } } diff --git a/radio/src/gui/212x64/model_setup.cpp b/radio/src/gui/212x64/model_setup.cpp index 2650579a7..c04d064f7 100644 --- a/radio/src/gui/212x64/model_setup.cpp +++ b/radio/src/gui/212x64/model_setup.cpp @@ -898,16 +898,16 @@ void menuModelSetup(event_t event) else if (old_editMode > 0) { if (isModuleR9M(EXTERNAL_MODULE)) { if (g_model.moduleData[EXTERNAL_MODULE].subType > MODULE_SUBTYPE_R9M_EU) { - POPUP_WARNING(STR_R9M_PROTO_FLEX_WARN1); - SET_WARNING_INFO(STR_R9M_PROTO_WARN2, sizeof(TR_R9M_PROTO_WARN2), 0); + POPUP_WARNING(STR_R9M_PROTO_FLEX_WARN_LINE1); + SET_WARNING_INFO(STR_R9M_PROTO_WARN_LINE2, sizeof(TR_R9M_PROTO_WARN_LINE2) - 1, 0); } else if (g_model.moduleData[EXTERNAL_MODULE].subType == MODULE_SUBTYPE_R9M_EU) { - POPUP_WARNING(STR_R9M_PROTO_EU_WARN1); - SET_WARNING_INFO(STR_R9M_PROTO_WARN2, sizeof(TR_R9M_PROTO_WARN2), 0); + POPUP_WARNING(STR_R9M_PROTO_EU_WARN_LINE1); + SET_WARNING_INFO(STR_R9M_PROTO_WARN_LINE2, sizeof(TR_R9M_PROTO_WARN_LINE2) - 1, 0); } else { - POPUP_WARNING(STR_R9M_PROTO_FCC_WARN1); - SET_WARNING_INFO(STR_R9M_PROTO_WARN2, sizeof(TR_R9M_PROTO_WARN2), 0); + POPUP_WARNING(STR_R9M_PROTO_FCC_WARN_LINE1); + SET_WARNING_INFO(STR_R9M_PROTO_WARN_LINE2, sizeof(TR_R9M_PROTO_WARN_LINE2) - 1, 0); } } } diff --git a/radio/src/gui/common/stdlcd/radio_sdmanager.cpp b/radio/src/gui/common/stdlcd/radio_sdmanager.cpp index be9522fcc..4ec9bb196 100644 --- a/radio/src/gui/common/stdlcd/radio_sdmanager.cpp +++ b/radio/src/gui/common/stdlcd/radio_sdmanager.cpp @@ -101,14 +101,29 @@ void onUpdateConfirmation(const char * result) void onUpdateStateChanged() { if (reusableBuffer.sdManager.otaUpdateInformation.step == BIND_INFO_REQUEST) { - POPUP_CONFIRMATION(PXX2receiversModels[reusableBuffer.sdManager.otaUpdateInformation.receiverInformation.modelID], onUpdateConfirmation); - char * tmp = strAppend(reusableBuffer.sdManager.otaReceiverVersion, TR_CURRENT_VERSION); - tmp = strAppendUnsigned(tmp, 1 + reusableBuffer.sdManager.otaUpdateInformation.receiverInformation.swVersion.major); - *tmp++ = '.'; - tmp = strAppendUnsigned(tmp, reusableBuffer.sdManager.otaUpdateInformation.receiverInformation.swVersion.minor); - *tmp++ = '.'; - tmp = strAppendUnsigned(tmp, reusableBuffer.sdManager.otaUpdateInformation.receiverInformation.swVersion.revision); - SET_WARNING_INFO(reusableBuffer.sdManager.otaReceiverVersion, tmp - reusableBuffer.sdManager.otaReceiverVersion, 0); + uint8_t modelId = reusableBuffer.sdManager.otaUpdateInformation.receiverInformation.modelID; + if (modelId > 0 && modelId < DIM(PXX2receiversModels)) { + if (isReceiverOptionAvailable(modelId, RECEIVER_OPTION_OTA)) { + POPUP_CONFIRMATION(PXX2receiversModels[modelId], onUpdateConfirmation); + char *tmp = strAppend(reusableBuffer.sdManager.otaReceiverVersion, TR_CURRENT_VERSION); + tmp = strAppendUnsigned(tmp, 1 + reusableBuffer.sdManager.otaUpdateInformation.receiverInformation.swVersion.major); + *tmp++ = '.'; + tmp = strAppendUnsigned(tmp, reusableBuffer.sdManager.otaUpdateInformation.receiverInformation.swVersion.minor); + *tmp++ = '.'; + tmp = strAppendUnsigned(tmp, reusableBuffer.sdManager.otaUpdateInformation.receiverInformation.swVersion.revision); + SET_WARNING_INFO(reusableBuffer.sdManager.otaReceiverVersion, tmp - reusableBuffer.sdManager.otaReceiverVersion, 0); + } + else { + POPUP_WARNING(STR_OTA_UPDATE_ERROR); + SET_WARNING_INFO(STR_UNSUPPORTED_RX, sizeof(TR_UNSUPPORTED_RX) - 1, 0); + moduleState[EXTERNAL_MODULE].mode = MODULE_MODE_NORMAL; + } + } + else { + POPUP_WARNING(STR_OTA_UPDATE_ERROR); + SET_WARNING_INFO(STR_UNKNOWN_RX, sizeof(TR_UNKNOWN_RX) - 1, 0); + moduleState[EXTERNAL_MODULE].mode = MODULE_MODE_NORMAL; + } } } #endif diff --git a/radio/src/io/frsky_firmware_update.cpp b/radio/src/io/frsky_firmware_update.cpp index 7fcedbd86..6f1d49749 100644 --- a/radio/src/io/frsky_firmware_update.cpp +++ b/radio/src/io/frsky_firmware_update.cpp @@ -635,7 +635,7 @@ void FrskyChipFirmwareUpdate::flashFirmware(const char * filename) const char * result = doFlashFirmware(filename); - AUDIO_PLAY(AU_SPECIAL_SOUND_BEEP1 ); + AUDIO_PLAY(AU_SPECIAL_SOUND_BEEP1); BACKLIGHT_ENABLE(); if (result) { diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 5ec52dca5..5bf6981de 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -1103,9 +1103,7 @@ void opentxResume(); union ReusableBuffer { - // ARM 334 bytes - struct - { + struct { #if defined(EEPROM_RLC) && LCD_W < 212 uint16_t eepromfree; #endif @@ -1146,7 +1144,6 @@ union ReusableBuffer #endif } moduleSetup; - // 103 bytes struct { int16_t midVals[NUM_STICKS+NUM_POTS+NUM_SLIDERS+NUM_MOUSE_ANALOGS]; int16_t loVals[NUM_STICKS+NUM_POTS+NUM_SLIDERS+NUM_MOUSE_ANALOGS]; @@ -1163,7 +1160,6 @@ union ReusableBuffer } calib; #if defined(SDCARD) - // 274 bytes struct { char lines[NUM_BODY_LINES][SD_SCREEN_FILE_LENGTH+1+1]; // the last char is used to store the flags (directory) of the line uint32_t available; @@ -1197,8 +1193,7 @@ union ReusableBuffer uint8_t stickMode; } generalSettings; - struct - { + struct { uint8_t bars[LCD_W]; uint32_t freq; uint32_t span; @@ -1211,8 +1206,7 @@ union ReusableBuffer uint8_t dirty; } spectrumAnalyser; - struct - { + struct { uint32_t freq; int16_t power; int16_t peak; @@ -1220,8 +1214,7 @@ union ReusableBuffer uint8_t dirty; } powerMeter; - struct - { + struct { int8_t preset; } curveEdit; diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index 1d2325078..6b9affe8c 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -23,8 +23,6 @@ #include "bitfield.h" - - #define CROSSFIRE_CHANNELS_COUNT 16 #if defined(MULTIMODULE) @@ -261,6 +259,52 @@ inline bool isModuleOptionAvailable(uint8_t modelId, uint8_t option) return moduleOptions[modelId] & (1 << option); } +enum { + RECEIVER_OPTION_OTA, +}; + +/* Options order: + * - OTA (0x01) + */ +static const uint8_t receiverOptions[] = { +#if defined(SIMU) + 0b11111111, // None = display all options on SIMU +#else + 0b00000000, // None = display all options on SIMU +#endif + 0b11111110, // X8R + 0b11111110, // RX8R + 0b11111110, // RX8R-PRO + 0b11111110, // RX6R + 0b11111110, // RX4R + 0b11111110, // G-RX8 + 0b11111110, // G-RX6 + 0b11111110, // X6R + 0b11111110, // X4R + 0b11111110, // X4R-SB + 0b11111110, // XSR + 0b11111110, // XSR-M + 0b11111110, // RXSR + 0b11111110, // S6R + 0b11111110, // S8R + 0b11111110, // XM + 0b11111110, // XM+ + 0b11111110, // XMR + 0b11111110, // R9 + 0b11111110, // R9-SLIM + 0b11111110, // R9-SLIM+ + 0b11111110, // R9-MINI + 0b11111110, // R9-MM + 0b11111110, // R9-STAB + 0b11111111, // R9-MINI+OTA + 0b11111111, // R9-MM+OTA +}; + +inline bool isReceiverOptionAvailable(uint8_t modelId, uint8_t option) +{ + return receiverOptions[modelId] & (1 << option); +} + inline bool isDefaultModelRegistrationID() { return memcmp(g_model.modelRegistrationID, g_eeGeneral.ownerRegistrationID, PXX2_LEN_REGISTRATION_ID) == 0; diff --git a/radio/src/pulses/pxx2.h b/radio/src/pulses/pxx2.h index 98186d5d3..41d53cce0 100644 --- a/radio/src/pulses/pxx2.h +++ b/radio/src/pulses/pxx2.h @@ -95,6 +95,8 @@ static const char * const PXX2receiversModels[] = { "R9-MINI", "R9-MM", "R9-STAB", + "R9-MINI-OTA", // this one has OTA (different bootloader) + "R9-MM-OTA", // this one has OTA (different bootloader) }; enum PXX2ModuleModelID { diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index e639e4e9b..caf79251e 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -465,10 +465,10 @@ const char STR_CHANNELRANGE[] = TR_CHANNELRANGE; const char STR_ANTENNASELECTION[] = TR_ANTENNASELECTION; const char STR_ANTENNACONFIRM1[] = TR_ANTENNACONFIRM1; const char STR_ANTENNACONFIRM2[] = TR_ANTENNACONFIRM2; -const char STR_R9M_PROTO_FLEX_WARN1[] = TR_R9M_PROTO_FLEX_WARN1; -const char STR_R9M_PROTO_FCC_WARN1[] = TR_R9M_PROTO_FCC_WARN1; -const char STR_R9M_PROTO_EU_WARN1[] = TR_R9M_PROTO_EU_WARN1; -const char STR_R9M_PROTO_WARN2[] = TR_R9M_PROTO_WARN2; +const char STR_R9M_PROTO_FLEX_WARN_LINE1[] = TR_R9M_PROTO_FLEX_WARN_LINE1; +const char STR_R9M_PROTO_FCC_WARN_LINE1[] = TR_R9M_PROTO_FCC_WARN_LINE1; +const char STR_R9M_PROTO_EU_WARN_LINE1[] = TR_R9M_PROTO_EU_WARN_LINE1; +const char STR_R9M_PROTO_WARN_LINE2[] = TR_R9M_PROTO_WARN_LINE2; const char STR_SET[] = TR_SET; const char STR_PREFLIGHT[] = TR_PREFLIGHT; const char STR_CHECKLIST[] = TR_CHECKLIST; @@ -548,6 +548,9 @@ const char STR_FLASH_ERASE[] = TR_FLASH_ERASE; const char STR_FLASH_WRITE[] = TR_FLASH_WRITE; const char STR_OTA_UPDATE[] = TR_OTA_UPDATE; const char STR_MODULE_RESET[] = TR_MODULE_RESET; +const char STR_UNKNOWN_RX[] = TR_UNKNOWN_RX; +const char STR_UNSUPPORTED_RX[] = TR_UNSUPPORTED_RX; +const char STR_OTA_UPDATE_ERROR[] = TR_OTA_UPDATE_ERROR; const char STR_DEVICE_RESET[] = TR_DEVICE_RESET; const char STR_ALTITUDE[] = TR_ALTITUDE; const char STR_SCALE[] = TR_SCALE; diff --git a/radio/src/translations.h b/radio/src/translations.h index e66a70a03..2d07b31e0 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -723,10 +723,10 @@ extern const char STR_CHANNELRANGE[]; extern const char STR_ANTENNASELECTION[]; extern const char STR_ANTENNACONFIRM1[]; extern const char STR_ANTENNACONFIRM2[]; -extern const char STR_R9M_PROTO_FLEX_WARN1[]; -extern const char STR_R9M_PROTO_FCC_WARN1[]; -extern const char STR_R9M_PROTO_EU_WARN1[]; -extern const char STR_R9M_PROTO_WARN2[]; +extern const char STR_R9M_PROTO_FLEX_WARN_LINE1[]; +extern const char STR_R9M_PROTO_FCC_WARN_LINE1[]; +extern const char STR_R9M_PROTO_EU_WARN_LINE1[]; +extern const char STR_R9M_PROTO_WARN_LINE2[]; extern const char STR_SET[]; extern const char STR_PREFLIGHT[]; extern const char STR_CHECKLIST[]; @@ -807,6 +807,9 @@ extern const char STR_FLASH_ERASE[]; extern const char STR_FLASH_WRITE[]; extern const char STR_OTA_UPDATE[]; extern const char STR_MODULE_RESET[]; +extern const char STR_UNKNOWN_RX[]; +extern const char STR_UNSUPPORTED_RX[]; +extern const char STR_OTA_UPDATE_ERROR[]; extern const char STR_DEVICE_RESET[]; extern const char STR_ALTITUDE[]; extern const char STR_SCALE[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 06287bcc3..a7834f583 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -984,10 +984,10 @@ #define TR_ANTENNASELECTION TR(INDENT "Antenna", INDENT "Volba antény") #define TR_ANTENNACONFIRM1 "Opravdu přepnout?" #define TR_ANTENNACONFIRM2 TR("Zkont. anténu", "Ujisti se že je anténa připojena!") -#define TR_R9M_PROTO_FLEX_WARN1 "Potřebuje" -#define TR_R9M_PROTO_FCC_WARN1 "Potřebuje FCC" -#define TR_R9M_PROTO_EU_WARN1 "Potřebuje EU" -#define TR_R9M_PROTO_WARN2 "necertifikovaný R9M firm." +#define TR_R9M_PROTO_FLEX_WARN_LINE1 "Potřebuje" +#define TR_R9M_PROTO_FCC_WARN_LINE1 "Potřebuje FCC" +#define TR_R9M_PROTO_EU_WARN_LINE1 "Potřebuje EU" +#define TR_R9M_PROTO_WARN_LINE2 "necertifikovaný R9M firm." #define TR_LOWALARM INDENT "Nízký Alarm" #define TR_CRITICALALARM INDENT "Kritický Alarm" #define TR_RSSIALARM_WARN TR("RSSI","RSSI TELEMETRIE") @@ -1141,6 +1141,9 @@ #define TR_FLASH_WRITE "Zápis flash..." #define TR_OTA_UPDATE "Aktualizace OTA..." #define TR_MODULE_RESET "Reset modulu..." +#define TR_UNKNOWN_RX "Unknown RX" +#define TR_UNSUPPORTED_RX "Unsupported RX" +#define TR_OTA_UPDATE_ERROR "OTA update error" #define TR_DEVICE_RESET "Reset zařízení..." #define TR_ALTITUDE INDENT "Výška" #define TR_SCALE "Měřítko" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 0f2338f2e..170e41596 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -991,10 +991,10 @@ #define TR_ANTENNASELECTION TR(INDENT "Antenna", INDENT "Antenne auswählen") #define TR_ANTENNACONFIRM1 "Ant. umschalten" #define TR_ANTENNACONFIRM2 TR("Check antenna", "Ist eine externe Antenne installiert?") -#define TR_R9M_PROTO_FLEX_WARN1 "Requires non" -#define TR_R9M_PROTO_FCC_WARN1 "Requires FCC" -#define TR_R9M_PROTO_EU_WARN1 "Requires EU" -#define TR_R9M_PROTO_WARN2 "certified firmware" +#define TR_R9M_PROTO_FLEX_WARN_LINE1 "Requires non" +#define TR_R9M_PROTO_FCC_WARN_LINE1 "Requires FCC" +#define TR_R9M_PROTO_EU_WARN_LINE1 "Requires EU" +#define TR_R9M_PROTO_WARN_LINE2 "certified firmware" #define TR_LOWALARM INDENT "Warnungsschwelle" #define TR_CRITICALALARM INDENT "Kritischer Alarm" #define TR_RSSIALARM_WARN "Telemetry" @@ -1144,6 +1144,9 @@ #define TR_FLASH_WRITE "Flash write..." #define TR_OTA_UPDATE "OTA update..." #define TR_MODULE_RESET "Module reset..." +#define TR_UNKNOWN_RX "Unknown RX" +#define TR_UNSUPPORTED_RX "Unsupported RX" +#define TR_OTA_UPDATE_ERROR "OTA update error" #define TR_DEVICE_RESET "Device reset..." #define TR_ALTITUDE INDENT "Höhenanzeige" #define TR_SCALE "Skalieren" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index e0602bd6c..2e8b2f8a6 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -990,10 +990,10 @@ #define TR_ANTENNASELECTION TR(INDENT "Antenna", TR(INDENT "Antenna", INDENT "Antenna selection")) #define TR_ANTENNACONFIRM1 "Really switch?" #define TR_ANTENNACONFIRM2 TR("Check antenna", "Make sure antenna is installed!") -#define TR_R9M_PROTO_FLEX_WARN1 "Requires FLEX non" -#define TR_R9M_PROTO_FCC_WARN1 "Requires FCC" -#define TR_R9M_PROTO_EU_WARN1 "Requires EU" -#define TR_R9M_PROTO_WARN2 "certified firmware" +#define TR_R9M_PROTO_FLEX_WARN_LINE1 "Requires FLEX non" +#define TR_R9M_PROTO_FCC_WARN_LINE1 "Requires FCC" +#define TR_R9M_PROTO_EU_WARN_LINE1 "Requires EU" +#define TR_R9M_PROTO_WARN_LINE2 "certified firmware" #define TR_LOWALARM INDENT "Low alarm" #define TR_CRITICALALARM INDENT "Critical alarm" #define TR_RSSIALARM_WARN "RSSI" @@ -1142,6 +1142,9 @@ #define TR_FLASH_WRITE "Flash write..." #define TR_OTA_UPDATE "OTA update..." #define TR_MODULE_RESET "Module reset..." +#define TR_UNKNOWN_RX "Unknown RX" +#define TR_UNSUPPORTED_RX "Unsupported RX" +#define TR_OTA_UPDATE_ERROR "OTA update error" #define TR_DEVICE_RESET "Device reset..." #define TR_ALTITUDE INDENT "Altitude" #define TR_SCALE "Scale" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 4bc971393..0f3812097 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -1006,10 +1006,10 @@ #define TR_ANTENNASELECTION TR(INDENT "Antenna", TR(INDENT "Antenna", INDENT "Antenna selection")) #define TR_ANTENNACONFIRM1 "Really switch?" #define TR_ANTENNACONFIRM2 TR("Check antenna", "Make sure antenna is installed!") -#define TR_R9M_PROTO_FLEX_WARN1 "Requires non" -#define TR_R9M_PROTO_FCC_WARN1 "Requires FCC" -#define TR_R9M_PROTO_EU_WARN1 "Requires EU" -#define TR_R9M_PROTO_WARN2 "certified firmware" +#define TR_R9M_PROTO_FLEX_WARN_LINE1 "Requires non" +#define TR_R9M_PROTO_FCC_WARN_LINE1 "Requires FCC" +#define TR_R9M_PROTO_EU_WARN_LINE1 "Requires EU" +#define TR_R9M_PROTO_WARN_LINE2 "certified firmware" #define TR_LOWALARM INDENT "Alarma baja" #define TR_CRITICALALARM INDENT "Alarma Critica" #define TR_RSSIALARM_WARN TR("RSSI","TELEMETRY RSSI") @@ -1159,6 +1159,9 @@ #define TR_FLASH_WRITE "Flash write..." #define TR_OTA_UPDATE "OTA update..." #define TR_MODULE_RESET "Module reset..." +#define TR_UNKNOWN_RX "Unknown RX" +#define TR_UNSUPPORTED_RX "Unsupported RX" +#define TR_OTA_UPDATE_ERROR "OTA update error" #define TR_DEVICE_RESET "Device reset..." #define TR_ALTITUDE INDENT "Altitude" #define TR_SCALE "Scale" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 903e1956e..ed4770796 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -999,10 +999,10 @@ #define TR_ANTENNASELECTION TR(INDENT "Antenna", TR(INDENT "Antenna", INDENT "Antenna selection")) #define TR_ANTENNACONFIRM1 "Really switch?" #define TR_ANTENNACONFIRM2 TR("Check antenna", "Make sure antenna is installed!") -#define TR_R9M_PROTO_FLEX_WARN1 "Requires non" -#define TR_R9M_PROTO_FCC_WARN1 "Requires FCC" -#define TR_R9M_PROTO_EU_WARN1 "Requires EU" -#define TR_R9M_PROTO_WARN2 "certified firmware" +#define TR_R9M_PROTO_FLEX_WARN_LINE1 "Requires non" +#define TR_R9M_PROTO_FCC_WARN_LINE1 "Requires FCC" +#define TR_R9M_PROTO_EU_WARN_LINE1 "Requires EU" +#define TR_R9M_PROTO_WARN_LINE2 "certified firmware" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Critical Alarm" #define TR_RSSIALARM_WARN TR("RSSI","TELEMETRY RSSI") @@ -1152,6 +1152,9 @@ #define TR_FLASH_WRITE "Flash write..." #define TR_OTA_UPDATE "OTA update..." #define TR_MODULE_RESET "Module reset..." +#define TR_UNKNOWN_RX "Unknown RX" +#define TR_UNSUPPORTED_RX "Unsupported RX" +#define TR_OTA_UPDATE_ERROR "OTA update error" #define TR_DEVICE_RESET "Device reset..." #define TR_ALTITUDE INDENT "Korkeus" #define TR_SCALE "Scale" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index cac789c72..32720e0c3 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -1001,10 +1001,10 @@ #define TR_ANTENNASELECTION TR(INDENT "Antenne", INDENT "Choix antenne") #define TR_ANTENNACONFIRM1 "Vraiment changer?" #define TR_ANTENNACONFIRM2 TR("Vérif antenne", "Installer l'antenne d'abord!") -#define TR_R9M_PROTO_FLEX_WARN1 "Nécessite firm." -#define TR_R9M_PROTO_FCC_WARN1 "Requires FCC" -#define TR_R9M_PROTO_EU_WARN1 "Requires EU" -#define TR_R9M_PROTO_WARN2 "R9M non certifié" +#define TR_R9M_PROTO_FLEX_WARN_LINE1 "Nécessite firm." +#define TR_R9M_PROTO_FCC_WARN_LINE1 "Requires FCC" +#define TR_R9M_PROTO_EU_WARN_LINE1 "Requires EU" +#define TR_R9M_PROTO_WARN_LINE2 "R9M non certifié" #define TR_LOWALARM INDENT "Alarme basse" #define TR_CRITICALALARM INDENT "Alarme critique" #define TR_RSSIALARM_WARN TR("RSSI", "TELEMETRIE") @@ -1161,6 +1161,9 @@ #define TR_FLASH_WRITE "Flash write..." #define TR_OTA_UPDATE "OTA update..." #define TR_MODULE_RESET "Module reset..." +#define TR_UNKNOWN_RX "Unknown RX" +#define TR_UNSUPPORTED_RX "Unsupported RX" +#define TR_OTA_UPDATE_ERROR "OTA update error" #define TR_DEVICE_RESET "Device reset..." #define TR_ALTITUDE INDENT "Altitude" #define TR_SCALE "Echelle" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 2db0d6d15..3093eceec 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -1000,10 +1000,10 @@ #define TR_ANTENNASELECTION TR(INDENT "Antenna", INDENT "Antenna selection") #define TR_ANTENNACONFIRM1 "Really switch?" #define TR_ANTENNACONFIRM2 TR("Check antenna", "Make sure antenna is installed!") -#define TR_R9M_PROTO_FLEX_WARN1 "Requires non" -#define TR_R9M_PROTO_FCC_WARN1 "Requires FCC" -#define TR_R9M_PROTO_EU_WARN1 "Requires EU" -#define TR_R9M_PROTO_WARN2 "certified firmware" +#define TR_R9M_PROTO_FLEX_WARN_LINE1 "Requires non" +#define TR_R9M_PROTO_FCC_WARN_LINE1 "Requires FCC" +#define TR_R9M_PROTO_EU_WARN_LINE1 "Requires EU" +#define TR_R9M_PROTO_WARN_LINE2 "certified firmware" #define TR_LOWALARM INDENT "Allarme Basso" #define TR_CRITICALALARM INDENT "Allarme Critico" #define TR_RSSIALARM_WARN TR("RSSI","TELEMETRY RSSI") @@ -1153,6 +1153,9 @@ #define TR_FLASH_WRITE "Flash write..." #define TR_OTA_UPDATE "OTA update..." #define TR_MODULE_RESET "Module reset..." +#define TR_UNKNOWN_RX "Unknown RX" +#define TR_UNSUPPORTED_RX "Unsupported RX" +#define TR_OTA_UPDATE_ERROR "OTA update error" #define TR_DEVICE_RESET "Device reset..." #define TR_ALTITUDE INDENT "Altitudine" #define TR_SCALE "Scala" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 67c9f529c..a83e8aeef 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -989,10 +989,10 @@ TR_GYR_VSRCRAW #define TR_ANTENNASELECTION TR(INDENT "Antenna", INDENT "Antenna selection") #define TR_ANTENNACONFIRM1 "Antennes wisselen?" #define TR_ANTENNACONFIRM2 TR("Check antenna", "Is er zeker een antenne geplaatst!") -#define TR_R9M_PROTO_FLEX_WARN1 "Requires non" -#define TR_R9M_PROTO_FCC_WARN1 "Requires FCC" -#define TR_R9M_PROTO_EU_WARN1 "Requires EU" -#define TR_R9M_PROTO_WARN2 "certified firmware" +#define TR_R9M_PROTO_FLEX_WARN_LINE1 "Requires non" +#define TR_R9M_PROTO_FCC_WARN_LINE1 "Requires FCC" +#define TR_R9M_PROTO_EU_WARN_LINE1 "Requires EU" +#define TR_R9M_PROTO_WARN_LINE2 "certified firmware" #define TR_LOWALARM INDENT "Waarschuwing" #define TR_CRITICALALARM INDENT "Kritiek Alarm" #define TR_RSSIALARM_WARN TR("RSSI","TELEMETRY RSSI") @@ -1147,6 +1147,9 @@ TR_GYR_VSRCRAW #define TR_FLASH_WRITE "Flash write..." #define TR_OTA_UPDATE "OTA update..." #define TR_MODULE_RESET "Module reset..." +#define TR_UNKNOWN_RX "Unknown RX" +#define TR_UNSUPPORTED_RX "Unsupported RX" +#define TR_OTA_UPDATE_ERROR "OTA update error" #define TR_DEVICE_RESET "Device reset..." #define TR_ALTITUDE INDENT "Hoogte" #define TR_SCALE "Schaal" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 2753c4ed3..65f183bff 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -1000,10 +1000,10 @@ #define TR_ANTENNASELECTION TR(INDENT "Antenna", INDENT "Antenna selection") #define TR_ANTENNACONFIRM1 "Really switch?" #define TR_ANTENNACONFIRM2 TR("Check antenna", "Make sure antenna is installed!") -#define TR_R9M_PROTO_FLEX_WARN1 "Requires non" -#define TR_R9M_PROTO_FCC_WARN1 "Requires FCC" -#define TR_R9M_PROTO_EU_WARN1 "Requires EU" -#define TR_R9M_PROTO_WARN2 "certified firmware" +#define TR_R9M_PROTO_FLEX_WARN_LINE1 "Requires non" +#define TR_R9M_PROTO_FCC_WARN_LINE1 "Requires FCC" +#define TR_R9M_PROTO_EU_WARN_LINE1 "Requires EU" +#define TR_R9M_PROTO_WARN_LINE2 "certified firmware" #define TR_LOWALARM INDENT "Alarm niski" #define TR_CRITICALALARM INDENT "Alarm krytyczny" #define TR_RSSIALARM_WARN TR("RSSI","TELEMETRY RSSI") @@ -1153,6 +1153,9 @@ #define TR_FLASH_WRITE "Flash write..." #define TR_OTA_UPDATE "OTA update..." #define TR_MODULE_RESET "Module reset..." +#define TR_UNKNOWN_RX "Unknown RX" +#define TR_UNSUPPORTED_RX "Unsupported RX" +#define TR_OTA_UPDATE_ERROR "OTA update error" #define TR_DEVICE_RESET "Device reset..." #define TR_ALTITUDE INDENT "Wysokość" #define TR_SCALE "Skala" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index f175ea14b..0c9064ce3 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -990,10 +990,10 @@ #define TR_ANTENNASELECTION TR(INDENT "Antenna", INDENT "Antenna selection") #define TR_ANTENNACONFIRM1 "Really switch?" #define TR_ANTENNACONFIRM2 TR("Check antenna", "Make sure antenna is installed!") -#define TR_R9M_PROTO_FLEX_WARN1 "Requires non" -#define TR_R9M_PROTO_FCC_WARN1 "Requires FCC" -#define TR_R9M_PROTO_EU_WARN1 "Requires EU" -#define TR_R9M_PROTO_WARN2 "certified firmware" +#define TR_R9M_PROTO_FLEX_WARN_LINE1 "Requires non" +#define TR_R9M_PROTO_FCC_WARN_LINE1 "Requires FCC" +#define TR_R9M_PROTO_EU_WARN_LINE1 "Requires EU" +#define TR_R9M_PROTO_WARN_LINE2 "certified firmware" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Critical Alarm" #define TR_RSSIALARM_WARN TR("RSSI","TELEMETRY RSSI") @@ -1143,6 +1143,9 @@ #define TR_FLASH_WRITE "Flash write..." #define TR_OTA_UPDATE "OTA update..." #define TR_MODULE_RESET "Module reset..." +#define TR_UNKNOWN_RX "Unknown RX" +#define TR_UNSUPPORTED_RX "Unsupported RX" +#define TR_OTA_UPDATE_ERROR "OTA update error" #define TR_DEVICE_RESET "Device reset..." #define TR_ALTITUDE INDENT "Altitude" #define TR_SCALE "Scale" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 6f0a51c61..4d6096338 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -1000,10 +1000,10 @@ #define TR_ANTENNASELECTION TR(INDENT "Antenna", INDENT "Antenna selection") #define TR_ANTENNACONFIRM1 "Really switch?" #define TR_ANTENNACONFIRM2 TR("Check antenna", "Make sure antenna is installed!") -#define TR_R9M_PROTO_FLEX_WARN1 "Requires non" -#define TR_R9M_PROTO_FCC_WARN1 "Requires FCC" -#define TR_R9M_PROTO_EU_WARN1 "Requires EU" -#define TR_R9M_PROTO_WARN2 "certified firmware" +#define TR_R9M_PROTO_FLEX_WARN_LINE1 "Requires non" +#define TR_R9M_PROTO_FCC_WARN_LINE1 "Requires FCC" +#define TR_R9M_PROTO_EU_WARN_LINE1 "Requires EU" +#define TR_R9M_PROTO_WARN_LINE2 "certified firmware" #define TR_LOWALARM INDENT "Låg-alarm" #define TR_CRITICALALARM INDENT "Kritiskt alarm" #define TR_RSSIALARM_WARN TR("RSSI","TELEMETRY RSSI") @@ -1153,6 +1153,9 @@ #define TR_FLASH_WRITE "Flash write..." #define TR_OTA_UPDATE "OTA update..." #define TR_MODULE_RESET "Module reset..." +#define TR_UNKNOWN_RX "Unknown RX" +#define TR_UNSUPPORTED_RX "Unsupported RX" +#define TR_OTA_UPDATE_ERROR "OTA update error" #define TR_DEVICE_RESET "Device reset..." #define TR_ALTITUDE INDENT "Höjd" #define TR_SCALE "Skala"