navigator: Fix RTL_TYPE 2 by reloading mission (#23855)

This commit is contained in:
Potaito 2024-11-05 05:19:59 +01:00 committed by GitHub
parent f516b41b59
commit 098a3378cc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 10 additions and 8 deletions

View File

@ -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;

View File

@ -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()

View File

@ -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;

View File

@ -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()

View File

@ -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;