Plane: prevent Mode Takeoff calling fence autoenable more than once
This commit is contained in:
parent
4fc59ae67d
commit
a6300e35d0
@ -250,6 +250,9 @@ private:
|
|||||||
|
|
||||||
// are we currently in long failsafe but have postponed it in MODE TAKEOFF until min level alt is reached
|
// are we currently in long failsafe but have postponed it in MODE TAKEOFF until min level alt is reached
|
||||||
bool long_failsafe_pending;
|
bool long_failsafe_pending;
|
||||||
|
|
||||||
|
//flag that we have already called autoenable fences once in MODE TAKEOFF
|
||||||
|
bool have_autoenabled_fences;
|
||||||
|
|
||||||
// GCS selection
|
// GCS selection
|
||||||
GCS_Plane _gcs; // avoid using this; use gcs()
|
GCS_Plane _gcs; // avoid using this; use gcs()
|
||||||
|
@ -63,6 +63,7 @@ ModeTakeoff::ModeTakeoff() :
|
|||||||
bool ModeTakeoff::_enter()
|
bool ModeTakeoff::_enter()
|
||||||
{
|
{
|
||||||
takeoff_mode_setup = false;
|
takeoff_mode_setup = false;
|
||||||
|
plane.have_autoenabled_fences = false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -154,7 +155,10 @@ void ModeTakeoff::update()
|
|||||||
} else {
|
} else {
|
||||||
if ((altitude_cm >= alt * 100 - 200)) { //within 2m of TKOFF_ALT ,or above and loitering
|
if ((altitude_cm >= alt * 100 - 200)) { //within 2m of TKOFF_ALT ,or above and loitering
|
||||||
#if AP_FENCE_ENABLED
|
#if AP_FENCE_ENABLED
|
||||||
plane.fence.auto_enable_fence_after_takeoff();
|
if (!plane.have_autoenabled_fences) {
|
||||||
|
plane.fence.auto_enable_fence_after_takeoff();
|
||||||
|
plane.have_autoenabled_fences = true;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
plane.calc_nav_roll();
|
plane.calc_nav_roll();
|
||||||
plane.calc_nav_pitch();
|
plane.calc_nav_pitch();
|
||||||
|
Loading…
Reference in New Issue
Block a user