mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-14 20:10:18 +03:00
Merge pull request #7056 from etracer65/fix_osd_warning_blinking
Improve behavior of OSD warnings element blinking
This commit is contained in:
commit
b58e8f827f
1 changed files with 9 additions and 13 deletions
|
@ -832,6 +832,8 @@ static bool osdDrawSingleElement(uint8_t item)
|
|||
static timeUs_t armingDisabledUpdateTimeUs;
|
||||
static unsigned armingDisabledDisplayIndex;
|
||||
|
||||
CLR_BLINK(OSD_WARNINGS);
|
||||
|
||||
// Cycle through the arming disabled reasons
|
||||
if (osdWarnGetState(OSD_WARNING_ARMING_DISABLE)) {
|
||||
if (IS_RC_MODE_ACTIVE(BOXARM) && isArmingDisabled()) {
|
||||
|
@ -883,17 +885,20 @@ static bool osdDrawSingleElement(uint8_t item)
|
|||
#endif
|
||||
if (osdWarnGetState(OSD_WARNING_FAIL_SAFE) && failsafeIsActive()) {
|
||||
osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "FAIL SAFE");
|
||||
SET_BLINK(OSD_WARNINGS);
|
||||
break;
|
||||
}
|
||||
|
||||
if (osdWarnGetState(OSD_WARNING_BATTERY_CRITICAL) && batteryState == BATTERY_CRITICAL) {
|
||||
osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, " LAND NOW");
|
||||
SET_BLINK(OSD_WARNINGS);
|
||||
break;
|
||||
}
|
||||
|
||||
// Show warning if in HEADFREE flight mode
|
||||
if (FLIGHT_MODE(HEADFREE_MODE)) {
|
||||
osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "HEADFREE");
|
||||
SET_BLINK(OSD_WARNINGS);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -904,7 +909,7 @@ static bool osdDrawSingleElement(uint8_t item)
|
|||
tfp_sprintf(coreTemperatureWarningMsg, "CORE: %3d%c", osdConvertTemperatureToSelectedUnit(coreTemperature), osdGetTemperatureSymbolForSelectedUnit());
|
||||
|
||||
osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, coreTemperatureWarningMsg);
|
||||
|
||||
SET_BLINK(OSD_WARNINGS);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
@ -955,6 +960,7 @@ static bool osdDrawSingleElement(uint8_t item)
|
|||
|
||||
if (escWarningCount > 0) {
|
||||
osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, escWarningMsg);
|
||||
SET_BLINK(OSD_WARNINGS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -983,6 +989,7 @@ static bool osdDrawSingleElement(uint8_t item)
|
|||
|
||||
if (osdWarnGetState(OSD_WARNING_BATTERY_WARNING) && batteryState == BATTERY_WARNING) {
|
||||
osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "LOW BATTERY");
|
||||
SET_BLINK(OSD_WARNINGS);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -990,6 +997,7 @@ static bool osdDrawSingleElement(uint8_t item)
|
|||
// Show warning if rc smoothing hasn't initialized the filters
|
||||
if (osdWarnGetState(OSD_WARNING_RC_SMOOTHING) && ARMING_FLAG(ARMED) && !rcSmoothingInitializationComplete()) {
|
||||
osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "RCSMOOTHING");
|
||||
SET_BLINK(OSD_WARNINGS);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
@ -1309,18 +1317,6 @@ void osdUpdateAlarms(void)
|
|||
CLR_BLINK(OSD_RSSI_VALUE);
|
||||
}
|
||||
|
||||
// Determine if the OSD_WARNINGS should blink
|
||||
if (getBatteryState() != BATTERY_OK
|
||||
&& (osdWarnGetState(OSD_WARNING_BATTERY_CRITICAL) || osdWarnGetState(OSD_WARNING_BATTERY_WARNING))
|
||||
#ifdef USE_DSHOT
|
||||
&& (!isTryingToArm())
|
||||
#endif
|
||||
) {
|
||||
SET_BLINK(OSD_WARNINGS);
|
||||
} else {
|
||||
CLR_BLINK(OSD_WARNINGS);
|
||||
}
|
||||
|
||||
if (getBatteryState() == BATTERY_OK) {
|
||||
CLR_BLINK(OSD_MAIN_BATT_VOLTAGE);
|
||||
CLR_BLINK(OSD_AVG_CELL_VOLTAGE);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue