diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index 5dc8d8ac5a..e3b89c9d7e 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -46,7 +46,7 @@ option(TRACE_LUA_INTERNALS "Turn on traces for Lua internals" OFF) option(FRSKY_STICKS "Reverse sticks for FrSky sticks" OFF) option(NANO "Use nano newlib and binalloc") option(NIGHTLY_BUILD_WARNING "Warn this is a nightly build" OFF) -option(MODULE_R9M_FLEX "Add R9M options for non certified firmwwares" OFF) +option(R9M_PROTO_FLEX "Add R9M options for non certified firmwwares" OFF) option(FRSKY_RELEASE "Used to build FrSky released firmware" OFF) # since we reset all default CMAKE compiler flags for firmware builds, provide an alternate way for user to specify additional flags. @@ -308,8 +308,8 @@ if(NIGHTLY_BUILD_WARNING) add_definitions(-DNIGHTLY_BUILD_WARNING) endif() -if(MODULE_R9M_FLEX) - add_definitions(-DMODULE_R9M_FLEX) +if(R9M_PROTO_FLEX) + add_definitions(-DR9M_PROTO_FLEX) endif() if(FRSKY_RELEASE) diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index 7934e9dbce..3b640c620d 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -1015,7 +1015,6 @@ void menuModelSetup(event_t event) case ITEM_MODEL_SETUP_INTERNAL_MODULE_TYPE: { lcdDrawTextAlignedLeft(y, STR_MODE); -#if defined(PXX1) lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_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); @@ -1043,24 +1042,6 @@ 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 @@ -1078,8 +1059,6 @@ 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); - if (isModuleR9M2(EXTERNAL_MODULE)) - lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_R9M_PXX2_RF_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==1 ? 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)) @@ -1117,8 +1096,6 @@ void menuModelSetup(event_t event) } break; case 1: - if (isModuleR9M2(EXTERNAL_MODULE)) - CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, MODULE_SUBTYPE_R9M_PXX2_LAST); if (isModuleDSM2(EXTERNAL_MODULE)) CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].rfProtocol, DSM2_PROTO_LP45, DSM2_PROTO_DSMX); else if (isModuleR9M(EXTERNAL_MODULE)) { diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index 8788bc903b..9e3f533dd5 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -514,7 +514,7 @@ bool isSourceAvailableInResetSpecialFunction(int index) #if defined(PCBXLITE) bool isR9MModeAvailable(int mode) { -#if defined(MODULE_R9M_FLEX) +#if defined(R9M_PROTO_FLEX) return mode >= MODULE_SUBTYPE_R9M_EUPLUS; #else return mode <= MODULE_SUBTYPE_R9M_EU; @@ -524,7 +524,7 @@ bool isR9MModeAvailable(int mode) #else bool isR9MModeAvailable(int mode) { -#if defined(MODULE_R9M_FLEX) +#if defined(R9M_PROTO_FLEX) return mode < MODULE_SUBTYPE_R9M_EUPLUS; #else return true; @@ -611,7 +611,12 @@ bool isExternalModuleAvailable(int moduleType) return false; #endif -#if defined(FRSKY_RELEASE) +#if !defined(XJT) + if (moduleType == MODULE_TYPE_PXX1_XJT) + return false; +#endif + +#if !defined(R9M_SIZE_STD) if (moduleType == MODULE_TYPE_PXX1_R9M) return false; #endif diff --git a/radio/src/pulses/modules_constants.h b/radio/src/pulses/modules_constants.h index 83fd1fd1a7..deec44c12b 100644 --- a/radio/src/pulses/modules_constants.h +++ b/radio/src/pulses/modules_constants.h @@ -37,7 +37,7 @@ enum ModuleSubtypeR9M_PXX2 { MODULE_SUBTYPE_R9M_PXX2_ACCESS, MODULE_SUBTYPE_R9M_PXX2_FCC, MODULE_SUBTYPE_R9M_PXX2_EU, -#if defined(MODULE_R9M_FLEX) +#if defined(R9M_PROTO_FLEX) MODULE_SUBTYPE_R9M_PXX2_FLEX, #endif MODULE_SUBTYPE_R9M_PXX2_COUNT, diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index d2a2d222aa..ce44b39282 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -155,7 +155,7 @@ inline bool isModuleRFAccess(uint8_t idx) return g_model.moduleData[idx].subType == MODULE_SUBTYPE_ISRM_PXX2_ACCESS; } else if (isModuleR9M2(idx)) { - return g_model.moduleData[idx].subType == MODULE_SUBTYPE_R9M_PXX2_ACCESS; + return true; } else { return false; diff --git a/radio/src/pulses/pxx2.cpp b/radio/src/pulses/pxx2.cpp index cf33ee02a6..99f9474ad1 100644 --- a/radio/src/pulses/pxx2.cpp +++ b/radio/src/pulses/pxx2.cpp @@ -227,10 +227,7 @@ void Pxx2Pulses::setupAccstBindFrame(uint8_t module) for (uint8_t i=0; i