From 2ad0db2d8007a31437cc63609043a770e8f5240b Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Tue, 24 Apr 2018 08:13:09 +0200 Subject: [PATCH] Set all custom failsafe channels at once (#5834) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * added setCustomFailsafe() * failsafe setup: set all custom channels with ENTER long press implements #5820 * added “outputs -> failsafe” menu item on horus * change “Trims >> Subtrims” to “Trims => Subtrims” * use translated string for “Outputs => Failsafe” * fixed entered TR_TRIMS2OFFSETS and TR_OUTPUTS2FAILSAFE When using ZCHARs in Horus texts, there are some artefacts when highlighted. * added “outputs -> failsafe” menu item on taranis 212x64 LCD * added “outputs -> failsafe” menu item on taranis 128x64 LCD * fixed indentation --- radio/src/functions.cpp | 12 +---- radio/src/gui/128x64/model_setup.cpp | 69 ++++++++++++++++--------- radio/src/gui/212x64/model_setup.cpp | 72 ++++++++++++++++++--------- radio/src/gui/480x272/model_setup.cpp | 64 +++++++++++++++--------- radio/src/pulses/pulses_arm.cpp | 14 ++++++ radio/src/pulses/pulses_arm.h | 4 ++ radio/src/translations.cpp | 1 + radio/src/translations.h | 1 + radio/src/translations/cz.h.txt | 7 ++- radio/src/translations/de.h.txt | 5 ++ radio/src/translations/en.h.txt | 7 ++- radio/src/translations/es.h.txt | 11 +++- radio/src/translations/fi.h.txt | 11 +++- radio/src/translations/fr.h.txt | 11 +++- radio/src/translations/it.h.txt | 7 ++- radio/src/translations/nl.h.txt | 5 ++ radio/src/translations/pl.h.txt | 7 ++- radio/src/translations/pt.h.txt | 11 +++- radio/src/translations/se.h.txt | 5 ++ 19 files changed, 235 insertions(+), 89 deletions(-) diff --git a/radio/src/functions.cpp b/radio/src/functions.cpp index 502c2e1f4..782aa42d9 100644 --- a/radio/src/functions.cpp +++ b/radio/src/functions.cpp @@ -379,17 +379,7 @@ void evalFunctions() case FUNC_SET_FAILSAFE: { - unsigned int moduleIndex = CFN_PARAM(cfn); - if (moduleIndex < NUM_MODULES) { - for (int ch=0; ch= NUM_CHANNELS(moduleIndex) + g_model.moduleData[moduleIndex].channelsStart) { - g_model.moduleData[moduleIndex].failsafeChannels[ch] = 0; - } - else if (g_model.moduleData[moduleIndex].failsafeChannels[ch] < FAILSAFE_CHANNEL_HOLD) { - g_model.moduleData[moduleIndex].failsafeChannels[ch] = channelOutputs[ch]; - } - } - } + setCustomFailsafe(CFN_PARAM(cfn)); } #if defined(DANGEROUS_MODULE_FUNCTIONS) diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index 012b61e01..10ba8ce9f 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -1200,9 +1200,18 @@ void menuModelSetup(event_t event) } } else if (menuHorizontalPosition == 1) { s_editMode = 0; - if (moduleData.failsafeMode == FAILSAFE_CUSTOM && event == EVT_KEY_FIRST(KEY_ENTER)) { - g_moduleIdx = moduleIdx; - pushMenu(menuModelFailsafe); + if (moduleData.failsafeMode == FAILSAFE_CUSTOM) { + if (event == EVT_KEY_LONG(KEY_ENTER)) { + killEvents(event); + setCustomFailsafe(moduleIdx); + storageDirty(EE_MODEL); + AUDIO_WARNING1(); + SEND_FAILSAFE_NOW(moduleIdx); + } + else if (event == EVT_KEY_BREAK(KEY_ENTER)) { + g_moduleIdx = moduleIdx; + pushMenu(menuModelFailsafe); + } } } else { lcdDrawSolidFilledRect(MODEL_SETUP_2ND_COLUMN, y, LCD_W - MODEL_SETUP_2ND_COLUMN, 8); @@ -1476,7 +1485,6 @@ void menuModelSetup(event_t event) #if defined(CPUARM) void menuModelFailsafe(event_t event) { - uint8_t ch = 8 * (menuVerticalPosition / 8); const uint8_t channelStart = g_model.moduleData[g_moduleIdx].channelsStart; const int lim = (g_model.extendedLimits ? (512 * LIMIT_EXT_PERCENT / 100) : 512) * 2; uint8_t wbar = LCD_W - FW * 4 - FWNUM * 4; @@ -1487,37 +1495,44 @@ void menuModelFailsafe(event_t event) if (event == EVT_KEY_LONG(KEY_ENTER)) { killEvents(event); event = 0; - if (s_editMode) { - g_model.moduleData[g_moduleIdx].failsafeChannels[menuVerticalPosition] = channelOutputs[menuVerticalPosition+channelStart]; - storageDirty(EE_MODEL); - AUDIO_WARNING1(); - s_editMode = 0; - SEND_FAILSAFE_NOW(g_moduleIdx); + + if (menuVerticalPosition < NUM_CHANNELS(g_moduleIdx)) { + if (s_editMode) { + g_model.moduleData[g_moduleIdx].failsafeChannels[menuVerticalPosition] = channelOutputs[menuVerticalPosition+channelStart]; + s_editMode = 0; + } + else { + int16_t & failsafe = g_model.moduleData[g_moduleIdx].failsafeChannels[menuVerticalPosition]; + if (failsafe < FAILSAFE_CHANNEL_HOLD) + failsafe = FAILSAFE_CHANNEL_HOLD; + else if (failsafe == FAILSAFE_CHANNEL_HOLD) + failsafe = FAILSAFE_CHANNEL_NOPULSE; + else + failsafe = 0; + } } else { - int16_t & failsafe = g_model.moduleData[g_moduleIdx].failsafeChannels[menuVerticalPosition]; - if (failsafe < FAILSAFE_CHANNEL_HOLD) - failsafe = FAILSAFE_CHANNEL_HOLD; - else if (failsafe == FAILSAFE_CHANNEL_HOLD) - failsafe = FAILSAFE_CHANNEL_NOPULSE; - else - failsafe = 0; - storageDirty(EE_MODEL); - AUDIO_WARNING1(); - SEND_FAILSAFE_NOW(g_moduleIdx); + // "Outputs => Failsafe" menu item + setCustomFailsafe(g_moduleIdx); } + + storageDirty(EE_MODEL); + AUDIO_WARNING1(); + SEND_FAILSAFE_NOW(g_moduleIdx); } - SIMPLE_SUBMENU_NOTITLE(NUM_CHANNELS(g_moduleIdx)); + SIMPLE_SUBMENU_NOTITLE(NUM_CHANNELS(g_moduleIdx) + 1); lcdDrawTextAlignedCenter(0, FAILSAFESET); lcdInvertLine(0); const coord_t x = 1; + coord_t y = FH + 1; + uint8_t line = (menuVerticalPosition >= NUM_CHANNELS(g_moduleIdx) ? 2 : 0); + uint8_t ch = (menuVerticalPosition >= 8 ? 8 : 0) + line; // Channels - for (uint8_t line=0; line<8; line++) { - const coord_t y = 9+line*7; + for (; line < 8; line++) { const int32_t channelValue = channelOutputs[ch+channelStart]; int32_t failsafeValue = g_model.moduleData[g_moduleIdx].failsafeChannels[ch]; @@ -1571,9 +1586,15 @@ void menuModelFailsafe(event_t event) lcdDrawSolidHorizontalLine(xFailsafe, y+3, lenFailsafe); lcdDrawSolidHorizontalLine(xFailsafe, y+4, lenFailsafe); + y += FH - 1; + if (++ch >= NUM_CHANNELS(g_moduleIdx)) break; - } + + if (menuVerticalPosition >= NUM_CHANNELS(g_moduleIdx)) { + // Outputs => Failsafe + lcdDrawText(CENTER_OFS, LCD_H - (FH + 1), STR_OUTPUTS2FAILSAFE, INVERS); + } } #endif diff --git a/radio/src/gui/212x64/model_setup.cpp b/radio/src/gui/212x64/model_setup.cpp index 55637f6d4..470018907 100644 --- a/radio/src/gui/212x64/model_setup.cpp +++ b/radio/src/gui/212x64/model_setup.cpp @@ -1079,9 +1079,18 @@ void menuModelSetup(event_t event) } else if (menuHorizontalPosition == 1) { s_editMode = 0; - if (moduleData.failsafeMode==FAILSAFE_CUSTOM && event==EVT_KEY_FIRST(KEY_ENTER)) { - g_moduleIdx = moduleIdx; - pushMenu(menuModelFailsafe); + if (moduleData.failsafeMode == FAILSAFE_CUSTOM) { + if (event == EVT_KEY_LONG(KEY_ENTER)) { + killEvents(event); + setCustomFailsafe(moduleIdx); + storageDirty(EE_MODEL); + AUDIO_WARNING1(); + SEND_FAILSAFE_NOW(moduleIdx); + } + else if (event == EVT_KEY_BREAK(KEY_ENTER)) { + g_moduleIdx = moduleIdx; + pushMenu(menuModelFailsafe); + } } } else { @@ -1219,7 +1228,6 @@ void menuModelFailsafe(event_t event) const coord_t barH = (LCD_H - FH) / 8 - 1; const int lim = (g_model.extendedLimits ? (512 * LIMIT_EXT_PERCENT / 100) : 512) * 2; const uint8_t channelStart = g_model.moduleData[g_moduleIdx].channelsStart; - uint8_t ch = 0; uint8_t cols = 1; uint8_t colW = LCD_W; @@ -1231,35 +1239,45 @@ void menuModelFailsafe(event_t event) if (event == EVT_KEY_LONG(KEY_ENTER)) { killEvents(event); event = 0; - if (s_editMode) { - g_model.moduleData[g_moduleIdx].failsafeChannels[menuVerticalPosition] = channelOutputs[menuVerticalPosition+channelStart]; - storageDirty(EE_MODEL); - AUDIO_WARNING1(); - s_editMode = 0; - SEND_FAILSAFE_NOW(g_moduleIdx); + + if (menuVerticalPosition < NUM_CHANNELS(g_moduleIdx)) { + if (s_editMode) { + g_model.moduleData[g_moduleIdx].failsafeChannels[menuVerticalPosition] = channelOutputs[menuVerticalPosition+channelStart]; + s_editMode = 0; + } + else { + int16_t & failsafe = g_model.moduleData[g_moduleIdx].failsafeChannels[menuVerticalPosition]; + if (failsafe < FAILSAFE_CHANNEL_HOLD) + failsafe = FAILSAFE_CHANNEL_HOLD; + else if (failsafe == FAILSAFE_CHANNEL_HOLD) + failsafe = FAILSAFE_CHANNEL_NOPULSE; + else + failsafe = 0; + } } else { - int16_t & failsafe = g_model.moduleData[g_moduleIdx].failsafeChannels[menuVerticalPosition]; - if (failsafe < FAILSAFE_CHANNEL_HOLD) - failsafe = FAILSAFE_CHANNEL_HOLD; - else if (failsafe == FAILSAFE_CHANNEL_HOLD) - failsafe = FAILSAFE_CHANNEL_NOPULSE; - else - failsafe = 0; - storageDirty(EE_MODEL); - AUDIO_WARNING1(); - SEND_FAILSAFE_NOW(g_moduleIdx); + // "Outputs => Failsafe" menu item + setCustomFailsafe(g_moduleIdx); } + + storageDirty(EE_MODEL); + AUDIO_WARNING1(); + SEND_FAILSAFE_NOW(g_moduleIdx); } - SIMPLE_SUBMENU_NOTITLE(NUM_CHANNELS(g_moduleIdx)); + SIMPLE_SUBMENU_NOTITLE(NUM_CHANNELS(g_moduleIdx)+1); SET_SCROLLBAR_X(0); if (NUM_CHANNELS(g_moduleIdx) > 8) { cols = 2; colW = LCD_W / cols - 1; // Column separator - lcdDrawSolidVerticalLine(colW, FH, LCD_H - FH); + if (menuVerticalPosition >= NUM_CHANNELS(g_moduleIdx)) { + lcdDrawSolidVerticalLine(colW, FH, LCD_H - (FH*2 + FH/2 + 2)); + } + else { + lcdDrawSolidVerticalLine(colW, FH, LCD_H - FH); + } } lcdDrawTextAlignedCenter(0, FAILSAFESET); @@ -1269,7 +1287,10 @@ void menuModelFailsafe(event_t event) for (uint8_t col = 0; col < cols; col++) { coord_t y = FH + 1; - for (uint8_t line = 0; line < 8; line++) { + uint8_t line = (menuVerticalPosition >= NUM_CHANNELS(g_moduleIdx) ? 2 : 0); + uint8_t ch = line + col*8; + + for (; line < 8; line++) { const int32_t channelValue = channelOutputs[ch+channelStart]; int32_t failsafeValue = g_model.moduleData[g_moduleIdx].failsafeChannels[8*col+line]; uint8_t lenLabel = ZLEN(g_model.limitData[ch+channelStart].name); @@ -1347,4 +1368,9 @@ void menuModelFailsafe(event_t event) x += colW + 2; } // columns + + if (menuVerticalPosition >= NUM_CHANNELS(g_moduleIdx)) { + // Outputs => Failsafe + lcdDrawText(CENTER_OFS, LCD_H - (FH + 1), STR_OUTPUTS2FAILSAFE, INVERS); + } } diff --git a/radio/src/gui/480x272/model_setup.cpp b/radio/src/gui/480x272/model_setup.cpp index 22f539085..cb61d87c4 100644 --- a/radio/src/gui/480x272/model_setup.cpp +++ b/radio/src/gui/480x272/model_setup.cpp @@ -999,9 +999,18 @@ bool menuModelSetup(event_t event) } else if (menuHorizontalPosition==1) { s_editMode = 0; - if (moduleData.failsafeMode==FAILSAFE_CUSTOM && event==EVT_KEY_FIRST(KEY_ENTER)) { - g_moduleIdx = moduleIdx; - pushMenu(menuModelFailsafe); + if (moduleData.failsafeMode == FAILSAFE_CUSTOM) { + if (event == EVT_KEY_LONG(KEY_ENTER)) { + killEvents(event); + setCustomFailsafe(moduleIdx); + storageDirty(EE_MODEL); + AUDIO_WARNING1(); + SEND_FAILSAFE_NOW(moduleIdx); + } + else if (event == EVT_KEY_BREAK(KEY_ENTER)) { + g_moduleIdx = moduleIdx; + pushMenu(menuModelFailsafe); + } } } else { @@ -1144,34 +1153,39 @@ bool menuModelFailsafe(event_t event) if (event == EVT_KEY_LONG(KEY_ENTER)) { killEvents(event); event = 0; - if (s_editMode) { - g_model.moduleData[g_moduleIdx].failsafeChannels[menuVerticalPosition] = channelOutputs[menuVerticalPosition+channelStart]; - storageDirty(EE_MODEL); - AUDIO_WARNING1(); - s_editMode = 0; - SEND_FAILSAFE_NOW(g_moduleIdx); + + if (menuVerticalPosition < NUM_CHANNELS(g_moduleIdx)) { + if (s_editMode) { + g_model.moduleData[g_moduleIdx].failsafeChannels[menuVerticalPosition] = channelOutputs[menuVerticalPosition+channelStart]; + s_editMode = 0; + } + else { + int16_t & failsafe = g_model.moduleData[g_moduleIdx].failsafeChannels[menuVerticalPosition]; + if (failsafe < FAILSAFE_CHANNEL_HOLD) + failsafe = FAILSAFE_CHANNEL_HOLD; + else if (failsafe == FAILSAFE_CHANNEL_HOLD) + failsafe = FAILSAFE_CHANNEL_NOPULSE; + else + failsafe = 0; + } } else { - int16_t & failsafe = g_model.moduleData[g_moduleIdx].failsafeChannels[menuVerticalPosition]; - if (failsafe < FAILSAFE_CHANNEL_HOLD) - failsafe = FAILSAFE_CHANNEL_HOLD; - else if (failsafe == FAILSAFE_CHANNEL_HOLD) - failsafe = FAILSAFE_CHANNEL_NOPULSE; - else - failsafe = 0; - storageDirty(EE_MODEL); - AUDIO_WARNING1(); - SEND_FAILSAFE_NOW(g_moduleIdx); + // "Outputs => Failsafe" menu item + setCustomFailsafe(g_moduleIdx); } + + storageDirty(EE_MODEL); + AUDIO_WARNING1(); + SEND_FAILSAFE_NOW(g_moduleIdx); } - SIMPLE_SUBMENU_WITH_OPTIONS("FAILSAFE", ICON_STATS_ANALOGS, NUM_CHANNELS(g_moduleIdx), OPTION_MENU_NO_SCROLLBAR); + SIMPLE_SUBMENU_WITH_OPTIONS("FAILSAFE", ICON_STATS_ANALOGS, NUM_CHANNELS(g_moduleIdx)+1, OPTION_MENU_NO_SCROLLBAR); drawStringWithIndex(50, 3+FH, "Module", g_moduleIdx+1, MENU_TITLE_COLOR); for (uint8_t col=0; col < cols; col++) { for (uint8_t line=0; line < 8; line++) { coord_t x = col*(LCD_W/2); - const coord_t y = MENU_CONTENT_TOP - FH + line*(FH+4); + const coord_t y = MENU_CONTENT_TOP - FH + line*(FH+2); const int32_t channelValue = channelOutputs[ch+channelStart]; int32_t failsafeValue = g_model.moduleData[g_moduleIdx].failsafeChannels[8*col+line]; @@ -1230,9 +1244,13 @@ bool menuModelFailsafe(event_t event) lcdDrawSolidFilledRect(xChannel, y+4, lenChannel, 5, TEXT_COLOR); lcdDrawSolidFilledRect(xFailsafe, y+9, lenFailsafe, 5, ALARM_COLOR); - if (++ch >= NUM_CHANNELS(g_moduleIdx)) - break; + if (++ch >= NUM_CHANNELS(g_moduleIdx)) { + // draw that menu at the bottom center + flags = CENTERED | (menuVerticalPosition == ch ? INVERS : 0); + lcdDrawSizedText(LCD_W/2, MENU_CONTENT_TOP - FH + 8*(FH+2), STR_OUTPUTS2FAILSAFE, 20, flags); + break; + } } } diff --git a/radio/src/pulses/pulses_arm.cpp b/radio/src/pulses/pulses_arm.cpp index f14e707e4..6f8d66027 100644 --- a/radio/src/pulses/pulses_arm.cpp +++ b/radio/src/pulses/pulses_arm.cpp @@ -264,3 +264,17 @@ void setupPulses(uint8_t port) } } } + +void setCustomFailsafe(uint8_t moduleIndex) +{ + if (moduleIndex < NUM_MODULES) { + for (int ch=0; ch= NUM_CHANNELS(moduleIndex) + g_model.moduleData[moduleIndex].channelsStart) { + g_model.moduleData[moduleIndex].failsafeChannels[ch] = 0; + } + else if (g_model.moduleData[moduleIndex].failsafeChannels[ch] < FAILSAFE_CHANNEL_HOLD) { + g_model.moduleData[moduleIndex].failsafeChannels[ch] = channelOutputs[ch]; + } + } + } +} diff --git a/radio/src/pulses/pulses_arm.h b/radio/src/pulses/pulses_arm.h index 73e7587d5..9f56d4d26 100644 --- a/radio/src/pulses/pulses_arm.h +++ b/radio/src/pulses/pulses_arm.h @@ -181,6 +181,10 @@ inline void SEND_FAILSAFE_1S() } } +// Assign failsafe values using the current channel outputs +// for channels not set previously to HOLD or NOPULSE +void setCustomFailsafe(uint8_t moduleIndex); + #define LEN_R9M_MODES "\007" #define TR_R9M_MODES "FCC\0 ""LBT(EU)" #define LEN_R9M_FCC_POWER_VALUES "\006" diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index daacfe504..e3fecc860 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -315,6 +315,7 @@ const pm_char STR_THROTTLENOTIDLE[] PROGMEM = TR_THROTTLENOTIDLE; const pm_char STR_ALARMSDISABLED[] PROGMEM = TR_ALARMSDISABLED; const pm_char STR_PRESSANYKEY[] PROGMEM = TR_PRESSANYKEY; const pm_char STR_TRIMS2OFFSETS[] PROGMEM = TR_TRIMS2OFFSETS; +const pm_char STR_OUTPUTS2FAILSAFE[] PROGMEM = TR_OUTPUTS2FAILSAFE; const pm_char STR_MENURADIOSETUP[] PROGMEM = TR_MENURADIOSETUP; #if defined(EEPROM) diff --git a/radio/src/translations.h b/radio/src/translations.h index bc7d2bb58..8521561ae 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -573,6 +573,7 @@ extern const pm_char STR_BAD_RADIO_DATA[]; extern const pm_char STR_STORAGE_FORMAT[]; extern const pm_char STR_EEPROMOVERFLOW[]; extern const pm_char STR_TRIMS2OFFSETS[]; +extern const pm_char STR_OUTPUTS2FAILSAFE[]; extern const pm_char STR_MENURADIOSETUP[]; extern const pm_char STR_MENUDATEANDTIME[]; extern const pm_char STR_MENUTRAINER[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index b4e6da0ee..07ddf0efb 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -806,10 +806,15 @@ #define TR_MENU_RADIO_ANALOGS "ANALOGY" #define TR_MENUCALIBRATION "KALIBRACE" #if defined(COLORLCD) -#define TR_TRIMS2OFFSETS "\006Trimy => Subtrimy" +#define TR_TRIMS2OFFSETS "Trimy => Subtrimy" #else #define TR_TRIMS2OFFSETS "\006Trimy => Subtrimy" #endif +#if defined(COLORLCD) +#define TR_OUTPUTS2FAILSAFE "Outputs => Failsafe" +#else +#define TR_OUTPUTS2FAILSAFE "\006Outputs => Failsafe" +#endif #define TR_MENUMODELSEL "MODEL" #define TR_MENUSETUP "NASTAVENÍ" #define TR_MENUFLIGHTMODE "LETOVÝ REŽIM" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 75840b016..e5fb7eab4 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -825,6 +825,11 @@ #else #define TR_TRIMS2OFFSETS "\006Trims => Subtrims" #endif +#if defined(COLORLCD) +#define TR_OUTPUTS2FAILSAFE "Outputs => Failsafe" +#else +#define TR_OUTPUTS2FAILSAFE "\006Outputs => Failsafe" +#endif #define TR_MENUMODELSEL TR("MODELLE", "MODELL WÄHLEN") #define TR_MENUSETUP TR("MODELL-EINSTELLUNG", "MODELL-EINSTELLUNGEN") #define TR_MENUFLIGHTMODE "FLUGPHASE" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index e1801269d..78bcb7f63 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -815,10 +815,15 @@ #define TR_MENU_RADIO_ANALOGS TR("ANALOGS", "ANALOGS TEST") #define TR_MENUCALIBRATION "CALIBRATION" #if defined(COLORLCD) - #define TR_TRIMS2OFFSETS "Trims >> Subtrims" + #define TR_TRIMS2OFFSETS "Trims => Subtrims" #else #define TR_TRIMS2OFFSETS "\006Trims => Subtrims" #endif +#if defined(COLORLCD) + #define TR_OUTPUTS2FAILSAFE "Outputs => Failsafe" +#else + #define TR_OUTPUTS2FAILSAFE "\006Outputs => Failsafe" +#endif #define TR_MENUMODELSEL TR("MODELSEL", "MODEL SELECTION") #define TR_MENUSETUP TR("SETUP", "MODEL SETUP") #define TR_MENUFLIGHTMODES "FLIGHT MODES" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 8ea601184..bc035c4a9 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -796,7 +796,16 @@ #define TR_MENU_RADIO_SWITCHES TR("INTERUPTS", "TEST INTERUP.") #define TR_MENU_RADIO_ANALOGS TR("ANAS", "ENTRADAS ANALOG") #define TR_MENUCALIBRATION "CALIBRACION" -#define TR_TRIMS2OFFSETS "\006Trims => Offsets" +#if defined(COLORLCD) + #define TR_TRIMS2OFFSETS "Trims => Offsets" +#else + #define TR_TRIMS2OFFSETS "\006Trims => Offsets" +#endif +#if defined(COLORLCD) + #define TR_OUTPUTS2FAILSAFE "Outputs => Failsafe" +#else + #define TR_OUTPUTS2FAILSAFE "\006Outputs => Failsafe" +#endif #define TR_MENUMODELSEL TR("MODELSEL", "SELECCION MODELO") #define TR_MENUSETUP TR("CONF.", "CONF.MODELO") #define TR_MENUFLIGHTMODE "MODO VUELO" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 236e51870..7b7022d8f 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -792,7 +792,16 @@ #define TR_MENU_RADIO_SWITCHES TR("SWITCHES","SWITCH TEST") #define TR_MENU_RADIO_ANALOGS TR("ANAS","ANALOG INPUTS") #define TR_MENUCALIBRATION "CALIBRATION" -#define TR_TRIMS2OFFSETS "\006Trims => Offsets" +#if defined(COLORLCD) + #define TR_TRIMS2OFFSETS "Trims => Subtrims" +#else + #define TR_TRIMS2OFFSETS "\006Trims => Subtrims" +#endif +#if defined(COLORLCD) + #define TR_OUTPUTS2FAILSAFE "Outputs => Failsafe" +#else + #define TR_OUTPUTS2FAILSAFE "\006Outputs => Failsafe" +#endif #define TR_MENUMODELSEL TR("MODELSEL","MODEL SELECTION") #define TR_MENUSETUP TR("SETUP","MODEL SETUP") #define TR_MENUFLIGHTMODE "FLIGHT MODE" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index dc96e6323..3b0b287a0 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -825,7 +825,16 @@ #define TR_MENU_RADIO_SWITCHES TR("INTERS", "TEST INTERRUPTEURS") #define TR_MENU_RADIO_ANALOGS TR("ANAS", "ENTREES ANALOGIQUES") #define TR_MENUCALIBRATION "CALIBRATION" -#define TR_TRIMS2OFFSETS "\005Trims => Subtrims" +#if defined(COLORLCD) + #define TR_TRIMS2OFFSETS "Trims => Subtrims" +#else + #define TR_TRIMS2OFFSETS "\006Trims => Subtrims" +#endif +#if defined(COLORLCD) + #define TR_OUTPUTS2FAILSAFE "Outputs => Failsafe" +#else + #define TR_OUTPUTS2FAILSAFE "\006Outputs => Failsafe" +#endif #define TR_MENUMODELSEL "MODELES" #define TR_MENUSETUP TR("CONF. MODELE", "CONFIGURATION") #define TR_MENUFLIGHTMODE "PHASE DE VOL" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 03e1aea70..ba53cbef0 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -816,10 +816,15 @@ #define TR_MENU_RADIO_ANALOGS "ANAS" #define TR_MENUCALIBRATION "CALIBRAZIONE" #if defined(COLORLCD) - #define TR_TRIMS2OFFSETS "Trims >> Subtrims" + #define TR_TRIMS2OFFSETS "Trims => Subtrims" #else #define TR_TRIMS2OFFSETS "\006Trim => Offset " #endif +#if defined(COLORLCD) + #define TR_OUTPUTS2FAILSAFE "Outputs => Failsafe" +#else + #define TR_OUTPUTS2FAILSAFE "\006Outputs => Failsafe" +#endif #define TR_MENUMODELSEL "MODELLI" #define TR_MENUSETUP "CONFIGURA" #define TR_MENUFLIGHTMODE "FASE DI VOLO" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 097d67e30..c622c4e48 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -811,6 +811,11 @@ #else #define TR_TRIMS2OFFSETS "\006Trims => Subtrims" #endif +#if defined(COLORLCD) + #define TR_OUTPUTS2FAILSAFE "Outputs => Failsafe" +#else + #define TR_OUTPUTS2FAILSAFE "\006Outputs => Failsafe" +#endif #define TR_MENUMODELSEL TR("MODELLEN", "MODEL KIEZEN") #define TR_MENUSETUP TR("MODEL-INSTELLING", "MODEL-INSTELLINGEN") #define TR_MENUFLIGHTMODES "VLIEGFASES" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 0534ae483..761a9dbd9 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -818,10 +818,15 @@ #define TR_MENU_RADIO_ANALOGS TR("WE-ANA","WEJŚCIA ANALOG.") #define TR_MENUCALIBRATION "KALIBRACJA" #if defined(COLORLCD) - #define TR_TRIMS2OFFSETS "Trymery >> Subtrimy" + #define TR_TRIMS2OFFSETS "Trymery => Subtrimy" #else #define TR_TRIMS2OFFSETS "\006Trims => Subtrims" #endif +#if defined(COLORLCD) + #define TR_OUTPUTS2FAILSAFE "Outputs => Failsafe" +#else + #define TR_OUTPUTS2FAILSAFE "\006Outputs => Failsafe" +#endif #define TR_MENUMODELSEL TR("WYB.MODEL","WYBÓR MODELU") #define TR_MENUSETUP TR("USTAW","USTAW MODELU") #define TR_MENUFLIGHTMODE "FAZA LOTU" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index aff7a15b9..3012400fc 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -799,7 +799,16 @@ #define TR_MENU_RADIO_SWITCHES "DIAGNOST" #define TR_MENU_RADIO_ANALOGS "ANALOGICOS" #define TR_MENUCALIBRATION "CALIBRAGEM" -#define TR_TRIMS2OFFSETS "\006Trims => Offsets" +#if defined(COLORLCD) + #define TR_TRIMS2OFFSETS "Trims => Subtrims" +#else + #define TR_TRIMS2OFFSETS "\006Trims => Subtrims" +#endif +#if defined(COLORLCD) + #define TR_OUTPUTS2FAILSAFE "Outputs => Failsafe" +#else + #define TR_OUTPUTS2FAILSAFE "\006Outputs => Failsafe" +#endif #define TR_MENUMODELSEL "MODELOS" #define TR_MENUSETUP "SETUP" #define TR_MENUFLIGHTMODE "MODO DE VOO" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index bc04ccb4f..24773c8a0 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -829,6 +829,11 @@ #else #define TR_TRIMS2OFFSETS "\006[Spara Trimvärden]" #endif +#if defined(COLORLCD) + #define TR_OUTPUTS2FAILSAFE "Outputs => Failsafe" +#else + #define TR_OUTPUTS2FAILSAFE "\006Outputs => Failsafe" +#endif #define TR_MENUMODELSEL TR("MODELL","VÄLJ MODELL") #define TR_MENUSETUP TR("VÄRDEN","MODELLINSTÄLLNINGAR") #define TR_MENUFLIGHTMODE "FLYGLÄGE"