Browse Source

check if the PTA exists

Sven Czarnian 3 years ago
parent
commit
2795011021
2 changed files with 11 additions and 3 deletions
  1. 9 3
      src/PlugIn.cpp
  2. 2 0
      src/types/Inbound.cpp

+ 9 - 3
src/PlugIn.cpp

@@ -558,10 +558,16 @@ void PlugIn::OnGetTagItem(EuroScopePlugIn::CFlightPlan flightPlan, EuroScopePlug
     }
     case TagItemElement::PlannedTimeOfArrival:
     {
-        if (this->m_inbounds.cend() != it)
-            message = UtcTime::timeToString(it->second.pta(), "%H:%M");
-        else if (true == forced || true == planExpected)
+        if (this->m_inbounds.cend() != it) {
+            const auto pta = it->second.pta();
+            if (UtcTime::Point() == pta)
+                message = "??:??";
+            else
+                message = UtcTime::timeToString(it->second.pta(), "%H:%M");
+        }
+        else if (true == forced || true == planExpected) {
             message = "??:??";
+        }
         break;
     }
     case TagItemElement::DeltaTime:

+ 2 - 0
src/types/Inbound.cpp

@@ -420,6 +420,8 @@ UtcTime::Point Inbound::eta() const {
 }
 
 UtcTime::Point Inbound::pta() const {
+    if (this->m_nextStarWaypoint >= this->m_arrivalRoute.size())
+        return UtcTime::Point();
     return gsl::at(this->m_arrivalRoute, this->m_nextStarWaypoint).plannedArrivalTime();
 }