mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-26 01:35:41 +03:00
Add 'low capacity' warning shown when exceeding configured cap_alarm value
This commit is contained in:
parent
97704dda58
commit
89fad8dc7f
4 changed files with 12 additions and 0 deletions
|
@ -1227,6 +1227,7 @@ const clivalue_t valueTable[] = {
|
||||||
#ifdef USE_RX_LINK_QUALITY_INFO
|
#ifdef USE_RX_LINK_QUALITY_INFO
|
||||||
{ "osd_warn_link_quality", VAR_UINT32 | MASTER_VALUE | MODE_BITSET, .config.bitpos = OSD_WARNING_LINK_QUALITY, PG_OSD_CONFIG, offsetof(osdConfig_t, enabledWarnings)},
|
{ "osd_warn_link_quality", VAR_UINT32 | MASTER_VALUE | MODE_BITSET, .config.bitpos = OSD_WARNING_LINK_QUALITY, PG_OSD_CONFIG, offsetof(osdConfig_t, enabledWarnings)},
|
||||||
#endif
|
#endif
|
||||||
|
{ "osd_warn_over_cap", VAR_UINT32 | MASTER_VALUE | MODE_BITSET, .config.bitpos = OSD_WARNING_OVER_CAP, PG_OSD_CONFIG, offsetof(osdConfig_t, enabledWarnings)},
|
||||||
|
|
||||||
{ "osd_rssi_alarm", VAR_UINT8 | MASTER_VALUE, .config.minmaxUnsigned = { 0, 100 }, PG_OSD_CONFIG, offsetof(osdConfig_t, rssi_alarm) },
|
{ "osd_rssi_alarm", VAR_UINT8 | MASTER_VALUE, .config.minmaxUnsigned = { 0, 100 }, PG_OSD_CONFIG, offsetof(osdConfig_t, rssi_alarm) },
|
||||||
#ifdef USE_RX_LINK_QUALITY_INFO
|
#ifdef USE_RX_LINK_QUALITY_INFO
|
||||||
|
|
|
@ -294,6 +294,8 @@ void pgResetFn_osdConfig(osdConfig_t *osdConfig)
|
||||||
osdWarnSetState(OSD_WARNING_RSSI, false);
|
osdWarnSetState(OSD_WARNING_RSSI, false);
|
||||||
osdWarnSetState(OSD_WARNING_LINK_QUALITY, false);
|
osdWarnSetState(OSD_WARNING_LINK_QUALITY, false);
|
||||||
osdWarnSetState(OSD_WARNING_RSSI_DBM, false);
|
osdWarnSetState(OSD_WARNING_RSSI_DBM, false);
|
||||||
|
// turn off the over mah capacity warning
|
||||||
|
osdWarnSetState(OSD_WARNING_OVER_CAP, false);
|
||||||
|
|
||||||
osdConfig->timers[OSD_TIMER_1] = osdTimerDefault[OSD_TIMER_1];
|
osdConfig->timers[OSD_TIMER_1] = osdTimerDefault[OSD_TIMER_1];
|
||||||
osdConfig->timers[OSD_TIMER_2] = osdTimerDefault[OSD_TIMER_2];
|
osdConfig->timers[OSD_TIMER_2] = osdTimerDefault[OSD_TIMER_2];
|
||||||
|
|
|
@ -231,6 +231,7 @@ typedef enum {
|
||||||
OSD_WARNING_RSSI,
|
OSD_WARNING_RSSI,
|
||||||
OSD_WARNING_LINK_QUALITY,
|
OSD_WARNING_LINK_QUALITY,
|
||||||
OSD_WARNING_RSSI_DBM,
|
OSD_WARNING_RSSI_DBM,
|
||||||
|
OSD_WARNING_OVER_CAP,
|
||||||
OSD_WARNING_COUNT // MUST BE LAST
|
OSD_WARNING_COUNT // MUST BE LAST
|
||||||
} osdWarningsFlags_e;
|
} osdWarningsFlags_e;
|
||||||
|
|
||||||
|
|
|
@ -1489,6 +1489,14 @@ static void osdElementWarnings(osdElementParms_t *element)
|
||||||
}
|
}
|
||||||
#endif // USE_RC_SMOOTHING_FILTER
|
#endif // USE_RC_SMOOTHING_FILTER
|
||||||
|
|
||||||
|
// Show warning if mah consumed is over the configured limit
|
||||||
|
if (osdWarnGetState(OSD_WARNING_OVER_CAP) && ARMING_FLAG(ARMED) && osdConfig()->cap_alarm > 0 && getMAhDrawn() >= osdConfig()->cap_alarm) {
|
||||||
|
tfp_sprintf(element->buff, "OVER CAP");
|
||||||
|
element->attr = DISPLAYPORT_ATTR_WARNING;
|
||||||
|
SET_BLINK(OSD_WARNINGS);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Show warning if battery is not fresh
|
// Show warning if battery is not fresh
|
||||||
if (osdWarnGetState(OSD_WARNING_BATTERY_NOT_FULL) && !(ARMING_FLAG(ARMED) || ARMING_FLAG(WAS_EVER_ARMED)) && (getBatteryState() == BATTERY_OK)
|
if (osdWarnGetState(OSD_WARNING_BATTERY_NOT_FULL) && !(ARMING_FLAG(ARMED) || ARMING_FLAG(WAS_EVER_ARMED)) && (getBatteryState() == BATTERY_OK)
|
||||||
&& getBatteryAverageCellVoltage() < batteryConfig()->vbatfullcellvoltage) {
|
&& getBatteryAverageCellVoltage() < batteryConfig()->vbatfullcellvoltage) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue