diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index 28efdaf91..27adda99d 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -1820,6 +1820,8 @@ unsigned int getNumSubtypes(MultiModuleRFProtocols type) { case MM_RF_PROTO_HISKY: case MM_RF_PROTO_SYMAX: case MM_RF_PROTO_KN: + case MM_RF_PROTO_SLT: + case MM_RF_PROTO_Q2X2: return 2; case MM_RF_PROTO_CG023: @@ -1827,11 +1829,11 @@ unsigned int getNumSubtypes(MultiModuleRFProtocols type) { return 3; case MM_RF_PROTO_FRSKY: - case MM_RF_PROTO_FLYSKY: case MM_RF_PROTO_DSM2: case MM_RF_PROTO_AFHDS2A: return 4; + case MM_RF_PROTO_FLYSKY: case MM_RF_PROTO_MJXQ: case MM_RF_PROTO_YD717: return 5; diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index 08de67b62..786c14d35 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -857,7 +857,8 @@ enum MultiModuleRFProtocols { MM_RF_PROTO_HONTAI, MM_RF_PROTO_OLRS, MM_RF_PROTO_AFHDS2A, - MM_RF_PROTO_LAST= MM_RF_PROTO_AFHDS2A + MM_RF_PROTO_Q2X2, + MM_RF_PROTO_LAST= MM_RF_PROTO_Q2X2 }; unsigned int getNumSubtypes(MultiModuleRFProtocols type); diff --git a/companion/src/modelprinter.cpp b/companion/src/modelprinter.cpp index 018069010..2d9f25856 100644 --- a/companion/src/modelprinter.cpp +++ b/companion/src/modelprinter.cpp @@ -139,20 +139,22 @@ QString ModelPrinter::printMultiRfProtocol(int rfProtocol, bool custom) QString ModelPrinter::printMultiSubType(int rfProtocol, bool custom, int subType) { /* custom protocols */ - static const char *custom_subtype_strings[] = {"Subtype 0","Subtype 1","Subtype 2","Subtype 3","Subtype 4","Subtype 5","Subtype 6","Subtype 7"}; - static const char *flysky_strings[] = {"Standard","V9x9","V6x6","V912"}; + static const char *custom_subtype_strings[] = {"Subtype 0", "Subtype 1", "Subtype 2", "Subtype 3", "Subtype 4", "Subtype 5", "Subtype 6", "Subtype 7"}; + static const char *flysky_strings[] = {"Standard", "V9x9", "V6x6", "V912", "CX20"}; static const char *frsky_strings[] = {"D16", "D8", "D16 8ch", "V8"}; - static const char *hisky_strings[] = { "HiSky", "HK310" }; + static const char *hisky_strings[] = {"HiSky", "HK310"}; static const char *dsm2_strings[] = {"DSM2 22ms", "DSM2 11ms", "DSMX 22ms", "DSMX 11ms"}; static const char *yd717_strings[] = {"YD717", "Skywalker", "Syma X2", "XINXUN", "NIHUI"}; static const char *symax_strings[] = {"Standard", "Syma X5C"}; - static const char *cx10_strings[] = {"Green", "Blue", "DM007", "Q282", "JC3015a", "JC3015b", "MK33041", "Q242"}; + static const char *slt_strings[] = {"SLT", "Vista"}; + static const char *cx10_strings[] = {"Green", "Blue", "DM007", "-", "JC3015a", "JC3015b", "MK33041", "Q242"}; static const char *cg023_strings[] = {"CG023", "YD829", "H3 3D"}; static const char *kn_strings[] = {"WLtoys", "FeiLun"}; - static const char *mt99_strings[] = {"MT99","H7","YZ"}; + static const char *mt99_strings[] = {"MT99", "H7", "YZ"}; static const char *mjxq_strings[] = {"WLH08", "X600", "X800", "H26D", "E010"}; - static const char *hontai_strings[] = {"Standard","JJRC X1","X5C1 Clone"}; + static const char *hontai_strings[] = {"Standard", "JJRC X1", "X5C1 Clone"}; static const char *afhds2a_strings[] = {"PWM and IBUS", "PPM and IBUS", "PWM and SBUS", "PPM and SBUS"}; + static const char *q2x2_strings[] = {"Q242", "Q282"}; if (custom) return CHECK_IN_ARRAY(custom_subtype_strings, subType); @@ -170,6 +172,8 @@ QString ModelPrinter::printMultiSubType(int rfProtocol, bool custom, int subType return CHECK_IN_ARRAY(yd717_strings, subType); case MM_RF_PROTO_SYMAX: return CHECK_IN_ARRAY(symax_strings, subType); + case MM_RF_PROTO_SLT: + return CHECK_IN_ARRAY(slt_strings, subType); case MM_RF_PROTO_CX10: return CHECK_IN_ARRAY(cx10_strings, subType); case MM_RF_PROTO_CG023: @@ -184,6 +188,8 @@ QString ModelPrinter::printMultiSubType(int rfProtocol, bool custom, int subType return CHECK_IN_ARRAY(hontai_strings, subType); case MM_RF_PROTO_AFHDS2A: return CHECK_IN_ARRAY(afhds2a_strings, subType); + case MM_RF_PROTO_Q2X2: + return CHECK_IN_ARRAY(q2x2_strings, subType); default: return "DEFAULT"; } diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index b570c8d0b..86511e625 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -656,6 +656,9 @@ void menuModelSetup(event_t event) case MM_RF_PROTO_SYMAX: lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_SUBTYPE_SYMAX, g_model.moduleData[EXTERNAL_MODULE].subType, attr); break; + case MM_RF_PROTO_SLT: + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_SUBTYPE_SLT, g_model.moduleData[EXTERNAL_MODULE].subType, attr); + break; case MM_RF_PROTO_CX10: lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_SUBTYPE_CX10, g_model.moduleData[EXTERNAL_MODULE].subType, attr); break; @@ -674,6 +677,9 @@ void menuModelSetup(event_t event) case MM_RF_PROTO_FS_AFHDS2A: lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_SUBTYPE_AFHDS2A, g_model.moduleData[EXTERNAL_MODULE].subType, attr); break; + case MM_RF_PROTO_Q2X2: + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_SUBTYPE_Q2X2, g_model.moduleData[EXTERNAL_MODULE].subType, attr); + break; case MM_RF_CUSTOM_SELECTED: lcdDrawNumber(MODEL_SETUP_2ND_COLUMN + 3 * FW, y, g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false), RIGHT | (menuHorizontalPosition == 0 ? attr : 0), 2); lcdDrawNumber(MODEL_SETUP_2ND_COLUMN + 5 * FW, y, g_model.moduleData[EXTERNAL_MODULE].subType, RIGHT | (menuHorizontalPosition == 1 ? attr : 0), 2); @@ -686,12 +692,13 @@ void menuModelSetup(event_t event) case MM_RF_PROTO_HISKY: case MM_RF_PROTO_SYMAX: case MM_RF_PROTO_KN: + case MM_RF_PROTO_SLT: + case MM_RF_PROTO_Q2X2: CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 1); break; case MM_RF_PROTO_CG023: CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 2); break; - case MM_RF_PROTO_FLYSKY: case MM_RF_PROTO_FRSKY: case MM_RF_PROTO_DSM2: case MM_RF_PROTO_MT99XX: @@ -700,6 +707,7 @@ void menuModelSetup(event_t event) break; case MM_RF_PROTO_MJXQ: case MM_RF_PROTO_YD717: + case MM_RF_PROTO_FLYSKY: CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 4); break; case MM_RF_PROTO_CX10: @@ -817,7 +825,7 @@ void menuModelSetup(event_t event) if (xOffsetBind) lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, g_model.header.modelId[moduleIdx], (l_posHorz==0 ? attr : 0) | LEADING0|LEFT, 2); if (attr && l_posHorz==0) { if (editMode>0 || p1valdiff) { - CHECK_INCDEC_MODELVAR_ZERO(event, g_model.header.modelId[moduleIdx], IS_MODULE_DSM2(moduleIdx) ? 20 : IS_MODULE_MULTIMODULE(moduleIdx) ? 15 : 63); + CHECK_INCDEC_MODELVAR_ZERO(event, g_model.header.modelId[moduleIdx], MAX_RX_NUM(moduleIdx)); if (checkIncDec_Ret) { modelHeaders[g_eeGeneral.currModel].modelId[moduleIdx] = g_model.header.modelId[moduleIdx]; } @@ -909,6 +917,9 @@ void menuModelSetup(event_t event) case MM_RF_PROTO_HUBSAN: lcdDrawTextAlignedLeft(y, STR_MULTI_VIDFREQ); break; + case MM_RF_PROTO_OLRS: + lcdDrawTextAlignedLeft(y, STR_MULTI_RFPOWER); + break; case MM_RF_PROTO_FS_AFHDS2A: lcdDrawTextAlignedLeft(y, TR_MULTI_SERVOFREQ); optionValue = 50 + 5 * optionValue; @@ -921,6 +932,8 @@ void menuModelSetup(event_t event) if (attr) { if (g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true) == MM_RF_PROTO_FS_AFHDS2A) { CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, 0, 70); + } else if (g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true) == MM_RF_PROTO_OLRS) { + CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -1, 7); } else { CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -128, 127); } diff --git a/radio/src/gui/212x64/model_setup.cpp b/radio/src/gui/212x64/model_setup.cpp index e9cd43996..fc03515c8 100644 --- a/radio/src/gui/212x64/model_setup.cpp +++ b/radio/src/gui/212x64/model_setup.cpp @@ -725,6 +725,9 @@ void menuModelSetup(event_t event) case MM_RF_PROTO_SYMAX: lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN+11*FW, y, STR_SUBTYPE_SYMAX, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0); break; + case MM_RF_PROTO_SLT: + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN+11*FW, y, STR_SUBTYPE_SLT, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0); + break; case MM_RF_PROTO_CX10: lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN+10*FW, y, STR_SUBTYPE_CX10, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0); break; @@ -743,6 +746,9 @@ void menuModelSetup(event_t event) case MM_RF_PROTO_FS_AFHDS2A: lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN+10*FW, y, STR_SUBTYPE_AFHDS2A , g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0); break; + case MM_RF_PROTO_Q2X2: + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN+10*FW, y, STR_SUBTYPE_Q2X2 , g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0); + break; case MM_RF_CUSTOM_SELECTED: lcdDrawNumber(MODEL_SETUP_2ND_COLUMN+14*FW, y, g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false), menuHorizontalPosition==2 ? attr : 0, 2); lcdDrawNumber(MODEL_SETUP_2ND_COLUMN+16*FW, y, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==3 ? attr : 0, 2); @@ -800,18 +806,20 @@ void menuModelSetup(event_t event) case MM_RF_PROTO_HISKY: case MM_RF_PROTO_SYMAX: case MM_RF_PROTO_KN: + case MM_RF_PROTO_SLT: + case MM_RF_PROTO_Q2X2: CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 1); break; case MM_RF_PROTO_CG023: CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 2); break; - case MM_RF_PROTO_FLYSKY: case MM_RF_PROTO_MT99XX: case MM_RF_PROTO_FRSKY: case MM_RF_PROTO_DSM2: case MM_RF_PROTO_FS_AFHDS2A: CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 3); break; + case MM_RF_PROTO_FLYSKY: case MM_RF_PROTO_MJXQ: case MM_RF_PROTO_YD717: CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 4); @@ -920,9 +928,8 @@ void menuModelSetup(event_t event) if (xOffsetBind) lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, g_model.header.modelId[moduleIdx], (l_posHorz==0 ? attr : 0) | LEADING0|LEFT, 2); if (attr && l_posHorz==0) { if (s_editMode>0) { - CHECK_INCDEC_MODELVAR_ZERO(event, g_model.header.modelId[moduleIdx], - IS_MODULE_DSM2(moduleIdx) ? 20 : - IS_MODULE_MULTIMODULE(moduleIdx) ? 15 : 63); + CHECK_INCDEC_MODELVAR_ZERO(event, g_model.header.modelId[moduleIdx], MAX_RX_NUM(moduleIdx)); + if (checkIncDec_Ret) { modelHeaders[g_eeGeneral.currModel].modelId[moduleIdx] = g_model.header.modelId[moduleIdx]; } @@ -998,6 +1005,9 @@ void menuModelSetup(event_t event) case MM_RF_PROTO_HUBSAN: lcdDrawTextAlignedLeft(y, STR_MULTI_VIDFREQ); break; + case MM_RF_PROTO_OLRS: + lcdDrawTextAlignedLeft(y, STR_MULTI_RFPOWER); + break; case MM_RF_PROTO_FS_AFHDS2A: lcdDrawTextAlignedLeft(y, TR_MULTI_SERVOFREQ); optionValue = 50 + 5 * optionValue; @@ -1010,6 +1020,8 @@ void menuModelSetup(event_t event) if (attr) { if (g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true) == MM_RF_PROTO_FS_AFHDS2A) { CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, 0, 70); + } else if (g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true) == MM_RF_PROTO_OLRS) { + CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -1, 7); } else { CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -128, 127); } diff --git a/radio/src/gui/480x272/model_setup.cpp b/radio/src/gui/480x272/model_setup.cpp index e9ec51bfa..84027aa74 100644 --- a/radio/src/gui/480x272/model_setup.cpp +++ b/radio/src/gui/480x272/model_setup.cpp @@ -656,6 +656,9 @@ bool menuModelSetup(event_t event) case MM_RF_PROTO_SYMAX: lcdDrawTextAtIndex(MODEL_SETUP_4TH_COLUMN, y, STR_SUBTYPE_SYMAX, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0); break; + case MM_RF_PROTO_SLT: + lcdDrawTextAtIndex(MODEL_SETUP_4TH_COLUMN, y, STR_SUBTYPE_SLT, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0); + break; case MM_RF_PROTO_CX10: lcdDrawTextAtIndex(MODEL_SETUP_4TH_COLUMN, y, STR_SUBTYPE_CX10, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0); break; @@ -674,6 +677,9 @@ bool menuModelSetup(event_t event) case MM_RF_PROTO_FS_AFHDS2A: lcdDrawTextAtIndex(MODEL_SETUP_4TH_COLUMN, y, STR_SUBTYPE_AFHDS2A , g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0); break; + case MM_RF_PROTO_Q2X2: + lcdDrawTextAtIndex(MODEL_SETUP_4TH_COLUMN, y, STR_SUBTYPE_Q2X2, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0); + break; case MM_RF_CUSTOM_SELECTED: lcdDrawNumber(MODEL_SETUP_4TH_COLUMN, y, g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false), menuHorizontalPosition==2 ? attr : 0, 2); lcdDrawNumber(MODEL_SETUP_4TH_COLUMN + MODEL_SETUP_BIND_OFS, y, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==3 ? attr : 0, 2); @@ -732,12 +738,12 @@ bool menuModelSetup(event_t event) case MM_RF_PROTO_HISKY: case MM_RF_PROTO_SYMAX: case MM_RF_PROTO_KN: + case MM_RF_PROTO_SLT: CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 1); break; case MM_RF_PROTO_CG023: CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 2); break; - case MM_RF_PROTO_FLYSKY: case MM_RF_PROTO_MT99XX: case MM_RF_PROTO_FRSKY: case MM_RF_PROTO_DSM2: @@ -746,6 +752,7 @@ bool menuModelSetup(event_t event) break; case MM_RF_PROTO_MJXQ: case MM_RF_PROTO_YD717: + case MM_RF_PROTO_FLYSKY: CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 4); break; case MM_RF_PROTO_CX10: @@ -842,9 +849,7 @@ bool menuModelSetup(event_t event) if (IS_MODULE_XJT(moduleIdx) || IS_MODULE_DSM2(moduleIdx) || IS_MODULE_MULTIMODULE(moduleIdx)) { if (xOffsetBind) lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, g_model.header.modelId[moduleIdx], (l_posHorz==0 ? attr : 0) | LEADING0 | LEFT, 2); if (attr && l_posHorz==0 && s_editMode>0) { - CHECK_INCDEC_MODELVAR_ZERO(event, g_model.header.modelId[moduleIdx], - IS_MODULE_DSM2(moduleIdx) ? 20 : - IS_MODULE_MULTIMODULE(moduleIdx) ? 15 : 63); + CHECK_INCDEC_MODELVAR_ZERO(event, g_model.header.modelId[moduleIdx], MAX_RX_NUM(moduleIdx)); } drawButton(MODEL_SETUP_2ND_COLUMN+xOffsetBind, y, STR_MODULE_BIND, (moduleFlag[moduleIdx] == MODULE_BIND ? BUTTON_ON : BUTTON_OFF) | (l_posHorz==1 ? attr : 0)); drawButton(MODEL_SETUP_2ND_COLUMN+MODEL_SETUP_RANGE_OFS+xOffsetBind, y, STR_MODULE_RANGE, (moduleFlag[moduleIdx] == MODULE_RANGECHECK ? BUTTON_ON : BUTTON_OFF) | (l_posHorz==2 ? attr : 0)); @@ -913,6 +918,9 @@ bool menuModelSetup(event_t event) case MM_RF_PROTO_HUBSAN: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MULTI_VIDFREQ); break; + case MM_RF_PROTO_OLRS: + lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MULTI_RFPOWER); + break; case MM_RF_PROTO_FS_AFHDS2A: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MULTI_SERVOFREQ); optionValue = 50 + 5 * optionValue; @@ -925,6 +933,8 @@ bool menuModelSetup(event_t event) if (attr) { if (g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true) == MM_RF_PROTO_FS_AFHDS2A) { CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, 0, 70); + } else if (g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true) == MM_RF_PROTO_OLRS) { + CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -1, 7); } else { CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -128, 127); } diff --git a/radio/src/gui/gui_common.h b/radio/src/gui/gui_common.h index c7c2f9bd8..0c368193b 100644 --- a/radio/src/gui/gui_common.h +++ b/radio/src/gui/gui_common.h @@ -120,17 +120,22 @@ void runFatalErrorScreen(const char * message); #define MULTIMODULE_SUBTYPE_ROWS(x) IS_MODULE_MULTIMODULE(x) ? MULTIMODULE_RFPROTO_ROWS(x) : HIDDEN_ROW, #define MULTIMODULE_HAS_SUBTYPE(x) (x == MM_RF_PROTO_FLYSKY || x == MM_RF_PROTO_FRSKY || x == MM_RF_PROTO_HISKY || x == MM_RF_PROTO_DSM2 || x == MM_RF_PROTO_YD717 \ || x == MM_RF_PROTO_KN || x == MM_RF_PROTO_SYMAX || x == MM_RF_PROTO_CX10 || x == MM_RF_PROTO_CG023 || x == MM_RF_PROTO_MT99XX \ - || x == MM_RF_PROTO_MJXQ || x == MM_RF_PROTO_HONTAI || x == MM_RF_PROTO_FS_AFHDS2A || x == MM_RF_CUSTOM_SELECTED) -#define MULTIMODULE_HASOPTIONS(x) (x == MM_RF_PROTO_HUBSAN || x == MM_RF_PROTO_FRSKY || x == MM_RF_PROTO_SFHSS || x == MM_RF_PROTO_FS_AFHDS2A || x == MM_RF_CUSTOM_SELECTED) + || x == MM_RF_PROTO_MJXQ || x == MM_RF_PROTO_HONTAI || x == MM_RF_PROTO_FS_AFHDS2A || x == MM_RF_PROTO_SLT || x == MM_RF_PROTO_Q2X2 \ + || x == MM_RF_CUSTOM_SELECTED) +#define MULTIMODULE_HASOPTIONS(x) (x == MM_RF_PROTO_HUBSAN || x == MM_RF_PROTO_FRSKY || x == MM_RF_PROTO_SFHSS || x == MM_RF_PROTO_FS_AFHDS2A \ + || x == MM_RF_PROTO_OLRS || x == MM_RF_CUSTOM_SELECTED) #define MULTIMODULE_FAILSAFEROWS(x) (IS_MODULE_MULTIMODULE(x) && (MULTIMODULE_HASOPTIONS(g_model.moduleData[x].getMultiProtocol(true)))) ? (uint8_t) 0: HIDDEN_ROW - +#define MULTI_MAX_RX_NUM(x) (g_model.moduleData[x].getMultiProtocol(true) == MM_RF_PROTO_OLRS ? 4 : 15) #else #define MULTIMODULE_MODULE_ROWS #define MULTIMODULE_FAILSAFEROWS(x) HIDDEN_ROW #define MULTIMODULE_SUBTYPE_ROWS(x) #define MULTIMODULE_MODE_ROWS(x) (uint8_t)0 +#define MULTI_MAX_RX_NUM(x) 15 #endif +#define MAX_RX_NUM(x) (IS_MODULE_DSM2(x) ? 20 : IS_MODULE_MULTIMODULE(x) ? MULTI_MAX_RX_NUM(x) : 63) + #define IS_D8_RX(x) (g_model.moduleData[x].rfProtocol == RF_PROTO_D8) #define IF_TRAINER_ON(x) (g_model.trainerMode == TRAINER_MODE_SLAVE ? (uint8_t)(x) : HIDDEN_ROW) diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index be77ced15..aea5c611b 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -528,7 +528,8 @@ enum MultiModuleRFProtocols { MM_RF_PROTO_HONTAI, MM_RF_PROTO_OLRS, MM_RF_PROTO_FS_AFHDS2A, - MM_RF_PROTO_LAST= MM_RF_PROTO_FS_AFHDS2A + MM_RF_PROTO_Q2X2, + MM_RF_PROTO_LAST= MM_RF_PROTO_Q2X2 }; enum MMDSM2Subtypes { diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 545363cf9..1da67c9ea 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -118,6 +118,7 @@ const pm_char STR_OPEN9X[] PROGMEM = ISTR(SUBTYPE_DSM) ISTR(SUBTYPE_YD717) ISTR(SUBTYPE_SYMAX) + ISTR(SUBTYPE_SLT) ISTR(SUBTYPE_CX10) ISTR(SUBTYPE_CG023) ISTR(SUBTYPE_KN) @@ -125,7 +126,7 @@ const pm_char STR_OPEN9X[] PROGMEM = ISTR(SUBTYPE_MJXQ) ISTR(SUBTYPE_HONTAI) ISTR(SUBTYPE_AFHDS2A) - ISTR(OPTIONS_DSM) + ISTR(SUBTYPE_Q2X2) #endif ISTR(VOLTSRC) ISTR(CURVE_TYPES) @@ -469,6 +470,7 @@ const pm_char STR_MONITOR_SCREENS[] PROGMEM = TR_MONITOR_SCREENS; const pm_char STR_MULTI_CUSTOM[] PROGMEM = TR_MULTI_CUSTOM; const pm_char STR_MULTI_RFTUNE[] PROGMEM = TR_MULTI_RFTUNE; const pm_char STR_MULTI_VIDFREQ[] PROGMEM = TR_MULTI_VIDFREQ; +const pm_char STR_MULTI_RFPOWER[] PROGMEM = TR_MULTI_RFPOWER; const pm_char STR_MULTI_OPTION[] PROGMEM = TR_MULTI_OPTION; const pm_char STR_MULTI_AUTOBIND[] PROGMEM = TR_MULTI_AUTOBIND; const pm_char STR_MULTI_DSM_AUTODTECT[] PROGMEM = TR_MULTI_DSM_AUTODTECT; diff --git a/radio/src/translations.h b/radio/src/translations.h index 4d583031f..112825ad7 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -219,15 +219,16 @@ extern const pm_char STR_OPEN9X[]; #define OFS_SUBTYPE_DSM (OFS_SUBTYPE_HISKY + sizeof(TR_SUBTYPE_HISKY)) #define OFS_SUBTYPE_YD717 (OFS_SUBTYPE_DSM + sizeof(TR_SUBTYPE_DSM)) #define OFS_SUBTYPE_SYMAX (OFS_SUBTYPE_YD717 + sizeof(TR_SUBTYPE_YD717)) - #define OFS_SUBTYPE_CX10 (OFS_SUBTYPE_SYMAX + sizeof(TR_SUBTYPE_SYMAX)) + #define OFS_SUBTYPE_SLT (OFS_SUBTYPE_SYMAX + sizeof(TR_SUBTYPE_SYMAX)) + #define OFS_SUBTYPE_CX10 (OFS_SUBTYPE_SLT + sizeof(TR_SUBTYPE_SLT)) #define OFS_SUBTYPE_CG023 (OFS_SUBTYPE_CX10 + sizeof(TR_SUBTYPE_CX10)) #define OFS_SUBTYPE_KN (OFS_SUBTYPE_CG023 + sizeof(TR_SUBTYPE_CG023)) #define OFS_SUBTYPE_MT99 (OFS_SUBTYPE_KN + sizeof(TR_SUBTYPE_KN)) #define OFS_SUBTYPE_MJXQ (OFS_SUBTYPE_MT99 + sizeof(TR_SUBTYPE_MT99)) #define OFS_SUBTYPE_HONTAI (OFS_SUBTYPE_MJXQ + sizeof(TR_SUBTYPE_MJXQ)) #define OFS_SUBTYPE_AFHDS2A (OFS_SUBTYPE_HONTAI + sizeof(TR_SUBTYPE_HONTAI)) - #define OFS_OPTIONS_DSM (OFS_SUBTYPE_AFHDS2A + sizeof(TR_SUBTYPE_AFHDS2A)) - #define OFS_VOLTSRC (OFS_OPTIONS_DSM + sizeof(TR_OPTIONS_DSM)) + #define OFS_SUBTYPE_Q2X2 (OFS_SUBTYPE_AFHDS2A + sizeof(TR_SUBTYPE_AFHDS2A)) + #define OFS_VOLTSRC (OFS_SUBTYPE_Q2X2 + sizeof(TR_SUBTYPE_Q2X2)) #else #define OFS_VOLTSRC (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS)) #endif @@ -355,6 +356,7 @@ extern const pm_char STR_OPEN9X[]; #define STR_SUBTYPE_DSM (STR_OPEN9X + OFS_SUBTYPE_DSM) #define STR_SUBTYPE_YD717 (STR_OPEN9X + OFS_SUBTYPE_YD717) #define STR_SUBTYPE_SYMAX (STR_OPEN9X + OFS_SUBTYPE_SYMAX) + #define STR_SUBTYPE_SLT (STR_OPEN9X + OFS_SUBTYPE_SLT) #define STR_SUBTYPE_CX10 (STR_OPEN9X + OFS_SUBTYPE_CX10) #define STR_SUBTYPE_CG023 (STR_OPEN9X + OFS_SUBTYPE_CG023) #define STR_SUBTYPE_KN (STR_OPEN9X + OFS_SUBTYPE_KN) @@ -362,7 +364,7 @@ extern const pm_char STR_OPEN9X[]; #define STR_SUBTYPE_MJXQ (STR_OPEN9X + OFS_SUBTYPE_MJXQ) #define STR_SUBTYPE_HONTAI (STR_OPEN9X + OFS_SUBTYPE_HONTAI) #define STR_SUBTYPE_AFHDS2A (STR_OPEN9X + OFS_SUBTYPE_AFHDS2A) - #define STR_OPTIONS_DSM (STR_OPEN9X + OFS_OPTIONS_DSM) + #define STR_SUBTYPE_Q2X2 (STR_OPEN9X + OFS_SUBTYPE_Q2X2) #endif #define STR_CURVE_TYPES (STR_OPEN9X + OFS_CURVE_TYPES) #define STR_VSENSORTYPES (STR_OPEN9X + OFS_VSENSORTYPES) @@ -602,6 +604,7 @@ extern const pm_char STR_FAS_OFFSET[]; extern const pm_char STR_MULTI_CUSTOM[]; extern const pm_char STR_MULTI_OPTION[]; extern const pm_char STR_MULTI_VIDFREQ[]; +extern const pm_char STR_MULTI_RFPOWER[]; extern const pm_char STR_MULTI_RFTUNE[]; extern const pm_char STR_MULTI_AUTOBIND[]; extern const pm_char STR_MULTI_DSM_AUTODTECT[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index f7cf50e5c..aed57ca60 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -107,12 +107,12 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 " #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\007" -#define TR_SUBTYPE_FLYSKY "Std\0 ""V9x9 ""V6x6 ""V912 " +#define LEN_SUBTYPE_FLYSKY "\004" +#define TR_SUBTYPE_FLYSKY "Std\0"V9x9""V6x6""V912""CX20" #define LEN_SUBTYPE_AFHDS2A "\010" #define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" @@ -132,8 +132,11 @@ #define LEN_SUBTYPE_SYMAX "\003" #define TR_SUBTYPE_SYMAX "Std""5c\0" +#define LEN_SUBTYPE_SLT "\005" +#define TR_SUBTYPE_SLT "SLT\0 ""Vista" + #define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""Q282\0 ""JC3015a""JC3015b""MK33041""Q242\0 " +#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " #define LEN_SUBTYPE_CG023 "\005" #define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" @@ -150,8 +153,8 @@ #define LEN_SUBTYPE_HONTAI "\007" #define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" -#define LEN_OPTIONS_DSM "\011" -#define TR_OPTIONS_DSM "4ch 22ms\0""5ch 22ms\0""6ch 22ms\0""7ch 22ms\0""4ch 11ms\0""5ch 11ms\0""6ch 11ms\0""7ch 11ms\0""8ch 22ms\0""9ch 22ms\0""10ch 22ms""11ch 22ms""12ch 22ms" +#define LEN_SUBTYPE_Q2X2 "\004" +#define TR_SUBTYPE_Q2X2 "Q242""Q282" #define LEN_VTRIMINC "\007" #define TR_VTRIMINC "Expo\0 ""ExJemný""Jemný\0 ""Střední""Hrubý\0 " @@ -896,6 +899,7 @@ #endif #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") +#define TR_MULTI_RFPOWER INDENT "RF Power" #define TR_MULTI_OPTION TR(INDENT "Option", INDENT "Option value") #define TR_MULTI_AUTOBIND TR(INDENT "Autobind",INDENT "Bind on powerup") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 3f0120153..a198f87d2 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -111,12 +111,12 @@ #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 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2" #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\007" -#define TR_SUBTYPE_FLYSKY "Std\0 ""V9x9 ""V6x6 ""V912 " +#define LEN_SUBTYPE_FLYSKY "\004" +#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" #define LEN_SUBTYPE_AFHDS2A "\010" #define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" @@ -136,8 +136,11 @@ #define LEN_SUBTYPE_SYMAX "\003" #define TR_SUBTYPE_SYMAX "Std""5c\0" +#define LEN_SUBTYPE_SLT "\005" +#define TR_SUBTYPE_SLT "SLT\0 ""Vista" + #define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Grün \0 ""Blau\0 ""DM007\0 ""Q282\0 ""JC3015a""JC3015b""MK33041""Q242\0 " +#define TR_SUBTYPE_CX10 "Grün \0 ""Blau\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " #define LEN_SUBTYPE_CG023 "\005" #define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" @@ -154,8 +157,8 @@ #define LEN_SUBTYPE_HONTAI "\007" #define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" -#define LEN_OPTIONS_DSM "\011" -#define TR_OPTIONS_DSM "4ch 22ms\0""5ch 22ms\0""6ch 22ms\0""7ch 22ms\0""4ch 11ms\0""5ch 11ms\0""6ch 11ms\0""7ch 11ms\0""8ch 22ms\0""9ch 22ms\0""10ch 22ms""11ch 22ms""12ch 22ms" +#define LEN_SUBTYPE_Q2X2 "\004" +#define TR_SUBTYPE_Q2X2 "Q242""Q282" #define LEN_VTRIMINC TR("\007", "\014") // ursprüglich "\006", "\013" #define TR_VTRIMINC TR("Expo ""ExFein ""Fein ""Mittel ""Grob ", "Exponentiell""Extrafein ""Fein ""Mittel ""Grob ") @@ -899,6 +902,7 @@ #endif #define TR_MULTI_RFTUNE TR(INDENT "RF Freq.", INDENT "RF Freq. Feintuning") #define TR_MULTI_VIDFREQ TR(INDENT "Vid. Freq.", INDENT "Video Frequenz") +#define TR_MULTI_RFPOWER INDENT "RF Power" #define TR_MULTI_OPTION TR(INDENT "Option", INDENT "Optionswert") #define TR_MULTI_AUTOBIND TR(INDENT "Autobind",INDENT "Bind on powerup") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index bfaed2708..b430fc897 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -111,12 +111,12 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0""FS 2A\0" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 " #define TR_MULTI_CUSTOM "Custom" #define LEN_SUBTYPE_FLYSKY "\004" -#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912" +#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" #define LEN_SUBTYPE_AFHDS2A "\010" #define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" @@ -136,8 +136,11 @@ #define LEN_SUBTYPE_SYMAX "\003" #define TR_SUBTYPE_SYMAX "Std""5c\0" +#define LEN_SUBTYPE_SLT "\005" +#define TR_SUBTYPE_SLT "SLT\0 ""Vista" + #define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""Q282\0 ""JC3015a""JC3015b""MK33041""Q242\0 " +#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " #define LEN_SUBTYPE_CG023 "\005" #define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" @@ -154,8 +157,8 @@ #define LEN_SUBTYPE_HONTAI "\007" #define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" -#define LEN_OPTIONS_DSM "\011" -#define TR_OPTIONS_DSM "4ch 22ms\0""5ch 22ms\0""6ch 22ms\0""7ch 22ms\0""4ch 11ms\0""5ch 11ms\0""6ch 11ms\0""7ch 11ms\0""8ch 22ms\0""9ch 22ms\0""10ch 22ms""11ch 22ms""12ch 22ms" +#define LEN_SUBTYPE_Q2X2 "\004" +#define TR_SUBTYPE_Q2X2 "Q242""Q282" #define LEN_VTRIMINC TR("\006", "\013") #define TR_VTRIMINC TR("Expo\0 ""ExFine""Fine\0 ""Medium""Coarse", "Exponential""Extra Fine\0""Fine\0 ""Medium\0 ""Coarse\0 ") @@ -869,6 +872,7 @@ #endif #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") +#define TR_MULTI_RFPOWER INDENT "RF Power" #define TR_MULTI_OPTION TR(INDENT "Option", INDENT "Option value") #define TR_MULTI_AUTOBIND TR(INDENT "Autobind",INDENT "Bind on powerup") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 686e9db7a..35379ea01 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -107,12 +107,12 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 "" #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\007" -#define TR_SUBTYPE_FLYSKY "Std\0 ""V9x9 ""V6x6 ""V912 " +#define LEN_SUBTYPE_FLYSKY "\004" +#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912" #define LEN_SUBTYPE_AFHDS2A "\010" #define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" @@ -132,8 +132,11 @@ #define LEN_SUBTYPE_SYMAX "\003" #define TR_SUBTYPE_SYMAX "Std""5c\0" +#define LEN_SUBTYPE_SLT "\005" +#define TR_SUBTYPE_SLT "SLT\0 ""Vista" + #define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""Q282\0 ""JC3015a""JC3015b""MK33041""Q242\0 " +#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " #define LEN_SUBTYPE_CG023 "\005" #define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" @@ -150,8 +153,8 @@ #define LEN_SUBTYPE_HONTAI "\007" #define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" -#define LEN_OPTIONS_DSM "\011" -#define TR_OPTIONS_DSM "4ch 22ms\0""5ch 22ms\0""6ch 22ms\0""7ch 22ms\0""4ch 11ms\0""5ch 11ms\0""6ch 11ms\0""7ch 11ms\0""8ch 22ms\0""9ch 22ms\0""10ch 22ms""11ch 22ms""12ch 22ms" +#define LEN_SUBTYPE_Q2X2 "\004" +#define TR_SUBTYPE_Q2X2 "Q242""Q282" #define LEN_VTRIMINC TR("\006", "\013") #define TR_VTRIMINC TR("Expo ""ExFino""Fino ""Medio ""Grueso", "Exponencial""Extra Fino ""Fino ""Medio ""Grueso ") @@ -844,6 +847,7 @@ #define TR_RECEIVER INDENT "Receiver" #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") +#define TR_MULTI_RFPOWER INDENT "RF Power" #define TR_MULTI_OPTION TR(INDENT "Option", INDENT "Option value") #define TR_MULTI_AUTOBIND TR(INDENT "Autobind",INDENT "Bind on powerup") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 568db787e..e42000368 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -107,12 +107,12 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 " #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\007" -#define TR_SUBTYPE_FLYSKY "Std\0 ""V9x9 ""V6x6 ""V912 " +#define LEN_SUBTYPE_FLYSKY "\004" +#define TR_SUBTYPE_FLYSKY "Std\0"V9x9""V6x6""V912""CX20" #define LEN_SUBTYPE_AFHDS2A "\010" #define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" @@ -132,8 +132,11 @@ #define LEN_SUBTYPE_SYMAX "\003" #define TR_SUBTYPE_SYMAX "Std""5c\0" +#define LEN_SUBTYPE_SLT "\005" +#define TR_SUBTYPE_SLT "SLT\0 ""Vista" + #define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""Q282\0 ""JC3015a""JC3015b""MK33041""Q242\0 " +#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " #define LEN_SUBTYPE_CG023 "\005" #define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" @@ -150,8 +153,8 @@ #define LEN_SUBTYPE_HONTAI "\007" #define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" -#define LEN_OPTIONS_DSM "\011" -#define TR_OPTIONS_DSM "4ch 22ms\0""5ch 22ms\0""6ch 22ms\0""7ch 22ms\0""4ch 11ms\0""5ch 11ms\0""6ch 11ms\0""7ch 11ms\0""8ch 22ms\0""9ch 22ms\0""10ch 22ms""11ch 22ms""12ch 22ms" +#define LEN_SUBTYPE_Q2X2 "\004" +#define TR_SUBTYPE_Q2X2 "Q242""Q282" #define LEN_VTRIMINC TR("\006", "\013") #define TR_VTRIMINC TR("Expo\0 ""EriHie""Hieno\0""Keski\0""Karkea", "Exponential""Eri Hieno\0 ""Hieno\0 ""Keski\0 ""Karkea\0 ") @@ -844,6 +847,7 @@ #define TR_RECEIVER INDENT "Receiver" #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") +#define TR_MULTI_RFPOWER INDENT "RF Power" #define TR_MULTI_OPTION TR(INDENT "Option", INDENT "Option value") #define TR_MULTI_AUTOBIND TR(INDENT "Autobind",INDENT "Bind on powerup") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 61a2edd69..cf6bf60ad 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -107,12 +107,12 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 " #define TR_MULTI_CUSTOM "Perso" -#define LEN_SUBTYPE_FLYSKY "\007" -#define TR_SUBTYPE_FLYSKY "Std\0 ""V9x9 ""V6x6 ""V912 " +#define LEN_SUBTYPE_FLYSKY "\004" +#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" #define LEN_SUBTYPE_AFHDS2A "\010" #define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" @@ -132,8 +132,11 @@ #define LEN_SUBTYPE_SYMAX "\003" #define TR_SUBTYPE_SYMAX "Std""5c\0" +#define LEN_SUBTYPE_SLT "\005" +#define TR_SUBTYPE_SLT "SLT\0 ""Vista" + #define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""Q282\0 ""JC3015a""JC3015b""MK33041""Q242\0 " +#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " #define LEN_SUBTYPE_CG023 "\005" #define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" @@ -150,8 +153,8 @@ #define LEN_SUBTYPE_HONTAI "\007" #define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" -#define LEN_OPTIONS_DSM "\011" -#define TR_OPTIONS_DSM "4ch 22ms\0""5ch 22ms\0""6ch 22ms\0""7ch 22ms\0""4ch 11ms\0""5ch 11ms\0""6ch 11ms\0""7ch 11ms\0""8ch 22ms\0""9ch 22ms\0""10ch 22ms""11ch 22ms""12ch 22ms" +#define LEN_SUBTYPE_Q2X2 "\004" +#define TR_SUBTYPE_Q2X2 "Q242""Q282" #define LEN_VTRIMINC TR("\006", "\013") #define TR_VTRIMINC TR("Expo\0 ""ExFin\0""Fin\0 ""Moyen\0""Gros\0 ","Exponentiel""Extra Fin\0 ""Fin\0 ""Moyen\0 ""Grossier\0 ") @@ -876,6 +879,7 @@ #endif #define TR_MULTI_RFTUNE INDENT "Ajustement fréq." #define TR_MULTI_VIDFREQ INDENT "Fréquence vidéo" +#define TR_MULTI_RFPOWER INDENT "RF Power" #define TR_MULTI_OPTION TR(INDENT "Option", INDENT "Option perso") #define TR_MULTI_AUTOBIND INDENT "Bind automatique" #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index edc827087..4425aee70 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -107,12 +107,12 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 " #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\007" -#define TR_SUBTYPE_FLYSKY "Std\0 ""V9x9 ""V6x6 ""V912 " +#define LEN_SUBTYPE_FLYSKY "\004" +#define TR_SUBTYPE_FLYSKY "Std\0"V9x9""V6x6""V912""CX20" #define LEN_SUBTYPE_AFHDS2A "\010" #define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" @@ -132,8 +132,11 @@ #define LEN_SUBTYPE_SYMAX "\003" #define TR_SUBTYPE_SYMAX "Std""5c\0" +#define LEN_SUBTYPE_SLT "\005" +#define TR_SUBTYPE_SLT "SLT\0 ""Vista" + #define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""Q282\0 ""JC3015a""JC3015b""MK33041""Q242\0 " +#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " #define LEN_SUBTYPE_CG023 "\005" #define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" @@ -150,8 +153,8 @@ #define LEN_SUBTYPE_HONTAI "\007" #define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" -#define LEN_OPTIONS_DSM "\011" -#define TR_OPTIONS_DSM "4ch 22ms\0""5ch 22ms\0""6ch 22ms\0""7ch 22ms\0""4ch 11ms\0""5ch 11ms\0""6ch 11ms\0""7ch 11ms\0""8ch 22ms\0""9ch 22ms\0""10ch 22ms""11ch 22ms""12ch 22ms" +#define LEN_SUBTYPE_Q2X2 "\004" +#define TR_SUBTYPE_Q2X2 "Q242""Q282" #define LEN_VTRIMINC "\006" #define TR_VTRIMINC "Exp ""ExFine""Fine ""Medio ""Ampio " @@ -879,6 +882,7 @@ #endif #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") +#define TR_MULTI_RFPOWER INDENT "RF Power" #define TR_MULTI_OPTION TR(INDENT "Option", INDENT "Option value") #define TR_MULTI_AUTOBIND TR(INDENT "Autobind",INDENT "Bind on powerup") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 184844825..497399b69 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -112,12 +112,12 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 " #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\007" -#define TR_SUBTYPE_FLYSKY "Std\0 ""V9x9 ""V6x6 ""V912 " +#define LEN_SUBTYPE_FLYSKY "\004" +#define TR_SUBTYPE_FLYSKY "Std\0"V9x9""V6x6""V912""CX20" #define LEN_SUBTYPE_AFHDS2A "\010" #define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" @@ -137,8 +137,11 @@ #define LEN_SUBTYPE_SYMAX "\003" #define TR_SUBTYPE_SYMAX "Std""5c\0" +#define LEN_SUBTYPE_SLT "\005" +#define TR_SUBTYPE_SLT "SLT\0 ""Vista" + #define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""Q282\0 ""JC3015a""JC3015b""MK33041""Q242\0 " +#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " #define LEN_SUBTYPE_CG023 "\005" #define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" @@ -155,8 +158,8 @@ #define LEN_SUBTYPE_HONTAI "\007" #define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" -#define LEN_OPTIONS_DSM "\011" -#define TR_OPTIONS_DSM "4ch 22ms\0""5ch 22ms\0""6ch 22ms\0""7ch 22ms\0""4ch 11ms\0""5ch 11ms\0""6ch 11ms\0""7ch 11ms\0""8ch 22ms\0""9ch 22ms\0""10ch 22ms""11ch 22ms""12ch 22ms" +#define LEN_SUBTYPE_Q2X2 "\004" +#define TR_SUBTYPE_Q2X2 "Q242""Q282" #define LEN_VTRIMINC TR("\006", "\014") #define TR_VTRIMINC TR("Expo\0 ""ExFijn""Fijn\0 ""Medium""Grof\0 ", "Exponentieel""Extra Fijn\0 ""Fijn\0 ""Medium\0 ""Grof\0 ") @@ -873,6 +876,7 @@ #endif #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") +#define TR_MULTI_RFPOWER INDENT "RF Power" #define TR_MULTI_OPTION TR(INDENT "Option", INDENT "Option value") #define TR_MULTI_AUTOBIND TR(INDENT "Autobind",INDENT "Bind on powerup") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index b870eb8f8..64ff8d928 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -108,12 +108,12 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 " #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\007" -#define TR_SUBTYPE_FLYSKY "Std\0 ""V9x9 ""V6x6 ""V912 " +#define LEN_SUBTYPE_FLYSKY "\004" +#define TR_SUBTYPE_FLYSKY "Std\0"V9x9""V6x6""V912""CX20" #define LEN_SUBTYPE_AFHDS2A "\010" #define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" @@ -133,8 +133,11 @@ #define LEN_SUBTYPE_SYMAX "\003" #define TR_SUBTYPE_SYMAX "Std""5c\0" +#define LEN_SUBTYPE_SLT "\005" +#define TR_SUBTYPE_SLT "SLT\0 ""Vista" + #define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""Q282\0 ""JC3015a""JC3015b""MK33041""Q242\0 " +#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " #define LEN_SUBTYPE_CG023 "\005" #define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" @@ -151,8 +154,8 @@ #define LEN_SUBTYPE_HONTAI "\007" #define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" -#define LEN_OPTIONS_DSM "\011" -#define TR_OPTIONS_DSM "4ch 22ms\0""5ch 22ms\0""6ch 22ms\0""7ch 22ms\0""4ch 11ms\0""5ch 11ms\0""6ch 11ms\0""7ch 11ms\0""8ch 22ms\0""9ch 22ms\0""10ch 22ms""11ch 22ms""12ch 22ms" +#define LEN_SUBTYPE_Q2X2 "\004" +#define TR_SUBTYPE_Q2X2 "Q242""Q282" #define LEN_VTRIMINC TR("\006", "\013") /*11 decimal*/ #define TR_VTRIMINC TR("Expo\0 ""B.Dokł""Dokł.\0""Średni""Zgrubn", "Expotencja ""B.Dokładny\0""Dokładny\0 ""Średni\0 ""Zgrubny\0 ") @@ -881,6 +884,7 @@ #endif #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") +#define TR_MULTI_RFPOWER INDENT "RF Power" #define TR_MULTI_OPTION TR(INDENT "Option", INDENT "Option value") #define TR_MULTI_AUTOBIND TR(INDENT "Autobind",INDENT "Bind on powerup") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 51587bd47..f2851ee7b 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -107,13 +107,13 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 " #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\007" -#define TR_SUBTYPE_FLYSKY "Std\0 ""V9x9 ""V6x6 ""V912 " +#define LEN_SUBTYPE_FLYSKY "\004" +#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" #define LEN_SUBTYPE_AFHDS2A "\010" #define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" @@ -133,8 +133,11 @@ #define LEN_SUBTYPE_SYMAX "\003" #define TR_SUBTYPE_SYMAX "Std""5c\0" +#define LEN_SUBTYPE_SLT "\005" +#define TR_SUBTYPE_SLT "SLT\0 ""Vista" + #define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""Q282\0 ""JC3015a""JC3015b""MK33041""Q242\0 " +#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " #define LEN_SUBTYPE_CG023 "\005" #define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" @@ -151,8 +154,8 @@ #define LEN_SUBTYPE_HONTAI "\007" #define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" -#define LEN_OPTIONS_DSM "\011" -#define TR_OPTIONS_DSM "4ch 22ms\0""5ch 22ms\0""6ch 22ms\0""7ch 22ms\0""4ch 11ms\0""5ch 11ms\0""6ch 11ms\0""7ch 11ms\0""8ch 22ms\0""9ch 22ms\0""10ch 22ms""11ch 22ms""12ch 22ms" +#define LEN_SUBTYPE_Q2X2 "\004" +#define TR_SUBTYPE_Q2X2 "Q242""Q282" #define LEN_VTRIMINC "\006" #define TR_VTRIMINC "Expo ""ExFino""Fino ""Medio ""Largo " @@ -840,6 +843,7 @@ #define TR_SYNCMENU "Sync [MENU]" #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") +#define TR_MULTI_RFPOWER INDENT "RF Power" #define TR_MULTI_OPTION TR(INDENT "Option", INDENT "Option value") #define TR_MULTI_AUTOBIND TR(INDENT "Autobind",INDENT "Bind on powerup") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index d9dc088c1..640ab7643 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -107,12 +107,12 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\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""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 " #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\007" -#define TR_SUBTYPE_FLYSKY "Std\0 ""V9x9 ""V6x6 ""V912 " +#define LEN_SUBTYPE_FLYSKY "\004" +#define TR_SUBTYPE_FLYSKY "Std\0"V9x9""V6x6""V912""CX20" #define LEN_SUBTYPE_AFHDS2A "\010" #define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" @@ -132,8 +132,11 @@ #define LEN_SUBTYPE_SYMAX "\003" #define TR_SUBTYPE_SYMAX "Std""5c\0" +#define LEN_SUBTYPE_SLT "\005" +#define TR_SUBTYPE_SLT "SLT\0 ""Vista" + #define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""Q282\0 ""JC3015a""JC3015b""MK33041""Q242\0 " +#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " #define LEN_SUBTYPE_CG023 "\005" #define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" @@ -150,8 +153,8 @@ #define LEN_SUBTYPE_HONTAI "\007" #define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" -#define LEN_OPTIONS_DSM "\011" -#define TR_OPTIONS_DSM "4ch 22ms\0""5ch 22ms\0""6ch 22ms\0""7ch 22ms\0""4ch 11ms\0""5ch 11ms\0""6ch 11ms\0""7ch 11ms\0""8ch 22ms\0""9ch 22ms\0""10ch 22ms""11ch 22ms""12ch 22ms" +#define LEN_SUBTYPE_Q2X2 "\004" +#define TR_SUBTYPE_Q2X2 "Q242""Q282" #define LEN_VTRIMINC TR("\006","\014") #define TR_VTRIMINC TR("Expo\0 ""xFin\0 ""Fin\0 ""Medium""Grov\0 ","Exponentiell""Extra Fin\0 ""Fin\0 ""Medium\0 ""Grov\0 ") @@ -893,6 +896,7 @@ #define TR_SYNCMENU "Synk [MENU]" #define TR_MULTI_RFTUNE TR(INDENT "Freq tune",INDENT "RF Freq. fine tune") #define TR_MULTI_VIDFREQ TR(INDENT "Vid. freq.", INDENT "Video frequency") +#define TR_MULTI_RFPOWER INDENT "RF Power" #define TR_MULTI_OPTION TR(INDENT "Option", INDENT "Option value") #define TR_MULTI_AUTOBIND TR(INDENT "Autobind",INDENT "Bind on powerup") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format")