|
WSF
|
#include <XWsfAirTraffic.hpp>


Classes | |
| class | AirTrafficEvent |
| class | UpdateFlightStatusCallback |
| class | ExitLoiterEvent |
Public Member Functions | |
| XWsfAirTraffic (WsfSimulation &aSimulation, XWsfAirTrafficData &aData) | |
| ~XWsfAirTraffic () override | |
| bool | Initialize () override |
| Initialize the air traffic object. | |
| void | UpdateFlightStatus (double aSimTime, WsfPlatform *aPlatformPtr, WsfStringId &aFlightStatus) |
| Process a waypoint callback. | |
| double | ProcessEvent (double aSimTime) |
| Process airbase deactivations and takeoffs as required. | |
| void | ProcessDivertFlights (double aSimtime) |
| Public Member Functions inherited from WsfSimulationExtension | |
| WsfSimulationExtension () | |
| ~WsfSimulationExtension () override=default | |
| WsfSimulation & | GetSimulation () const |
| const WsfScenario & | GetScenario () const |
| virtual void | AddedToSimulation () |
| virtual bool | PrepareExtension () |
| virtual bool | PlatformsInitialized () |
| virtual void | PendingStart () |
| virtual void | Start () |
| virtual void | Complete (double aSimTime) |
| Public Member Functions inherited from WsfExtension | |
| virtual | ~WsfExtension ()=default |
| const std::string & | GetExtensionName () const |
| Public Member Functions inherited from XWsfAirTrafficData | |
| XWsfAirTrafficData () | |
| bool | ProcessInput (UtInput &aInput) |
| Process simulation input. | |
| void | ProcessAirbaseBlock (UtInput &aInput) |
| Process the 'airbase' / 'end_airbase' block. | |
| void | ProcessAircraftTypeBlock (UtInput &aInput) |
| Process the 'aircraft_type' / 'end_aircraft_type' block. | |
| bool | IsRequested () const |
Additional Inherited Members | |
| Public Types inherited from XWsfAirTrafficData | |
| typedef std::vector< Destination > | Destinations |
| typedef std::map< WsfStringId, Airbase > | Airbases |
| typedef std::map< WsfStringId, AircraftType > | AircraftTypes |
| static void | __private_SetSim (WsfSimulationExtension &aExtension, WsfSimulation *aSimPtr) |
| Static Public Member Functions inherited from XWsfAirTrafficData | |
| static double | NormalizeHeading (double aHeading) |
| Normalize a heading to be in the range [0, 360). | |
| Public Attributes inherited from XWsfAirTrafficData | |
| double | mEveryoneLandTime |
| Airbases | mAirbases |
| AircraftTypes | mAircraftTypes |
| Protected Member Functions inherited from WsfExtension | |
| void | InitializeExtensionName (const std::string &aName) |
| XWsfAirTraffic::XWsfAirTraffic | ( | WsfSimulation & | aSimulation, |
| XWsfAirTrafficData & | aData ) |
|
override |
|
overridevirtual |
Initialize the air traffic object.
This must be invoked AFTER WsfSimulation::Initialize() as it adds events and platforms to the simulation.
Reimplemented from WsfSimulationExtension.
References WsfSimulation::AddEvent(), WsfRoute::Append(), WsfSimulationExtension::GetScenario(), WsfSimulationExtension::GetSimulation(), XWsfAirTrafficData::mAirbases, XWsfAirTrafficData::Airbase::mAircrafts, XWsfAirTrafficData::Airbase::mDeactivationTime, XWsfAirTrafficData::Airbase::mDestinations, XWsfAirTrafficData::mEveryoneLandTime, XWsfAirTrafficData::Airbase::mFlightNumber, XWsfAirTrafficData::Runway::mHeading, XWsfAirTrafficData::Airbase::mIsActive, XWsfAirTrafficData::Runway::mMidLat, XWsfAirTrafficData::Runway::mMidLon, XWsfAirTrafficData::Airbase::mNameId, XWsfAirTrafficData::Airbase::mNextDepartureTime, moverPtr, XWsfAirTrafficData::Airbase::mRunway, platformPtr, WsfWaypoint::SetHeading(), WsfWaypoint::SetLat(), and WsfWaypoint::SetLon().
| void XWsfAirTraffic::ProcessDivertFlights | ( | double | aSimtime | ) |
| double XWsfAirTraffic::ProcessEvent | ( | double | aSimTime | ) |
Process airbase deactivations and takeoffs as required.
This method is called via XWsfAirTraffic::AirTrafficEvent::Execute() when the event is dispatched by the simulation.
The return value should be the time the event should be rescheduled (i.e.: the time of the NEXT scheduled takeoff or airbase deactivation.
References WsfSimulation::GetRandom(), WsfSimulationExtension::GetSimulation(), XWsfAirTrafficData::Destination::mAirbaseNameId, XWsfAirTrafficData::mAirbases, XWsfAirTrafficData::Airbase::mDeactivationTime, XWsfAirTrafficData::Airbase::mDepartureInterval, XWsfAirTrafficData::Airbase::mDestinations, XWsfAirTrafficData::Airbase::mIsActive, XWsfAirTrafficData::Airbase::mLocalDestinations, XWsfAirTrafficData::Airbase::mNextDepartureTime, and ProcessDivertFlights().
| void XWsfAirTraffic::UpdateFlightStatus | ( | double | aSimTime, |
| WsfPlatform * | aPlatformPtr, | ||
| WsfStringId & | aFlightStatus ) |
Process a waypoint callback.
This method is called via XWsfAirTraffic::UpdateFlightStatusCallback::Execute() when a waypoint event is encountered. It will update the platform state as required.
References WsfSimulation::AddEvent(), WsfSimulation::DeletePlatform(), WsfPlatform::GetIndex(), WsfObject::GetName(), WsfObject::GetNameId(), WsfSimulationExtension::GetSimulation(), XWsfAirTrafficData::Flight::mAircraftTypeId, XWsfAirTrafficData::mAircraftTypes, XWsfAirTrafficData::Flight::mDiversionPending, and XWsfAirTrafficData::Flight::mStatus.