Browse Source

commander move power check to prearm_check

sbg
Daniel Agar 7 years ago
parent
commit
415c5f13bb
  1. 30
      src/modules/commander/state_machine_helper.cpp

30
src/modules/commander/state_machine_helper.cpp

@ -216,13 +216,6 @@ transition_result_t arming_state_transition(vehicle_status_s *status, const batt @@ -216,13 +216,6 @@ transition_result_t arming_state_transition(vehicle_status_s *status, const batt
// Perform power checks only if circuit breaker is not
// engaged for these checks
if (!status_flags->circuit_breaker_engaged_power_check) {
// Fail transition if power is not good
if (!status_flags->condition_power_input_valid) {
mavlink_log_critical(mavlink_log_pub, "NOT ARMING: Connect power module.");
feedback_provided = true;
valid_transition = false;
}
// Fail transition if power levels on the avionics rail
// are measured but are insufficient
@ -1016,6 +1009,7 @@ bool prearm_check(orb_advert_t *mavlink_log_pub, const vehicle_status_flags_s &s @@ -1016,6 +1009,7 @@ bool prearm_check(orb_advert_t *mavlink_log_pub, const vehicle_status_flags_s &s
bool reportFailures = true;
bool prearm_ok = true;
// USB not connected
if (!status_flags.circuit_breaker_engaged_usb_check && status_flags.usb_connected) {
prearm_ok = false;
@ -1024,11 +1018,25 @@ bool prearm_check(orb_advert_t *mavlink_log_pub, const vehicle_status_flags_s &s @@ -1024,11 +1018,25 @@ bool prearm_check(orb_advert_t *mavlink_log_pub, const vehicle_status_flags_s &s
}
}
if (!status_flags.circuit_breaker_engaged_power_check && battery.warning >= battery_status_s::BATTERY_WARNING_LOW) {
prearm_ok = false;
// battery and system power status
if (!status_flags.circuit_breaker_engaged_power_check) {
if (reportFailures) {
mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: LOW BATTERY");
// Fail transition if power is not good
if (!status_flags.condition_power_input_valid) {
prearm_ok = false;
if (reportFailures) {
mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: Connect power module");
}
}
// main battery level
if (battery.warning >= battery_status_s::BATTERY_WARNING_LOW) {
prearm_ok = false;
if (reportFailures) {
mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: LOW BATTERY");
}
}
}

Loading…
Cancel
Save