From 4b4c9728be9c025bd40b187bb19d3cdcafa480f8 Mon Sep 17 00:00:00 2001 From: "bsongis@gmail.com" Date: Sun, 31 Mar 2013 19:34:32 +0000 Subject: [PATCH] [Taranis] All 'old' sensors now supported --- src/maths.cpp | 27 --------------------------- src/opentx.cpp | 2 +- src/opentx.h | 2 -- src/telemetry_frsky.cpp | 27 +++++++++++++++++++++++++++ src/view_telemetry.cpp | 2 +- 5 files changed, 29 insertions(+), 31 deletions(-) diff --git a/src/maths.cpp b/src/maths.cpp index 489612853..ef153ac7c 100644 --- a/src/maths.cpp +++ b/src/maths.cpp @@ -48,33 +48,6 @@ lcdint_t applyChannelRatio(uint8_t channel, lcdint_t val) } #endif -#if defined(FRSKY_HUB) || defined(WS_HOW_HIGH) -void checkMinMaxAltitude() -{ - if (TELEMETRY_ALT_BP > frskyData.hub.maxAltitude) - frskyData.hub.maxAltitude = TELEMETRY_ALT_BP; - if (TELEMETRY_ALT_BP < frskyData.hub.minAltitude) - frskyData.hub.minAltitude = TELEMETRY_ALT_BP; -} -#endif - -#if defined(VARIO) && (defined(FRSKY_HUB) || defined(WS_HOW_HIGH)) -void evalVario(int16_t altitude_bp, uint16_t altitude_ap) -{ - int32_t varioAltitude_cm = (int32_t)altitude_bp * 100 + (altitude_bp > 0 ? altitude_ap : -altitude_ap); - uint8_t varioAltitudeQueuePointer = frskyData.hub.varioAltitudeQueuePointer + 1; - if (varioAltitudeQueuePointer >= VARIO_QUEUE_LENGTH) - varioAltitudeQueuePointer = 0; - frskyData.hub.varioAltitudeQueuePointer = varioAltitudeQueuePointer; - frskyData.hub.varioSpeed -= frskyData.hub.varioAltitudeQueue[varioAltitudeQueuePointer] ; - frskyData.hub.varioAltitudeQueue[varioAltitudeQueuePointer] = varioAltitude_cm - frskyData.hub.varioAltitude_cm; - frskyData.hub.varioAltitude_cm = varioAltitude_cm; - frskyData.hub.varioSpeed += frskyData.hub.varioAltitudeQueue[varioAltitudeQueuePointer] ; -} -#else -#define evalVario(...) -#endif - #if defined(FRSKY_HUB) void extractLatitudeLongitude(uint32_t * latitude, uint32_t * longitude) { diff --git a/src/opentx.cpp b/src/opentx.cpp index 7f525af53..a9b983d55 100644 --- a/src/opentx.cpp +++ b/src/opentx.cpp @@ -1355,7 +1355,7 @@ void setGVarValue(uint8_t idx, int16_t value, int8_t phase) #if defined(FRSKY) || defined(CPUARM) void putsTelemetryValue(xcoord_t x, uint8_t y, lcdint_t val, uint8_t unit, uint8_t att) { -#ifdef IMPERIAL_UNITS +#if defined(IMPERIAL_UNITS) if (unit == UNIT_DEGREES) { val += 18 ; val *= 115 ; diff --git a/src/opentx.h b/src/opentx.h index 4b31a55c3..f63fcd50c 100644 --- a/src/opentx.h +++ b/src/opentx.h @@ -1357,8 +1357,6 @@ void putsTelemetryChannel(xcoord_t x, uint8_t y, uint8_t channel, lcdint_t val, #define EARTH_RADIUSKM ((uint32_t)6371) #define EARTH_RADIUS ((uint32_t)111194) -void checkMinMaxAltitude(); -void evalVario(int16_t altitude_bp, uint16_t altitude_ap); void getGpsPilotPosition(); void getGpsDistance(); void varioWakeup(); diff --git a/src/telemetry_frsky.cpp b/src/telemetry_frsky.cpp index 6df6219ea..b5cdce68b 100644 --- a/src/telemetry_frsky.cpp +++ b/src/telemetry_frsky.cpp @@ -69,6 +69,33 @@ uint8_t frskyUsrStreaming = 0; uint8_t link_counter = 0; FrskyData frskyData; +#if defined(FRSKY_HUB) || defined(WS_HOW_HIGH) +void checkMinMaxAltitude() +{ + if (TELEMETRY_ALT_BP > frskyData.hub.maxAltitude) + frskyData.hub.maxAltitude = TELEMETRY_ALT_BP; + if (TELEMETRY_ALT_BP < frskyData.hub.minAltitude) + frskyData.hub.minAltitude = TELEMETRY_ALT_BP; +} +#endif + +#if defined(VARIO) && !defined(FRSKY_SPORT) && (defined(FRSKY_HUB) || defined(WS_HOW_HIGH)) +void evalVario(int16_t altitude_bp, uint16_t altitude_ap) +{ + int32_t varioAltitude_cm = (int32_t)altitude_bp * 100 + (altitude_bp > 0 ? altitude_ap : -altitude_ap); + uint8_t varioAltitudeQueuePointer = frskyData.hub.varioAltitudeQueuePointer + 1; + if (varioAltitudeQueuePointer >= VARIO_QUEUE_LENGTH) + varioAltitudeQueuePointer = 0; + frskyData.hub.varioAltitudeQueuePointer = varioAltitudeQueuePointer; + frskyData.hub.varioSpeed -= frskyData.hub.varioAltitudeQueue[varioAltitudeQueuePointer] ; + frskyData.hub.varioAltitudeQueue[varioAltitudeQueuePointer] = varioAltitude_cm - frskyData.hub.varioAltitude_cm; + frskyData.hub.varioAltitude_cm = varioAltitude_cm; + frskyData.hub.varioSpeed += frskyData.hub.varioAltitudeQueue[varioAltitudeQueuePointer] ; +} +#else +#define evalVario(...) +#endif + #if defined(FRSKY_HUB) typedef enum { TS_IDLE = 0, // waiting for 0x5e frame marker diff --git a/src/view_telemetry.cpp b/src/view_telemetry.cpp index 76b0fe9c1..9f19a2686 100644 --- a/src/view_telemetry.cpp +++ b/src/view_telemetry.cpp @@ -199,7 +199,7 @@ void putsTelemetryChannel(xcoord_t x, uint8_t y, uint8_t channel, lcdint_t val, putsTelemetryValue(x, y, val, UNIT_RAW, att); break; -#if LCD_W >= 212 +#if defined(FRSKY_SPORT) case TELEM_ALT-1: putsTelemetryValue(x, y, val/10, UNIT_METERS, att|PREC1); break;