mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
navigator: Fix RTL_TYPE 2 by reloading mission (#23855)
This commit is contained in:
parent
f516b41b59
commit
098a3378cc
@ -585,6 +585,8 @@ void RTL::init_rtl_mission_type()
|
||||
_set_rtl_mission_type = RtlType::NONE;
|
||||
}
|
||||
|
||||
mission_s new_mission = _mission_sub.get();
|
||||
|
||||
switch (new_rtl_mission_type) {
|
||||
case RtlType::RTL_DIRECT_MISSION_LAND:
|
||||
_rtl_mission_type_handle = new RtlDirectMissionLand(_navigator);
|
||||
@ -593,13 +595,13 @@ void RTL::init_rtl_mission_type()
|
||||
break;
|
||||
|
||||
case RtlType::RTL_MISSION_FAST:
|
||||
_rtl_mission_type_handle = new RtlMissionFast(_navigator);
|
||||
_rtl_mission_type_handle = new RtlMissionFast(_navigator, new_mission);
|
||||
_set_rtl_mission_type = RtlType::RTL_MISSION_FAST;
|
||||
_rtl_type = RtlType::RTL_MISSION_FAST;
|
||||
break;
|
||||
|
||||
case RtlType::RTL_MISSION_FAST_REVERSE:
|
||||
_rtl_mission_type_handle = new RtlMissionFastReverse(_navigator);
|
||||
_rtl_mission_type_handle = new RtlMissionFastReverse(_navigator, new_mission);
|
||||
_set_rtl_mission_type = RtlType::RTL_MISSION_FAST_REVERSE;
|
||||
_rtl_type = RtlType::RTL_MISSION_FAST_REVERSE;
|
||||
break;
|
||||
|
||||
@ -46,10 +46,10 @@
|
||||
|
||||
static constexpr int32_t DEFAULT_MISSION_FAST_CACHE_SIZE = 5;
|
||||
|
||||
RtlMissionFast::RtlMissionFast(Navigator *navigator) :
|
||||
RtlMissionFast::RtlMissionFast(Navigator *navigator, mission_s mission) :
|
||||
RtlBase(navigator, DEFAULT_MISSION_FAST_CACHE_SIZE)
|
||||
{
|
||||
|
||||
_mission = mission;
|
||||
}
|
||||
|
||||
void RtlMissionFast::on_inactive()
|
||||
|
||||
@ -52,7 +52,7 @@ class Navigator;
|
||||
class RtlMissionFast : public RtlBase
|
||||
{
|
||||
public:
|
||||
RtlMissionFast(Navigator *navigator);
|
||||
RtlMissionFast(Navigator *navigator, mission_s mission);
|
||||
~RtlMissionFast() = default;
|
||||
|
||||
void on_activation() override;
|
||||
|
||||
@ -46,10 +46,10 @@
|
||||
|
||||
static constexpr int32_t DEFAULT_MISSION_FAST_REVERSE_CACHE_SIZE = 5;
|
||||
|
||||
RtlMissionFastReverse::RtlMissionFastReverse(Navigator *navigator) :
|
||||
RtlMissionFastReverse::RtlMissionFastReverse(Navigator *navigator, mission_s mission) :
|
||||
RtlBase(navigator, -DEFAULT_MISSION_FAST_REVERSE_CACHE_SIZE)
|
||||
{
|
||||
|
||||
_mission = mission;
|
||||
}
|
||||
|
||||
void RtlMissionFastReverse::on_inactive()
|
||||
|
||||
@ -52,7 +52,7 @@ class Navigator;
|
||||
class RtlMissionFastReverse : public RtlBase
|
||||
{
|
||||
public:
|
||||
RtlMissionFastReverse(Navigator *navigator);
|
||||
RtlMissionFastReverse(Navigator *navigator, mission_s mission);
|
||||
~RtlMissionFastReverse() = default;
|
||||
|
||||
void on_activation() override;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user