From aabe510663558dabac4773f1e812178435e4b61e Mon Sep 17 00:00:00 2001 From: bsongis Date: Thu, 10 May 2012 16:57:41 +0000 Subject: [PATCH] VARIO option introduced --- src/Makefile | 13 ++++++++----- src/frsky.cpp | 4 +++- src/model_menus.cpp | 24 ++++++++++++++++++------ src/myeeprom.h | 9 ++++----- 4 files changed, 33 insertions(+), 17 deletions(-) diff --git a/src/Makefile b/src/Makefile index 6e2584e3e..f3c719e29 100644 --- a/src/Makefile +++ b/src/Makefile @@ -86,6 +86,10 @@ FRSKY_HUB = YES # Values = YES, NO WS_HOW_HIGH = YES +# WS HowHigh +# Values = YES, NO +VARIO = YES + # SDCARD Logs # Values = YES, NO SDCARD = NO @@ -278,6 +282,10 @@ ifeq ($(EXT), FRSKY) MODS:=${MODS}W CPPDEFS += -DWS_HOW_HIGH endif + # If Vario is enabled + ifeq ($(VARIO), YES) + CPPDEFS += -DVARIO + endif endif ifeq ($(DEBUG), YES) @@ -334,11 +342,6 @@ ifeq ($(PCB), V4) CPPDEFS += -DEXTRA_ROTARY_ENCODERS MODS:=${MODS}X endif - - ifeq ($(VARIO_EXTENDED), YES) - CPPDEFS += -DVARIO_EXTENDED - MODS:=${MODS}V - endif endif diff --git a/src/frsky.cpp b/src/frsky.cpp index df23b46d5..41a38f536 100644 --- a/src/frsky.cpp +++ b/src/frsky.cpp @@ -170,6 +170,7 @@ int16_t applyChannelRatio(uint8_t channel, int16_t val) void evalVario(int16_t altitude_bp, uint16_t altitude_ap) { +#if defined(VARIO) int32_t varioAltitude_cm = (int32_t)altitude_bp * 100 + (altitude_bp > 0 ? altitude_ap : -altitude_ap); uint8_t varioAltitudeQueuePointer = frskyHubData.varioAltitudeQueuePointer + 1; if (varioAltitudeQueuePointer == VARIO_QUEUE_LENGTH) @@ -179,6 +180,7 @@ void evalVario(int16_t altitude_bp, uint16_t altitude_ap) frskyHubData.varioAltitudeQueue[varioAltitudeQueuePointer] = varioAltitude_cm - frskyHubData.varioAltitude_cm; frskyHubData.varioAltitude_cm = varioAltitude_cm; frskyHubData.varioSpeed += frskyHubData.varioAltitudeQueue[varioAltitudeQueuePointer] ; +#endif } void checkMinMaxAltitude() @@ -642,7 +644,7 @@ void check_frsky() } #endif -#if defined(FRSKY_HUB) || defined(WS_HOW_HIGH) +#if defined(VARIO) static uint16_t s_varioTmr = 0; if (isFunctionActive(FUNC_VARIO)) { #if defined(AUDIO) diff --git a/src/model_menus.cpp b/src/model_menus.cpp index 251354879..829bfb56e 100644 --- a/src/model_menus.cpp +++ b/src/model_menus.cpp @@ -2169,9 +2169,11 @@ enum menuProcTelemetryItems { ITEM_TELEMETRY_USR_PROTO, ITEM_TELEMETRY_USR_BLADES, #endif +#if defined(VARIO) ITEM_TELEMETRY_VARIO_LABEL, ITEM_TELEMETRY_VARIO_SOURCE, ITEM_TELEMETRY_VARIO_SPEED, +#endif ITEM_TELEMETRY_CUSTOM_SCREEN_LABEL, ITEM_TELEMETRY_CUSTOM_SCREEN_LINE1, ITEM_TELEMETRY_CUSTOM_SCREEN_LINE2, @@ -2181,18 +2183,26 @@ enum menuProcTelemetryItems { ITEM_TELEMETRY_GAUGES_LINE1, ITEM_TELEMETRY_GAUGES_LINE2, ITEM_TELEMETRY_GAUGES_LINE3, - ITEM_TELEMETRY_GAUGES_LINE4 + ITEM_TELEMETRY_GAUGES_LINE4, + ITEM_TELEMETRY_MAX }; +#if defined(FRSKY_HUB) || defined(WS_HOW_HIGH) +#define USRDATA_LINES (uint8_t)-1, 0, 0, +#else +#define USRDATA_LINES +#endif +#if defined(VARIO) +#define VARIO_LINES (uint8_t)-1, 0, 1, +#else +#define VARIO_LINES +#endif + #ifdef FRSKY #define TELEM_COL2 (8*FW-2) void menuProcTelemetry(uint8_t event) { -#if defined(FRSKY_HUB) || defined(WS_HOW_HIGH) - MENU(STR_MENUTELEMETRY, menuTabModel, e_Telemetry, 30, {0, (uint8_t)-1, 1, 0, 2, 2, (uint8_t)-1, 1, 0, 2, 2, (uint8_t)-1, 1, 1, (uint8_t)-1, 0, 0, (uint8_t)-1, 0, 1, (uint8_t)-1, 1, 1, 1, 1, (uint8_t)-1, 2, 2, 2, 2}); -#else - MENU(STR_MENUTELEMETRY, menuTabModel, e_Telemetry, 24, {0, (uint8_t)-1, 1, 0, 2, 2, (uint8_t)-1, 1, 0, 2, 2, (uint8_t)-1, 1, 1, (uint8_t)-1, 1, 1, 1, 1, (uint8_t)-1, 2, 2, 2, 2}); -#endif + MENU(STR_MENUTELEMETRY, menuTabModel, e_Telemetry, ITEM_TELEMETRY_MAX+1, {0, (uint8_t)-1, 1, 0, 2, 2, (uint8_t)-1, 1, 0, 2, 2, (uint8_t)-1, 1, 1, USRDATA_LINES VARIO_LINES (uint8_t)-1, 1, 1, 1, 1, (uint8_t)-1, 2, 2, 2, 2}); uint8_t sub = m_posVert - 1; @@ -2330,6 +2340,7 @@ void menuProcTelemetry(uint8_t event) break; #endif +#if defined(VARIO) case ITEM_TELEMETRY_VARIO_LABEL: lcd_putsLeft(y, STR_VARIO); break; @@ -2359,6 +2370,7 @@ void menuProcTelemetry(uint8_t event) } } break; +#endif case ITEM_TELEMETRY_CUSTOM_SCREEN_LABEL: lcd_putsLeft(y, STR_DISPLAY); diff --git a/src/myeeprom.h b/src/myeeprom.h index 6d31f6655..abc99e85d 100644 --- a/src/myeeprom.h +++ b/src/myeeprom.h @@ -110,12 +110,11 @@ enum BeeperMode { #else #define HAPTIC_OPTION 0x00 #endif -#if defined(DEBUG) -#define DEBUG_OPTION 0x04 +#if defined(VARIO) +#define VARIO_OPTION 0x04 #else -#define DEBUG_OPTION 0x00 +#define VARIO_OPTION 0x00 #endif - #if defined(PXX) #define PXX_OPTION 0x10 #else @@ -127,7 +126,7 @@ enum BeeperMode { #define DSM2_OPTION 0x00 #endif -#define FW_OPTIONS (FRSKY_OPTION|HAPTIC_OPTION|DEBUG_OPTION|PXX_OPTION|DSM2_OPTION) +#define FW_OPTIONS (FRSKY_OPTION|HAPTIC_OPTION|VARIO_OPTION|PXX_OPTION|DSM2_OPTION) #define ALTERNATE_VIEW 0x10 PACK(typedef struct t_EEGeneral {