From e2efe2ac702b8e7fd03ca6117bcb6057734faaff Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Fri, 15 Jul 2016 15:27:59 +0200 Subject: [PATCH] [TARANIS] Reset option value to 0 on change of multi protocol, fix string overwriting for option value --- radio/src/gui/taranis/menu_model_setup.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/radio/src/gui/taranis/menu_model_setup.cpp b/radio/src/gui/taranis/menu_model_setup.cpp index d59769fbf..9cdc9b642 100644 --- a/radio/src/gui/taranis/menu_model_setup.cpp +++ b/radio/src/gui/taranis/menu_model_setup.cpp @@ -775,8 +775,14 @@ void menuModelSetup(uint8_t event) CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].rfProtocol, DSM2_PROTO_LP45, DSM2_PROTO_DSMX); else if (IS_MODULE_MULTIMODULE(EXTERNAL_MODULE)) { CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].multi.rfProtocol, MM_RF_PROTO_FIRST, MM_RF_PROTO_LAST); - if (checkIncDec_Ret) - g_model.moduleData[EXTERNAL_MODULE].subType=0; + if (checkIncDec_Ret) { + g_model.moduleData[EXTERNAL_MODULE].subType = 0; + // Sensible default for DSM2 (same as for ppm): 6ch@11ms + if (g_model.moduleData[EXTERNAL_MODULE].multi.rfProtocol == MM_RF_PROTO_DSM2) + g_model.moduleData[EXTERNAL_MODULE].multi.optionValue = 6; + else + g_model.moduleData[EXTERNAL_MODULE].multi.optionValue = 0; + } } else g_model.moduleData[EXTERNAL_MODULE].rfProtocol = checkIncDec(event, g_model.moduleData[EXTERNAL_MODULE].rfProtocol, RF_PROTO_X16, RF_PROTO_LAST, EE_MODEL, isRfProtocolAvailable); @@ -936,9 +942,9 @@ void menuModelSetup(uint8_t event) case ITEM_MODEL_EXTERNAL_MODULE_FAILSAFE: { uint8_t moduleIdx = CURRENT_MODULE_EDITED(k); - ModuleData & moduleData = g_model.moduleData[moduleIdx]; - lcd_putsLeft(y, TR_FAILSAFE); if (IS_MODULE_XJT(moduleIdx)) { + ModuleData & moduleData = g_model.moduleData[moduleIdx]; + lcd_putsLeft(y, TR_FAILSAFE); lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_VFAILSAFE, moduleData.failsafeMode, menuHorizontalPosition==0 ? attr : 0); if (moduleData.failsafeMode == FAILSAFE_CUSTOM) lcdDrawText(MODEL_SETUP_2ND_COLUMN + MODEL_SETUP_SET_FAILSAFE_OFS, y, STR_SET, menuHorizontalPosition==1 ? attr : 0); if (attr) {