Browse Source

commander: Add prearm check for flight termination

v1.13.0-BW
Alex Mikhalev 3 years ago committed by Daniel Agar
parent
commit
45dff7f71a
  1. 1
      msg/vehicle_status_flags.msg
  2. 6
      src/modules/commander/Arming/PreFlightCheck/checks/preArmCheck.cpp
  3. 2
      src/modules/commander/Commander.cpp

1
msg/vehicle_status_flags.msg

@ -24,6 +24,7 @@ bool position_reliant_on_optical_flow @@ -24,6 +24,7 @@ bool position_reliant_on_optical_flow
bool position_reliant_on_vision_position
bool dead_reckoning
bool flight_terminated
bool circuit_breaker_engaged_power_check
bool circuit_breaker_engaged_airspd_check

6
src/modules/commander/Arming/PreFlightCheck/checks/preArmCheck.cpp

@ -79,6 +79,12 @@ bool PreFlightCheck::preArmCheck(orb_advert_t *mavlink_log_pub, const vehicle_st @@ -79,6 +79,12 @@ bool PreFlightCheck::preArmCheck(orb_advert_t *mavlink_log_pub, const vehicle_st
prearm_ok = false;
}
if (status_flags.flight_terminated) {
if (report_fail) { mavlink_log_critical(mavlink_log_pub, "Arming denied! Flight termination active"); }
prearm_ok = false;
}
// USB not connected
if (!status_flags.circuit_breaker_engaged_usb_check && status_flags.usb_connected) {
if (report_fail) { mavlink_log_critical(mavlink_log_pub, "Arming denied! Flying with USB is not safe"); }

2
src/modules/commander/Commander.cpp

@ -2911,6 +2911,8 @@ Commander::run() @@ -2911,6 +2911,8 @@ Commander::run()
checkWindAndWarn();
}
_status_flags.flight_terminated = _armed.force_failsafe || _armed.lockdown || _armed.manual_lockdown;
/* Get current timestamp */
const hrt_abstime now = hrt_absolute_time();

Loading…
Cancel
Save