소스 검색

start with the interpretation of the position updates of aircrafts

Sven Czarnian 3 년 전
부모
커밋
d94e85b748
1개의 변경된 파일21개의 추가작업 그리고 0개의 파일을 삭제
  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 */
 }