- FGStartupController();
- virtual ~FGStartupController() {};
- virtual void announcePosition(int id, FGAIFlightPlan *intendedRoute, int currentRoute,
- double lat, double lon,
- double hdg, double spd, double alt, double radius, int leg,
- FGAIAircraft *aircraft);
- virtual void signOff(int id);
- virtual void update(int id, double lat, double lon,
- double heading, double speed, double alt, double dt);
- virtual bool hasInstruction(int id);
- virtual FGATCInstruction getInstruction(int id);
-
- bool hasActiveTraffic() { return activeTraffic.size() != 0; };
- TrafficVector &getActiveTraffic() { return activeTraffic; };
-
-};
+ FGStartupController(FGAirportDynamics *parent);
+ virtual ~FGStartupController() {};
+ virtual void announcePosition(int id, FGAIFlightPlan *intendedRoute, int currentRoute,
+ double lat, double lon,
+ double hdg, double spd, double alt, double radius, int leg,
+ FGAIAircraft *aircraft);
+ virtual void signOff(int id);
+ virtual void updateAircraftInformation(int id, double lat, double lon,
+ double heading, double speed, double alt, double dt);
+ virtual bool hasInstruction(int id);
+ virtual FGATCInstruction getInstruction(int id);
+
+ virtual void render(bool);
+ virtual string getName();
+ virtual void update(double dt);
+
+ bool hasActiveTraffic() {
+ return activeTraffic.size() != 0;
+ };
+ TrafficVector &getActiveTraffic() {
+ return activeTraffic;
+ };
+
+ // Hpoefully, we can move this function to the base class, but I need to verify what is needed for the other controllers before doing so.
+ bool checkTransmissionState(int st, time_t now, time_t startTime, TrafficVectorIterator i, AtcMsgId msgId,
+ AtcMsgDir msgDir);
+
+};
+
+/******************************************************************************
+ * class FGTowerControl
+ *****************************************************************************/
+class FGApproachController : public FGATCController
+{
+private:
+ TrafficVector activeTraffic;
+ ActiveRunwayVec activeRunways;
+ FGAirportDynamics *parent;
+
+public:
+ FGApproachController(FGAirportDynamics * parent);
+ virtual ~FGApproachController() { };
+ virtual void announcePosition(int id, FGAIFlightPlan *intendedRoute, int currentRoute,
+ double lat, double lon,
+ double hdg, double spd, double alt, double radius, int leg,
+ FGAIAircraft *aircraft);
+ virtual void signOff(int id);
+ virtual void updateAircraftInformation(int id, double lat, double lon,
+ double heading, double speed, double alt, double dt);
+ virtual bool hasInstruction(int id);
+ virtual FGATCInstruction getInstruction(int id);
+
+ virtual void render(bool);
+ virtual string getName();
+ virtual void update(double dt);
+
+ ActiveRunway* getRunway(string name);
+
+ bool hasActiveTraffic() {
+ return activeTraffic.size() != 0;
+ };
+ TrafficVector &getActiveTraffic() {
+ return activeTraffic;
+ };
+};
+