From 2db13ce1a456b44fce2c8e8e248007f1e8c7f3ba Mon Sep 17 00:00:00 2001 From: "bsongis@gmail.com" Date: Wed, 28 Aug 2013 20:21:23 +0000 Subject: [PATCH] [Taranis] Altitude bug fixes [Taranis] Curves presets bug fix --- releasenotes-9x.txt | 3 +++ releasenotes-taranis.txt | 6 ++++++ src/gui/menu_model.cpp | 5 +++-- src/telemetry/frsky_sport.cpp | 6 +++++- src/telemetry/frsky_sport.h | 2 ++ 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/releasenotes-9x.txt b/releasenotes-9x.txt index c19e32158..a66b8a999 100644 --- a/releasenotes-9x.txt +++ b/releasenotes-9x.txt @@ -3,6 +3,9 @@

2688 / 2013-07-28

diff --git a/releasenotes-taranis.txt b/releasenotes-taranis.txt index 63e6275cc..d6e025f3e 100644 --- a/releasenotes-taranis.txt +++ b/releasenotes-taranis.txt @@ -2,6 +2,12 @@

2688 / 2013-07-28

diff --git a/src/gui/menu_model.cpp b/src/gui/menu_model.cpp index 780070c84..be13010fa 100644 --- a/src/gui/menu_model.cpp +++ b/src/gui/menu_model.cpp @@ -324,8 +324,8 @@ void onModelSelectMenu(const char *result) void menuModelSelect(uint8_t event) { if (s_warning_result) { - eeDeleteModel(m_posVert); // delete file s_warning_result = 0; + eeDeleteModel(m_posVert); // delete file s_copyMode = 0; event = EVT_ENTRY_UP; } @@ -2248,6 +2248,7 @@ void displayPresetChoice(uint8_t event) lcd_putcAtt(lcdLastPos, WARNING_LINE_Y, '@', INVERS); if (s_warning_result) { + s_warning_result = 0; CurveInfo crv = curveInfo(s_curveChan); for (uint8_t i=0; irevert = !ld->revert; - s_warning_result = 0; eeDirty(EE_MODEL); } diff --git a/src/telemetry/frsky_sport.cpp b/src/telemetry/frsky_sport.cpp index e52ff6d8d..5ea7a2846 100644 --- a/src/telemetry/frsky_sport.cpp +++ b/src/telemetry/frsky_sport.cpp @@ -206,7 +206,11 @@ void processHubPacket(uint8_t id, uint16_t value) break; case BARO_ALT_AP_ID: - setBaroAltitude((int32_t)100 * frskyData.hub.baroAltitude_bp + frskyData.hub.baroAltitude_ap); + if (frskyData.hub.baroAltitude_ap > 9) + frskyData.hub.varioHighPrecision = true; + if (!frskyData.hub.varioHighPrecision) + frskyData.hub.baroAltitude_ap *= 10; + setBaroAltitude((int32_t)100 * frskyData.hub.baroAltitude_bp + (frskyData.hub.baroAltitude_bp >= 0 ? frskyData.hub.baroAltitude_ap : -frskyData.hub.baroAltitude_ap)); break; case GPS_ALT_AP_ID: diff --git a/src/telemetry/frsky_sport.h b/src/telemetry/frsky_sport.h index 19bd73bf3..fdbaae2fb 100644 --- a/src/telemetry/frsky_sport.h +++ b/src/telemetry/frsky_sport.h @@ -139,6 +139,8 @@ PACK(struct FrskySerialData { int16_t cellsSum; uint8_t minCellIdx; uint16_t minCellVolts; + + bool varioHighPrecision; }); struct FrskyData {