From 1911ec00850c4b19f013220578986276193dbb13 Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Tue, 18 Jan 2022 10:56:13 +0100 Subject: [PATCH] Commander: fix user messageing for low battery failsafe delay --- src/modules/commander/Commander.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/modules/commander/Commander.cpp b/src/modules/commander/Commander.cpp index a128580536..ca4a2434bd 100644 --- a/src/modules/commander/Commander.cpp +++ b/src/modules/commander/Commander.cpp @@ -3888,8 +3888,16 @@ void Commander::battery_status_check() warn_user_about_battery(&_mavlink_log_pub, _battery_warning); _battery_failsafe_timestamp = hrt_absolute_time(); - if (get_battery_failsafe_action(_internal_state, _battery_warning, - (low_battery_action_t)_param_com_low_bat_act.get()) != commander_state_s::MAIN_STATE_MAX) { + uint8_t failsafe_action = get_battery_failsafe_action(_internal_state, _battery_warning, + (low_battery_action_t)_param_com_low_bat_act.get()); + + if (_param_com_bat_act_t.get() > 0.f + && failsafe_action != commander_state_s::MAIN_STATE_MAX) { + mavlink_log_critical(&_mavlink_log_pub, "Executing %s in %d seconds", + main_state_str(failsafe_action), static_cast(_param_com_bat_act_t.get())); + events::send(events::ID("commander_low_bat_action"), {events::Log::Critical, events::LogInternal::Warning}, + "Executing {1} in {2} seconds", + navigation_mode(failsafe_action), static_cast(_param_com_bat_act_t.get())); main_state_transition(_status, commander_state_s::MAIN_STATE_AUTO_LOITER, _status_flags, _internal_state); } }