From a92931fe8424b3bf342b96a7b5c13340f518480a Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Thu, 2 Feb 2017 16:06:44 +0100 Subject: [PATCH] Commander: Switch system off if in undervoltage condition and disarmed. This is necessary to not have systems deep-discharge the battery while sitting idle. While at it we also deny arming in low battery conditions to ensure people who just landed with a low battery do not take off again and fail to get a successful RTL. --- src/modules/commander/commander.cpp | 2 ++ src/modules/commander/state_machine_helper.cpp | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/commander/commander.cpp b/src/modules/commander/commander.cpp index c5304f0a7e..71aacbc475 100644 --- a/src/modules/commander/commander.cpp +++ b/src/modules/commander/commander.cpp @@ -2238,6 +2238,8 @@ int commander_thread_main(int argc, char *argv[]) if (!armed.armed) { mavlink_log_critical(&mavlink_log_pub, "CRITICAL BATTERY, SHUT SYSTEM DOWN"); + usleep(200000); + board_pwr(false); } else { if (low_bat_action == 1) { diff --git a/src/modules/commander/state_machine_helper.cpp b/src/modules/commander/state_machine_helper.cpp index 78b2a14b7b..6479b801d6 100644 --- a/src/modules/commander/state_machine_helper.cpp +++ b/src/modules/commander/state_machine_helper.cpp @@ -1166,11 +1166,11 @@ int preflight_check(struct vehicle_status_s *status, orb_advert_t *mavlink_log_p } } - if (battery->warning == battery_status_s::BATTERY_WARNING_CRITICAL) { + if (battery->warning == battery_status_s::BATTERY_WARNING_LOW) { preflight_ok = false; if (reportFailures) { - mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: VERY LOW BATTERY"); + mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: LOW BATTERY"); } }