From c5d5e332c80edb44df995ace6ba9c898234e3388 Mon Sep 17 00:00:00 2001 From: Sven Czarnian Date: Sun, 26 Dec 2021 10:59:22 +0100 Subject: [PATCH] fix compiler issues --- src/PlugIn.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/PlugIn.cpp b/src/PlugIn.cpp index ba21b27..b0dd498 100644 --- a/src/PlugIn.cpp +++ b/src/PlugIn.cpp @@ -461,7 +461,7 @@ void PlugIn::generateAircraftReportMessage(EuroScopePlugIn::CRadarTarget& radarT int iafRouteIndex = flightPlan.GetExtractedRoute().GetPointsNumber(); auto currentPosition = radarTarget.GetPosition().GetPosition(); - EuroScopePlugIn::CPosition iafPosition; + GeoCoordinate iafPosition; std::string iafName; auto iafIt = this->m_initialApproachFixes.find(destination); @@ -469,14 +469,15 @@ void PlugIn::generateAircraftReportMessage(EuroScopePlugIn::CRadarTarget& radarT for (const auto& iaf : std::as_const(iafIt->second)) { for (int i = 0; i < flightPlan.GetExtractedRoute().GetPointsNumber(); ++i) { if (flightPlan.GetExtractedRoute().GetPointName(i) == iaf.name) { + iafPosition = iaf.coordinate; iafName = iaf.name; break; } } - if (0 == iafName.length()) { - if (flightPlan.GetControllerAssignedData().GetDirectToPointName() == iaf.name) - iafName = iaf.name; + if (0 == iafName.length() && flightPlan.GetControllerAssignedData().GetDirectToPointName() == iaf.name) { + iafPosition = iaf.coordinate; + iafName = iaf.name; } if (0 != iafName.length()) @@ -485,6 +486,8 @@ void PlugIn::generateAircraftReportMessage(EuroScopePlugIn::CRadarTarget& radarT } if (0 != iafName.length()) { + report->set_initialapproachfix(iafName); + std::string_view direct(flightPlan.GetControllerAssignedData().GetDirectToPointName()); bool directBehindIAF = false; @@ -497,18 +500,21 @@ void PlugIn::generateAircraftReportMessage(EuroScopePlugIn::CRadarTarget& radarT } } + EuroScopePlugIn::CPosition iaf; + iaf.m_Longitude = iafPosition.longitude().convert(degree); + iaf.m_Latitude = iafPosition.latitude().convert(degree); + if (true == directBehindIAF) { - PlugIn::distanceToPredictedIaf(radarTarget, flightPlan, iafPosition, report); + PlugIn::distanceToPredictedIaf(radarTarget, flightPlan, iaf, report); } else { - const GeoCoordinate iaf(static_cast(iafPosition.m_Longitude) * degree, static_cast(iafPosition.m_Latitude) * degree); const Velocity groundspeed = static_cast(radarTarget.GetGS()) * knot; Length distanceToIaf; - const auto idx = Inbound::matchToPredictedPath(flightPlan.GetPositionPredictions(), iaf, groundspeed, distanceToIaf); + const auto idx = Inbound::matchToPredictedPath(flightPlan.GetPositionPredictions(), iafPosition, groundspeed, distanceToIaf); /* not inbound the IAF -> check if we passed it */ if (flightPlan.GetPositionPredictions().GetPointsNumber() <= idx) - PlugIn::distanceToPredictedIaf(radarTarget, flightPlan, iafPosition, report); + PlugIn::distanceToPredictedIaf(radarTarget, flightPlan, iaf, report); else report->set_distancetoiaf(static_cast(std::round(distanceToIaf.convert(nauticmile)))); }