mirror of https://github.com/ArduPilot/ardupilot
AP_AdvancedFailsafe: option to continue the mission even after data link is recovered
This feature is useful when the landing sequence is part of the flight plan. New parameter AFS_OPTIONS was added. Update libraries/AP_AdvancedFailsafe/AP_AdvancedFailsafe.cpp Co-authored-by: Peter Barker <pb-gh@barker.dropbear.id.au> Update libraries/AP_AdvancedFailsafe/AP_AdvancedFailsafe.h Co-authored-by: Peter Barker <pb-gh@barker.dropbear.id.au> enum convention changed
This commit is contained in:
parent
6bb5723b18
commit
1372e48515
|
@ -163,6 +163,12 @@ const AP_Param::GroupInfo AP_AdvancedFailsafe::var_info[] = {
|
|||
// @Units: km
|
||||
AP_GROUPINFO("MAX_RANGE", 20, AP_AdvancedFailsafe, _max_range_km, 0),
|
||||
|
||||
// @Param: OPTIONS
|
||||
// @DisplayName: AFS options
|
||||
// @Description: See description for each bitmask bit description
|
||||
// @Bitmask: 0: Continue the mission even after comms are recovered (does not go to the mission item at the time comms were lost)
|
||||
AP_GROUPINFO("OPTIONS", 21, AP_AdvancedFailsafe, options, 0),
|
||||
|
||||
AP_GROUPEND
|
||||
};
|
||||
|
||||
|
@ -277,6 +283,11 @@ AP_AdvancedFailsafe::check(uint32_t last_valid_rc_ms)
|
|||
} else if (gcs_link_ok) {
|
||||
_state = STATE_AUTO;
|
||||
gcs().send_text(MAV_SEVERITY_DEBUG, "AFS State: AFS_AUTO, GCS now OK");
|
||||
|
||||
if (option_is_set(Option::CONTINUE_AFTER_RECOVERED)) {
|
||||
break;
|
||||
}
|
||||
|
||||
// we only return to the mission if we have not exceeded AFS_MAX_COM_LOSS
|
||||
if (_saved_wp != 0 &&
|
||||
(_max_comms_loss <= 0 ||
|
||||
|
|
|
@ -162,6 +162,14 @@ private:
|
|||
|
||||
// update maximum range check
|
||||
void max_range_update();
|
||||
|
||||
AP_Int16 options;
|
||||
enum class Option {
|
||||
CONTINUE_AFTER_RECOVERED = (1U<<0),
|
||||
};
|
||||
bool option_is_set(Option option) const {
|
||||
return (options.get() & int16_t(option)) != 0;
|
||||
}
|
||||
};
|
||||
|
||||
namespace AP {
|
||||
|
|
Loading…
Reference in New Issue