diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index 3b640c620..7727db70b 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -1015,7 +1015,8 @@ void menuModelSetup(event_t event) case ITEM_MODEL_SETUP_INTERNAL_MODULE_TYPE: { lcdDrawTextAlignedLeft(y, STR_MODE); - lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_PROTOCOLS, g_model.moduleData[INTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0); +#if defined(INTERNAL_MODULE_PXX1) + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_INTERNAL_MODULE_PROTOCOLS, g_model.moduleData[INTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0); if (isModuleXJT(INTERNAL_MODULE)) lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_ACCST_RF_PROTOCOLS, 1+g_model.moduleData[INTERNAL_MODULE].rfProtocol, menuHorizontalPosition==1 ? attr : 0); else if (isModuleXJT2(INTERNAL_MODULE)) @@ -1042,6 +1043,24 @@ void menuModelSetup(event_t event) g_model.moduleData[INTERNAL_MODULE].subType = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].subType, 0, MODULE_SUBTYPE_ISRM_PXX2_LAST, EE_MODEL, isRfProtocolAvailable); } } +#else + uint8_t index = 0; + if (g_model.moduleData[INTERNAL_MODULE].type == MODULE_TYPE_PXX2_ISRM) { + index = 1 + g_model.moduleData[INTERNAL_MODULE].subType; + } + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_ISRM_PXX2_RF_PROTOCOLS, index, attr); + if (attr) { + index = checkIncDec(event, index, 0, 3, EE_MODEL); + if (checkIncDec_Ret) { + memclear(&g_model.moduleData[INTERNAL_MODULE], sizeof(ModuleData)); + if (index > 0) { + g_model.moduleData[INTERNAL_MODULE].type = MODULE_TYPE_PXX2_ISRM; + g_model.moduleData[INTERNAL_MODULE].subType = index - 1; + g_model.moduleData[INTERNAL_MODULE].channelsCount = defaultModuleChannels_M8(INTERNAL_MODULE); + } + } + } +#endif break; } #endif @@ -1058,7 +1077,7 @@ void menuModelSetup(event_t event) case ITEM_MODEL_SETUP_EXTERNAL_MODULE_TYPE: lcdDrawTextAlignedLeft(y, STR_MODE); - lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0); + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_EXTERNAL_MODULE_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0); if (isModuleXJT(EXTERNAL_MODULE)) lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_ACCST_RF_PROTOCOLS, 1+g_model.moduleData[EXTERNAL_MODULE].rfProtocol, menuHorizontalPosition==1 ? attr : 0); else if (isModuleDSM2(EXTERNAL_MODULE)) diff --git a/radio/src/gui/212x64/model_setup.cpp b/radio/src/gui/212x64/model_setup.cpp index 0cda2d02e..c72951aeb 100644 --- a/radio/src/gui/212x64/model_setup.cpp +++ b/radio/src/gui/212x64/model_setup.cpp @@ -668,7 +668,7 @@ void menuModelSetup(event_t event) #if defined(INTERNAL_MODULE_PPM) case ITEM_MODEL_SETUP_INTERNAL_MODULE_MODE: lcdDrawTextAlignedLeft(y, STR_MODE); - lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_PROTOCOLS, g_model.moduleData[INTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0); + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_INTERNAL_MODULE_PROTOCOLS, g_model.moduleData[INTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0); if (isModuleXJT(INTERNAL_MODULE)) lcdDrawTextAtIndex(MODEL_SETUP_3RD_COLUMN, y, STR_ACCST_RF_PROTOCOLS, 1+g_model.moduleData[INTERNAL_MODULE].rfProtocol, menuHorizontalPosition==1 ? attr : 0); if (attr && s_editMode>0) { @@ -728,7 +728,7 @@ void menuModelSetup(event_t event) case ITEM_MODEL_SETUP_EXTERNAL_MODULE_MODE: lcdDrawTextAlignedLeft(y, STR_MODE); - lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0); + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_EXTERNAL_MODULE_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0); if (isModuleXJT(EXTERNAL_MODULE)) lcdDrawTextAtIndex(MODEL_SETUP_3RD_COLUMN, y, STR_ACCST_RF_PROTOCOLS, 1+g_model.moduleData[EXTERNAL_MODULE].rfProtocol, menuHorizontalPosition==1 ? attr : 0); else if (isModuleDSM2(EXTERNAL_MODULE)) diff --git a/radio/src/gui/480x272/model_setup.cpp b/radio/src/gui/480x272/model_setup.cpp index 7540adae8..b10a178fd 100644 --- a/radio/src/gui/480x272/model_setup.cpp +++ b/radio/src/gui/480x272/model_setup.cpp @@ -927,7 +927,7 @@ bool menuModelSetup(event_t event) case ITEM_MODEL_INTERNAL_MODULE_MODE: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MODE); - lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_PROTOCOLS, g_model.moduleData[INTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0); + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_INTERNAL_MODULE_PROTOCOLS, g_model.moduleData[INTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0); if (isModuleXJT(INTERNAL_MODULE)) lcdDrawTextAtIndex(MODEL_SETUP_3RD_COLUMN, y, STR_ACCST_RF_PROTOCOLS, 1+g_model.moduleData[INTERNAL_MODULE].rfProtocol, menuHorizontalPosition==1 ? attr : 0); if (attr) { @@ -1117,7 +1117,7 @@ bool menuModelSetup(event_t event) case ITEM_MODEL_EXTERNAL_MODULE_MODE: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MODE); - lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0); + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_EXTERNAL_MODULE_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0); if (isModuleXJT(EXTERNAL_MODULE)) lcdDrawTextAtIndex(MODEL_SETUP_3RD_COLUMN, y, STR_ACCST_RF_PROTOCOLS, 1+g_model.moduleData[EXTERNAL_MODULE].rfProtocol, (menuHorizontalPosition==1 ? attr : 0)); else if (isModuleDSM2(EXTERNAL_MODULE)) diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index c067c84b3..025540084 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -65,7 +65,8 @@ ISTR(USBMODES); ISTR(JACKMODES); ISTR(VFAILSAFE); ISTR(VTRAINERMODES); -ISTR(MODULE_PROTOCOLS); +ISTR(EXTERNAL_MODULE_PROTOCOLS); +ISTR(INTERNAL_MODULE_PROTOCOLS); ISTR(R9M_REGION); ISTR(R9M_FCC_POWER_VALUES); ISTR(R9M_LBT_POWER_VALUES); diff --git a/radio/src/translations.h b/radio/src/translations.h index edd95d1de..9623fdb15 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -153,7 +153,8 @@ extern const char STR_JACKMODES[]; extern const char STR_VFAILSAFE[]; extern const char STR_VTRAINERMODES[]; -extern const char STR_MODULE_PROTOCOLS[]; +extern const char STR_EXTERNAL_MODULE_PROTOCOLS[]; +extern const char STR_INTERNAL_MODULE_PROTOCOLS[]; extern const char STR_R9M_REGION[]; extern const char STR_R9M_FCC_POWER_VALUES[]; extern const char STR_R9M_LBT_POWER_VALUES[]; diff --git a/radio/src/translations/untranslated.h b/radio/src/translations/untranslated.h index 9b14792dd..e5758089f 100644 --- a/radio/src/translations/untranslated.h +++ b/radio/src/translations/untranslated.h @@ -82,18 +82,16 @@ #define TR_VSRCRAW "---\0" TR_STICKS_VSRCRAW TR_POTS_VSRCRAW TR_ROTARY_ENCODERS TR_GYR_VSRCRAW "MAX\0" TR_CYC_VSRCRAW TR_TRIMS_VSRCRAW TR_SW_VSRCRAW TR_EXTRA_VSRCRAW -#if 1 // defined(PXX1) -#define LEN_MODULE_PROTOCOLS "\014" -#define TR_MODULE_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""ISRM\0 ""DSM2\0 ""CRSF\0 ""MULT\0 ""R9M\0 ""R9M ACCESS\0 ""R9MLite\0 ""R9ML ACCESS\0""R9MLP ACCESS""SBUS" -#else -#define LEN_MODULE_PROTOCOLS "\010" -#define TR_MODULE_PROTOCOLS "OFF\0 ""PPM\0 ""ACCST\0 ""ISRM\0 ""DSM2\0 ""CRSF\0 ""MULT\0 ""---\0 ""R9M\0 ""---\0 ""R9ML\0 ""R9MLP\0 ""SBUS\0" -#endif +#define LEN_EXTERNAL_MODULE_PROTOCOLS "\014" +#define TR_EXTERNAL_MODULE_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""ISRM\0 ""DSM2\0 ""CRSF\0 ""MULT\0 ""R9M\0 ""R9M ACCESS\0 ""R9MLite\0 ""R9ML ACCESS\0""R9MLP ACCESS""SBUS" + +#define LEN_INTERNAL_MODULE_PROTOCOLS LEN_EXTERNAL_MODULE_PROTOCOLS +#define TR_INTERNAL_MODULE_PROTOCOLS TR_EXTERNAL_MODULE_PROTOCOLS #define LEN_ACCST_RF_PROTOCOLS "\004" #define TR_ACCST_RF_PROTOCOLS "OFF\0""D16\0""D8\0 ""LR12" -#if defined(PXX1) +#if defined(INTERNAL_MODULE_PXX1) #define LEN_ISRM_PXX2_RF_PROTOCOLS "\006" #define TR_ISRM_PXX2_RF_PROTOCOLS "ACCESS""D16\0 ""LR12" #else