From 326ea5cfb8ac867f18e78251b980a77d54415151 Mon Sep 17 00:00:00 2001 From: bsongis Date: Wed, 21 Mar 2012 20:13:14 +0000 Subject: [PATCH] Vario Speed --- src/frsky.cpp | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/src/frsky.cpp b/src/frsky.cpp index d0f046c8e..52c097eb1 100644 --- a/src/frsky.cpp +++ b/src/frsky.cpp @@ -249,25 +249,23 @@ void parseTelemHubByte(uint8_t byte) frskyHubData.maxAltitude = frskyHubData.baroAltitude_bp; if (frskyHubData.baroAltitude_bp < frskyHubData.minAltitude) frskyHubData.minAltitude = frskyHubData.baroAltitude_bp; - break; - case offsetof(FrskyHubData, baroAltitude_ap): - { - int16_t actVario = frskyHubData.baroAltitude_bp - frskyHubData.lastBaroAltitude_bp; - frskyHubData.varioAcc2 = frskyHubData.varioAcc2 - frskyHubData.varioQueue[frskyHubData.queuePointer]; - frskyHubData.varioQueue[frskyHubData.queuePointer] = actVario; - uint8_t tmp = frskyHubData.queuePointer + 5; - if (tmp >= 10) - tmp -= 10; - tmp = (uint8_t)frskyHubData.varioQueue[tmp]; - frskyHubData.varioAcc2 = frskyHubData.varioAcc2 + (int8_t)tmp; - frskyHubData.varioAcc1 = frskyHubData.varioAcc1 + actVario - (int8_t)tmp; - frskyHubData.varioSpeed = frskyHubData.varioAcc2 - frskyHubData.varioAcc1; - if (++frskyHubData.queuePointer >= 10) - frskyHubData.queuePointer=0; - frskyHubData.lastBaroAltitude_bp = frskyHubData.baroAltitude_bp; + { + int16_t actVario = frskyHubData.baroAltitude_bp - frskyHubData.lastBaroAltitude_bp; + frskyHubData.varioAcc2 = frskyHubData.varioAcc2 - frskyHubData.varioQueue[frskyHubData.queuePointer]; + frskyHubData.varioQueue[frskyHubData.queuePointer] = actVario; + uint8_t tmp = frskyHubData.queuePointer + 5; + if (tmp >= 10) + tmp -= 10; + tmp = (uint8_t)frskyHubData.varioQueue[tmp]; + frskyHubData.varioAcc2 = frskyHubData.varioAcc2 + (int8_t)tmp; + frskyHubData.varioAcc1 = frskyHubData.varioAcc1 + actVario - (int8_t)tmp; + frskyHubData.varioSpeed = frskyHubData.varioAcc2 - frskyHubData.varioAcc1; + if (++frskyHubData.queuePointer >= 10) + frskyHubData.queuePointer = 0; + frskyHubData.lastBaroAltitude_bp = frskyHubData.baroAltitude_bp; + } break; - } case offsetof(FrskyHubData, gpsAltitude_ap): if (!frskyHubData.gpsAltitudeOffset)