Set all custom failsafe channels at once (#5834)
* 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
This commit is contained in:
committed by
Bertrand Songis
parent
4f8f00c4e2
commit
2ad0db2d80
+1
-11
@@ -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<MAX_OUTPUT_CHANNELS; ch++) {
|
||||
if (ch < g_model.moduleData[moduleIndex].channelsStart || 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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -264,3 +264,17 @@ void setupPulses(uint8_t port)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setCustomFailsafe(uint8_t moduleIndex)
|
||||
{
|
||||
if (moduleIndex < NUM_MODULES) {
|
||||
for (int ch=0; ch<MAX_OUTPUT_CHANNELS; ch++) {
|
||||
if (ch < g_model.moduleData[moduleIndex].channelsStart || 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];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user