Merge pull request #9454 from rvdveen/low-capacity-warning
Add 'low capacity' warning shown when exceeding configured cap_alarm value
This commit is contained in:
commit
3176368bc8
|
@ -1227,6 +1227,7 @@ const clivalue_t valueTable[] = {
|
|||
#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)},
|
||||
#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) },
|
||||
#ifdef USE_RX_LINK_QUALITY_INFO
|
||||
|
|
|
@ -294,6 +294,8 @@ void pgResetFn_osdConfig(osdConfig_t *osdConfig)
|
|||
osdWarnSetState(OSD_WARNING_RSSI, false);
|
||||
osdWarnSetState(OSD_WARNING_LINK_QUALITY, 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_2] = osdTimerDefault[OSD_TIMER_2];
|
||||
|
|
|
@ -231,6 +231,7 @@ typedef enum {
|
|||
OSD_WARNING_RSSI,
|
||||
OSD_WARNING_LINK_QUALITY,
|
||||
OSD_WARNING_RSSI_DBM,
|
||||
OSD_WARNING_OVER_CAP,
|
||||
OSD_WARNING_COUNT // MUST BE LAST
|
||||
} osdWarningsFlags_e;
|
||||
|
||||
|
|
|
@ -1490,6 +1490,14 @@ static void osdElementWarnings(osdElementParms_t *element)
|
|||
}
|
||||
#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
|
||||
if (osdWarnGetState(OSD_WARNING_BATTERY_NOT_FULL) && !(ARMING_FLAG(ARMED) || ARMING_FLAG(WAS_EVER_ARMED)) && (getBatteryState() == BATTERY_OK)
|
||||
&& getBatteryAverageCellVoltage() < batteryConfig()->vbatfullcellvoltage) {
|
||||
|
|
Loading…
Reference in New Issue