mission_base: perform mission_check_valid if mission, geofence ot homeposition have changed

This commit is contained in:
Konrad
2023-11-24 08:11:41 +01:00
committed by Beat Küng
parent 5e1f0b73ce
commit 6a34b63b60
2 changed files with 11 additions and 6 deletions
+9 -6
View File
@@ -689,17 +689,20 @@ MissionBase::checkMissionRestart()
void
MissionBase::check_mission_valid()
{
if (_navigator->get_mission_result()->mission_update_counter != _mission.mission_update_counter) {
MissionFeasibilityChecker missionFeasibilityChecker(_navigator, _dataman_client);
if ((_navigator->get_mission_result()->mission_update_counter != _mission.mission_update_counter)
|| (_navigator->get_mission_result()->geofence_update_counter != _mission.geofence_update_counter)
|| (_navigator->get_mission_result()->home_position_counter != _navigator->get_home_position()->update_count)) {
bool is_mission_valid =
missionFeasibilityChecker.checkMissionFeasible(_mission);
_navigator->get_mission_result()->valid = is_mission_valid;
_navigator->get_mission_result()->mission_update_counter = _mission.mission_update_counter;
_navigator->get_mission_result()->geofence_update_counter = _mission.geofence_update_counter;
_navigator->get_mission_result()->home_position_counter = _navigator->get_home_position()->update_count;
MissionFeasibilityChecker missionFeasibilityChecker(_navigator, _dataman_client);
_navigator->get_mission_result()->valid = missionFeasibilityChecker.checkMissionFeasible(_mission);
_navigator->get_mission_result()->seq_total = _mission.count;
_navigator->get_mission_result()->seq_reached = -1;
_navigator->get_mission_result()->failure = false;
set_mission_result();
}
}