From a46b78bd9732d74303b6555871a4e615fbdb3929 Mon Sep 17 00:00:00 2001 From: bsongis Date: Fri, 23 May 2014 17:00:49 +0200 Subject: [PATCH] RxBatt overflow (it's stored in a 8bits variable) --- radio/src/gui/menu_model.cpp | 4 ++-- radio/src/lcd.cpp | 1 + radio/src/opentx.cpp | 2 +- radio/src/telemetry/frsky.cpp | 2 +- radio/src/telemetry/frsky_sport.cpp | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 6f17aeb1e..4a4f7a891 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -5522,14 +5522,14 @@ void menuModelTelemetry(uint8_t event) #if defined(CPUARM) case ITEM_TELEMETRY_RXBATT_LABEL: lcd_putsLeft(y, "RxBatt"); - putsTelemetryChannel(TELEM_COL2+6*FW, y, dest, frskyData.analog[TELEM_ANA_RxBatt].value, LEFT); + putsTelemetryChannel(TELEM_COL2+6*FW, y, TELEM_RX_VOLTAGE-1, frskyData.analog[TELEM_ANA_RxBatt].value, LEFT); break; case ITEM_TELEMETRY_RXBATT_ALARM1: case ITEM_TELEMETRY_RXBATT_ALARM2: { uint8_t alarm = (k==ITEM_TELEMETRY_RXBATT_ALARM1 ? 0 : 1); lcd_putsLeft(y, (alarm==0 ? STR_LOWALARM : STR_CRITICALALARM)); - putsTelemetryChannel(TELEM_COL2, y, TELEM_RX_VOLTAGE-1, 5*g_model.rxBattAlarms[alarm], LEFT|attr); + putsTelemetryChannel(TELEM_COL2, y, TELEM_RX_VOLTAGE-1, g_model.rxBattAlarms[alarm], LEFT|attr); if (attr && (s_editMode>0 || p1valdiff)) { g_model.rxBattAlarms[alarm] = checkIncDec(event, g_model.rxBattAlarms[alarm], 0, 255, EE_MODEL); } diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index 6024fda7f..a2fd2c61c 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -1217,6 +1217,7 @@ void putsTelemetryChannel(xcoord_t x, uint8_t y, uint8_t channel, lcdint_t val, break; #if defined(CPUARM) case TELEM_RX_VOLTAGE-1: + val *= 5; #if LCD_W >= 212 att |= PREC2; #else diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 275aa8fcf..26d9f3f2b 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1610,7 +1610,7 @@ PLAY_FUNCTION(playValue, uint8_t idx) break; case MIXSRC_FIRST_TELEM+TELEM_RX_VOLTAGE-1: if (TELEMETRY_STREAMING()) { - PLAY_NUMBER(div10_and_round(val), 1+UNIT_VOLTS, PREC1); + PLAY_NUMBER(val/2, 1+UNIT_VOLTS, PREC1); } break; #endif diff --git a/radio/src/telemetry/frsky.cpp b/radio/src/telemetry/frsky.cpp index a6f0fd47b..8dbf1a77a 100644 --- a/radio/src/telemetry/frsky.cpp +++ b/radio/src/telemetry/frsky.cpp @@ -129,7 +129,7 @@ void FrskyValueWithMinMax::set(uint8_t value, uint8_t unit) #if defined(CPUARM) inline bool rxBattAlarmRaised(uint8_t alarm) { - return g_model.rxBattAlarms[alarm] > 0 && frskyData.analog[TELEM_ANA_RxBatt].value < 5*g_model.rxBattAlarms[alarm]; + return g_model.rxBattAlarms[alarm] > 0 && frskyData.analog[TELEM_ANA_RxBatt].value < g_model.rxBattAlarms[alarm]; } inline bool alarmRaised(uint8_t channel, uint8_t idx) { diff --git a/radio/src/telemetry/frsky_sport.cpp b/radio/src/telemetry/frsky_sport.cpp index 13253ae67..3a11ed588 100644 --- a/radio/src/telemetry/frsky_sport.cpp +++ b/radio/src/telemetry/frsky_sport.cpp @@ -321,7 +321,7 @@ void frskySportProcessPacket(uint8_t *packet) #endif } else if (appId == BATT_ID) { - frskyData.analog[TELEM_ANA_RxBatt].set(SPORT_DATA_U32(packet), UNIT_VOLTS); + frskyData.analog[TELEM_ANA_RxBatt].set(SPORT_DATA_U32(packet)/5, UNIT_VOLTS); } else if ((appId >> 8) == 0) { // The old FrSky IDs