1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-17 13:25:30 +03:00

Fixed blinking of OSD RSSI element. (#5542)

This commit is contained in:
Michael Keller 2018-03-26 10:46:46 +13:00 committed by GitHub
parent 71cd500b99
commit d6af4c2d6b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -116,7 +116,6 @@ static uint32_t blinkBits[(OSD_ITEM_COUNT + 31)/32];
#define IS_MID(X) (rcData[X] > 1250 && rcData[X] < 1750) #define IS_MID(X) (rcData[X] > 1250 && rcData[X] < 1750)
static timeUs_t flyTime = 0; static timeUs_t flyTime = 0;
static uint8_t statRssi;
typedef struct statistic_s { typedef struct statistic_s {
timeUs_t armed_time; timeUs_t armed_time;
@ -124,7 +123,7 @@ typedef struct statistic_s {
int16_t min_voltage; // /10 int16_t min_voltage; // /10
int16_t max_current; // /10 int16_t max_current; // /10
int16_t min_rssi; int16_t min_rssi;
int16_t max_altitude; int32_t max_altitude;
int16_t max_distance; int16_t max_distance;
} statistic_t; } statistic_t;
@ -963,7 +962,7 @@ void osdUpdateAlarms(void)
int32_t alt = osdGetMetersToSelectedUnit(getEstimatedAltitude()) / 100; int32_t alt = osdGetMetersToSelectedUnit(getEstimatedAltitude()) / 100;
if (statRssi < osdConfig()->rssi_alarm) { if (scaleRange(getRssi(), 0, 1024, 0, 100) < osdConfig()->rssi_alarm) {
SET_BLINK(OSD_RSSI_VALUE); SET_BLINK(OSD_RSSI_VALUE);
} else { } else {
CLR_BLINK(OSD_RSSI_VALUE); CLR_BLINK(OSD_RSSI_VALUE);
@ -1043,7 +1042,6 @@ static void osdResetStats(void)
static void osdUpdateStats(void) static void osdUpdateStats(void)
{ {
int16_t value = 0; int16_t value = 0;
#ifdef USE_GPS #ifdef USE_GPS
value = CM_S_TO_KM_H(gpsSol.groundSpeed); value = CM_S_TO_KM_H(gpsSol.groundSpeed);
#endif #endif
@ -1051,8 +1049,9 @@ static void osdUpdateStats(void)
stats.max_speed = value; stats.max_speed = value;
} }
if (stats.min_voltage > getBatteryVoltage()) { value = getBatteryVoltage();
stats.min_voltage = getBatteryVoltage(); if (stats.min_voltage > value) {
stats.min_voltage = value;
} }
value = getAmperage() / 100; value = getAmperage() / 100;
@ -1060,19 +1059,24 @@ static void osdUpdateStats(void)
stats.max_current = value; stats.max_current = value;
} }
statRssi = scaleRange(getRssi(), 0, 1024, 0, 100); value = scaleRange(getRssi(), 0, 1024, 0, 100);
if (stats.min_rssi > statRssi) { if (stats.min_rssi > value) {
stats.min_rssi = statRssi; stats.min_rssi = value;
} }
if (stats.max_altitude < getEstimatedAltitude()) { int altitude = getEstimatedAltitude();
stats.max_altitude = getEstimatedAltitude(); if (stats.max_altitude < altitude) {
stats.max_altitude = altitude;
} }
#ifdef USE_GPS #ifdef USE_GPS
if (STATE(GPS_FIX) && STATE(GPS_FIX_HOME) && (stats.max_distance < GPS_distanceToHome)) { if (STATE(GPS_FIX) && STATE(GPS_FIX_HOME)) {
value = GPS_distanceToHome;
if (stats.max_distance < GPS_distanceToHome) {
stats.max_distance = GPS_distanceToHome; stats.max_distance = GPS_distanceToHome;
} }
}
#endif #endif
} }