Bladeren bron

start with the interpretation of the position updates of aircrafts

Sven Czarnian 3 jaren geleden
bovenliggende
commit
d94e85b748
1 gewijzigde bestanden met toevoegingen van 21 en 0 verwijderingen
  1. 21 0
      src/PlugIn.cpp

+ 21 - 0
src/PlugIn.cpp

@@ -72,5 +72,26 @@ EuroScopePlugIn::CRadarScreen* PlugIn::OnRadarScreenCreated(const char* displayN
 }
 
 void PlugIn::OnRadarTargetPositionUpdate(EuroScopePlugIn::CRadarTarget radarTarget) {
+    /* ignore invalid targets */
+    if (false == radarTarget.IsValid())
+        return;
+
+    auto flightPlan = radarTarget.GetCorrelatedFlightPlan();
+
+    /* ignore invalid flightplans */
+    if (false == flightPlan.IsValid())
+        return;
+
+    /* ignore flights that are not tracked by the current controller */
+    if (false == flightPlan.GetTrackingControllerIsMe())
+        return;
+
+    /* ignore non-IFR flights */
+    if (nullptr == flightPlan.GetFlightPlanData().GetPlanType() || 'I' != *flightPlan.GetFlightPlanData().GetPlanType())
+        return;
 
+    /* TODO filter by distance to destination */
+    /* TODO filter by airborne identifier */
+    /* TODO generate protobuf message */
+    /* TODO send aircraft update */
 }