mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-28 02:36:37 +08:00
failsafe: disarm if battery failure is detected during spoolup
This commit is contained in:
@@ -447,7 +447,15 @@ void Failsafe::checkStateAndMode(const hrt_abstime &time_us, const State &state,
|
|||||||
// Battery
|
// Battery
|
||||||
CHECK_FAILSAFE(status_flags, battery_low_remaining_time,
|
CHECK_FAILSAFE(status_flags, battery_low_remaining_time,
|
||||||
ActionOptions(Action::RTL).causedBy(Cause::BatteryLow).clearOn(ClearCondition::OnModeChangeOrDisarm));
|
ActionOptions(Action::RTL).causedBy(Cause::BatteryLow).clearOn(ClearCondition::OnModeChangeOrDisarm));
|
||||||
CHECK_FAILSAFE(status_flags, battery_unhealthy, Action::Warn);
|
|
||||||
|
if ((_armed_time != 0)
|
||||||
|
&& (time_us < _armed_time + static_cast<hrt_abstime>(_param_com_spoolup_time.get() * 1_s))
|
||||||
|
) {
|
||||||
|
CHECK_FAILSAFE(status_flags, battery_unhealthy, ActionOptions(Action::Disarm).cannotBeDeferred());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
CHECK_FAILSAFE(status_flags, battery_unhealthy, Action::Warn);
|
||||||
|
}
|
||||||
|
|
||||||
switch (status_flags.battery_warning) {
|
switch (status_flags.battery_warning) {
|
||||||
case battery_status_s::BATTERY_WARNING_LOW:
|
case battery_status_s::BATTERY_WARNING_LOW:
|
||||||
|
|||||||
Reference in New Issue
Block a user