diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 66b13055d..a376b37fa 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -3784,12 +3784,10 @@ enum LimitsItems { #if defined(PCBTARANIS) #define LIMITS_MIN_MAX_OFFSET 1000 #define CONVERT_US_MIN_MAX(x) (((x)*1280)/250) - #define MIN_MAX_LIMIT (10*limit) #define MIN_MAX_ATTR attr|PREC1 #else #define LIMITS_MIN_MAX_OFFSET 100 #define CONVERT_US_MIN_MAX(x) ((int16_t(x)*128)/25) - #define MIN_MAX_LIMIT (limit) #define MIN_MAX_ATTR attr #endif @@ -3886,9 +3884,9 @@ void menuModelLimits(uint8_t event) #endif #if defined(PCBTARANIS) - int limit = (g_model.extendedLimits ? 125 : 100); + int limit = (g_model.extendedLimits ? LIMIT_EXT_MAX : 1000); #else - int8_t limit = (g_model.extendedLimits ? 125 : 100); + int8_t limit = (g_model.extendedLimits ? LIMIT_EXT_MAX : 100); #endif #if defined(PCBTARANIS) @@ -3939,24 +3937,24 @@ void menuModelLimits(uint8_t event) case ITEM_LIMITS_MIN: #if defined(PCBTARANIS) - if (GV_IS_GV_VALUE(ld->min, -1250, 1250) || (attr && event == EVT_KEY_LONG(KEY_ENTER))) { - ld->min = GVAR_MENU_ITEM(LIMITS_MIN_POS, y, ld->min, -1250, 1250, MIN_MAX_ATTR, DBLKEYS_1000, event); + if (GV_IS_GV_VALUE(ld->min, -LIMIT_EXT_MAX, LIMIT_EXT_MAX) || (attr && event == EVT_KEY_LONG(KEY_ENTER))) { + ld->min = GVAR_MENU_ITEM(LIMITS_MIN_POS, y, ld->min, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, MIN_MAX_ATTR, DBLKEYS_1000, event); break; } #endif lcd_outdezAtt(LIMITS_MIN_POS, y, MIN_MAX_DISPLAY(ld->min-LIMITS_MIN_MAX_OFFSET), MIN_MAX_ATTR); - if (active) ld->min = LIMITS_MIN_MAX_OFFSET + checkIncDecModel(event, ld->min-LIMITS_MIN_MAX_OFFSET, -MIN_MAX_LIMIT, 0); + if (active) ld->min = LIMITS_MIN_MAX_OFFSET + checkIncDecModel(event, ld->min-LIMITS_MIN_MAX_OFFSET, -limit, 0); break; case ITEM_LIMITS_MAX: #if defined(PCBTARANIS) - if (GV_IS_GV_VALUE(ld->max, -1250, 1250) || (attr && event == EVT_KEY_LONG(KEY_ENTER))) { - ld->max = GVAR_MENU_ITEM(LIMITS_MAX_POS, y, ld->max, -1250, 1250, MIN_MAX_ATTR, DBLKEYS_1000, event); + if (GV_IS_GV_VALUE(ld->max, -LIMIT_EXT_MAX, LIMIT_EXT_MAX) || (attr && event == EVT_KEY_LONG(KEY_ENTER))) { + ld->max = GVAR_MENU_ITEM(LIMITS_MAX_POS, y, ld->max, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, MIN_MAX_ATTR, DBLKEYS_1000, event); break; } #endif lcd_outdezAtt(LIMITS_MAX_POS, y, MIN_MAX_DISPLAY(ld->max+LIMITS_MIN_MAX_OFFSET), MIN_MAX_ATTR); - if (active) ld->max = -LIMITS_MIN_MAX_OFFSET + checkIncDecModelZero(event, ld->max+LIMITS_MIN_MAX_OFFSET, +MIN_MAX_LIMIT); + if (active) ld->max = -LIMITS_MIN_MAX_OFFSET + checkIncDecModelZero(event, ld->max+LIMITS_MIN_MAX_OFFSET, +limit); break; case ITEM_LIMITS_DIRECTION: diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 2859a0dd3..3a0b731aa 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -501,14 +501,16 @@ PACK(typedef struct t_ExpoData { #if defined(PCBTARANIS) #define limit_min_max_t int16_t - #define LIMIT_MAX(lim) (GV_IS_GV_VALUE(lim->max, 0, 1250) ? GET_GVAR(lim->max, 0, 1250, s_perout_flight_phase)*10 : lim->max+1000) - #define LIMIT_MIN(lim) (GV_IS_GV_VALUE(lim->min, -1250, 0) ? GET_GVAR(lim->min, -1250, 0, s_perout_flight_phase)*10 : lim->min-1000) + #define LIMIT_EXT_MAX (150*10) + #define LIMIT_MAX(lim) (GV_IS_GV_VALUE(lim->max, -LIMIT_EXT_MAX, LIMIT_EXT_MAX) ? GET_GVAR(lim->max, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, s_perout_flight_phase)*10 : lim->max+1000) + #define LIMIT_MIN(lim) (GV_IS_GV_VALUE(lim->min, -LIMIT_EXT_MAX, LIMIT_EXT_MAX) ? GET_GVAR(lim->min, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, s_perout_flight_phase)*10 : lim->min-1000) #define LIMIT_OFS(lim) (GV_IS_GV_VALUE(lim->offset, -1000, 1000) ? GET_GVAR(lim->offset, -1000, 1000, s_perout_flight_phase)*10 : lim->offset) #define LIMIT_MAX_RESX(lim) calc1000toRESX(LIMIT_MAX(lim)) #define LIMIT_MIN_RESX(lim) calc1000toRESX(LIMIT_MIN(lim)) #define LIMIT_OFS_RESX(lim) calc1000toRESX(LIMIT_OFS(lim)) #else #define limit_min_max_t int8_t + #define LIMIT_EXT_MAX 125 #define LIMIT_MAX(lim) (lim->max+100) #define LIMIT_MIN(lim) (lim->min-100) #define LIMIT_OFS(lim) (lim->offset) diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 2286282ce..ae54e4f4e 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -3502,7 +3502,7 @@ void evalFunctions() } #endif else { - SET_GVAR(CFN_GVAR_INDEX(sd), limit((getvalue_t)-1250, getValue(CFN_PARAM(sd)), (getvalue_t)1250) / 10, s_perout_flight_phase); + SET_GVAR(CFN_GVAR_INDEX(sd), limit((getvalue_t)-LIMIT_EXT_MAX, getValue(CFN_PARAM(sd)), (getvalue_t)LIMIT_EXT_MAX) / 10, s_perout_flight_phase); } break; #endif