From 115e7246b08de8d2db77941eea265d42300f73e6 Mon Sep 17 00:00:00 2001 From: Dennis Mannhart Date: Mon, 26 Jun 2017 10:05:02 +0200 Subject: [PATCH] battery: only propagate warning state in upwards --- src/modules/systemlib/battery.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/systemlib/battery.cpp b/src/modules/systemlib/battery.cpp index de5e8d68f7..22baf42e38 100644 --- a/src/modules/systemlib/battery.cpp +++ b/src/modules/systemlib/battery.cpp @@ -225,14 +225,14 @@ void Battery::determineWarning(bool connected) { if (connected) { - // Smallest values must come first - if (_remaining < _param_emergency_thr.get()) { + // propagate warning state only if the state is higher, otherwise remain in current waringin state + if (_remaining < _param_emergency_thr.get() || (_warning == battery_status_s::BATTERY_WARNING_EMERGENCY)) { _warning = battery_status_s::BATTERY_WARNING_EMERGENCY; - } else if (_remaining < _param_crit_thr.get()) { + } else if (_remaining < _param_crit_thr.get() || (_warning == battery_status_s::BATTERY_WARNING_CRITICAL)) { _warning = battery_status_s::BATTERY_WARNING_CRITICAL; - } else if (_remaining < _param_low_thr.get()) { + } else if (_remaining < _param_low_thr.get() || (_warning == battery_status_s::BATTERY_WARNING_LOW)) { _warning = battery_status_s::BATTERY_WARNING_LOW; } }