From e9e6cfd19b7c7ac657330ae8f131f283982f6c5d Mon Sep 17 00:00:00 2001 From: bsongis Date: Thu, 10 May 2012 07:13:23 +0000 Subject: [PATCH] FrSky A1/A2 averaged only if unit is volts --- src/frsky.cpp | 9 +++++---- src/frsky.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/frsky.cpp b/src/frsky.cpp index 8f2b97cfe..df23b46d5 100644 --- a/src/frsky.cpp +++ b/src/frsky.cpp @@ -389,8 +389,8 @@ void processFrskyPacket(uint8_t *packet) } break; case LINKPKT: // A1/A2/RSSI values - frskyTelemetry[0].set(packet[1]); - frskyTelemetry[1].set(packet[2]); + frskyTelemetry[0].set(packet[1], g_model.frsky.channels[0].type); + frskyTelemetry[1].set(packet[2], g_model.frsky.channels[1].type); frskyRSSI[0].set(packet[3]); frskyRSSI[1].set(packet[4] / 2); frskyStreaming = FRSKY_TIMEOUT10ms; // reset counter only if valid frsky packets are being detected @@ -808,8 +808,9 @@ void FrskyRSSI::set(uint8_t value) min = value; } -void FrskyData::set(uint8_t value) +void FrskyData::set(uint8_t value, uint8_t unit) { + if (unit != UNIT_VOLTS) this->value = value; FrskyRSSI::set(value); if (!max || value > max) max = value; @@ -828,7 +829,7 @@ void resetTelemetry() #endif #ifdef SIMU - frskyTelemetry[0].set(120); + frskyTelemetry[0].set(120, UNIT_VOLTS); frskyRSSI[0].set(75); frskyHubData.fuelLevel = 75; frskyHubData.rpm = 12000; diff --git a/src/frsky.h b/src/frsky.h index dce6785b0..63f0c39c6 100644 --- a/src/frsky.h +++ b/src/frsky.h @@ -62,7 +62,7 @@ class FrskyRSSI { class FrskyData: public FrskyRSSI { public: uint8_t max; - void set(uint8_t value); + void set(uint8_t value, uint8_t unit); }; #define EARTH_RADIUSKM ((uint32_t)6371)