diff --git a/radio/src/gui/Taranis/helpers.cpp b/radio/src/gui/Taranis/helpers.cpp index c0f827d63..22b01baa5 100755 --- a/radio/src/gui/Taranis/helpers.cpp +++ b/radio/src/gui/Taranis/helpers.cpp @@ -343,6 +343,27 @@ bool isAssignableFunctionAvailable(int function) } } +bool isAvailableInResetSpecialFunction(int index) +{ + if (index >= FUNC_RESET_PARAM_FIRST_TELEM) { + TelemetrySensor & telemetrySensor = g_model.telemetrySensors[index-FUNC_RESET_PARAM_FIRST_TELEM]; + return telemetrySensor.isAvailable(); + } +#if TIMERS < 3 + else if (index == FUNC_RESET_TIMER3) { + return false; + } +#endif +#if TIMERS < 2 + else if (index == FUNC_RESET_TIMER2) { + return false; + } +#endif + else { + return true; + } +} + bool isModuleAvailable(int module) { return true; diff --git a/radio/src/gui/Taranis/menu_model_custom_functions.cpp b/radio/src/gui/Taranis/menu_model_custom_functions.cpp index be1a6535d..d08d6962d 100644 --- a/radio/src/gui/Taranis/menu_model_custom_functions.cpp +++ b/radio/src/gui/Taranis/menu_model_custom_functions.cpp @@ -192,7 +192,7 @@ void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFu } #endif else if (func == FUNC_SET_TIMER) { - maxParam = MAX_TIMERS-1; + maxParam = TIMERS-1; putsStrIdx(lcdNextPos, y, STR_TIMER, CFN_TIMER_INDEX(cfn)+1, attr); if (active) CFN_TIMER_INDEX(cfn) = checkIncDec(event, CFN_TIMER_INDEX(cfn), 0, maxParam, eeFlags); break; @@ -217,12 +217,10 @@ void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFu lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VFSWRESET, param, attr); } else { - if (param > FUNC_RESET_PARAM_FIRST_TELEM) { - INCDEC_ENABLE_CHECK(isSensorAvailableInResetSpecialFunction); - } TelemetrySensor * sensor = & g_model.telemetrySensors[param-FUNC_RESET_PARAM_FIRST_TELEM]; lcd_putsnAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, sensor->label, TELEM_LABEL_LEN, attr|ZCHAR); } + INCDEC_ENABLE_CHECK(isAvailableInResetSpecialFunction); } #if defined(OVERRIDE_CHANNEL_FUNCTION) else if (func == FUNC_OVERRIDE_CHANNEL) { diff --git a/radio/src/gui/Taranis/menus.h b/radio/src/gui/Taranis/menus.h index 79d577abc..4aca3681b 100755 --- a/radio/src/gui/Taranis/menus.h +++ b/radio/src/gui/Taranis/menus.h @@ -196,6 +196,7 @@ int8_t checkIncDecMovedSwitch(int8_t val); bool isThrottleSourceAvailable(int source); bool isLogicalSwitchFunctionAvailable(int function); bool isAssignableFunctionAvailable(int function); +bool isAvailableInResetSpecialFunction(int index); bool isLogicalSwitchAvailable(int index); bool isSwitchAvailableInLogicalSwitches(int swtch); bool isSwitchAvailableInCustomFunctions(int swtch); diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index 7f65e2343..6c833a41f 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -480,12 +480,6 @@ int lastUsedTelemetryIndex() return -1; } -bool isSensorAvailableInResetSpecialFunction(int index) -{ - TelemetrySensor & telemetrySensor = g_model.telemetrySensors[index-FUNC_RESET_PARAM_FIRST_TELEM]; - return telemetrySensor.isAvailable(); -} - void setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t instance, int32_t value, uint32_t unit, uint32_t prec) { for (int index=0; index