WSF
engage::Simulation Class Reference

#include <Simulation.hpp>

Inheritance diagram for engage::Simulation:
Collaboration diagram for engage::Simulation:

Public Member Functions

 Simulation (WsfScenario &aScenario, Task &aTask)
 ~Simulation () override
TaskGetTask () const
Phase GetPhase () const
void SetPhase (Phase aPhase, double aSimTime)
double GetPhaseStartTime () const
double GetPhaseStartTime (Phase aPhase) const
void SetTarget (Platform *aTargetPtr)
void SetTracker (Platform *aTrackerPtr)
void SetLauncher (Platform *aLauncherPtr)
void SetWeapon (Platform *aWeaponPtr)
PlatformGetTarget () const
PlatformGetTracker () const
PlatformGetLauncher () const
PlatformGetWeapon () const
Public Member Functions inherited from WsfFrameStepSimulation
 WsfFrameStepSimulation (WsfScenario &aScenario, unsigned int aRunNumber)
 ~WsfFrameStepSimulation () override=default
void AddEvent (std::unique_ptr< WsfEvent > aEventPtr) override
double AdvanceTime () override
double AdvanceTime (double aSimTime) override
bool AddPlatform (WsfPlatform *aPlatformPtr) override
bool AddPlatform (double aSimTime, WsfPlatform *aPlatformPtr) override
void DeletePlatform (double aSimTime, WsfPlatform *aPlatformPtr, bool aDeleteMemory=true) override
void Initialize () override
void Start () override
void Complete (double aSimTime) override
void SetRealtime (double aSimTime, bool aIsRealTime) override
void WaitForAdvanceTime () override
double GetFrameTime () const
Public Member Functions inherited from WsfSimulation
 WsfSimulation (const WsfScenario &aScenario, unsigned int aRunNumber)
virtual ~WsfSimulation ()
 WsfSimulation (const WsfSimulation &aSrc)=delete
WsfSimulationoperator= (const WsfSimulation &aRhs)=delete
const WsfScenarioGetScenario () const
WsfApplicationGetApplication () const
virtual void PrepareSimulation ()
template<typename T, typename... Args>
T * AddEventT (Args &&... args)
virtual void AddWallEvent (std::unique_ptr< WsfEvent > aEventPtr)
template<typename T, typename... Args>
T * AddWallEventT (Args &&... args)
virtual bool ShouldExecute () const
virtual void Pause ()
 Pause execution of the simulation.
void PauseAndRequestAdvance (double)
 Pause the execution of the simulation and request a time advance in scaled-and-stepped mode.
virtual void Resume ()
 Resume execution of the paused simulation.
virtual void RequestReset ()
bool IsActive () const
State GetState () const
 Return the simulation's current state.
const std::string & GetStateString () const
 Return the string representation of the simulation's current state.
CompletionReason GetCompletionReason () const
virtual std::string GetCompletionReasonString () const
virtual void RequestTermination ()
void SetEndTime (double aEndTime)
 Set the defined end time of the simulation.
double GetSimTime () const
 Get the last time to which the simulation was updated.
double GetEndTime () const
 Get the defined end time of the simulation.
virtual double GetNextEventTime () const
double GetRealTime () const
bool IsRealTime () const
 Return whether this simulation is running real-time, or a multiple of real-time.
double GetWallTime () const
 Get the current wall-clock time since simulation creation.
double GetTimeBehind () const
double GetTimestep () const
double GetSyncTimestep () const
void SetIsExternallyStarted (bool aIsExternallyStarted)
bool IsExternallyStarted () const
 Return whether the simulation is to be started by an external source.
bool MultiThreadingActive () const
 Return whether the simulation multi-threading is currently active.
void SetMultiThreadingActive (bool aMultiThreadingActive)
 Set whether multi-threading is currently active ('true') or not ('false').
bool IsEventStepSimulation () const
 Return event step simulation indicator.
void SetAmAnEventStepSimulation (bool aFlag)
void SetClockSource (std::unique_ptr< WsfClockSource > aClockSourcePtr)
const WsfClockSourceGetClockSource () const
virtual double GetClockRate () const
 Returns the clock rate of the simulation.
virtual void SetClockRate (double aClockRate)
 Changes the clock rate of the simulation.
virtual void SetTimeParameters (int aTimeScheme, double aSimTime, double aClockRate, double aTimeStep, bool aTimeAdvance=false)
 Change the time parameters of the simulation.
WsfPlatformGetPlatformByIndex (size_t aIndex) const
WsfPlatformGetPlatformByName (WsfStringId aNameId) const
bool PlatformExists (size_t aIndex) const
 Returns 'true' if the platform with the specified index still exists.
WsfStringId GetPlatformNameId (size_t aIndex) const
 Return the name (ID) of a platform, even if the platform has been deleted from the simulation.
WsfStringId GetPlatformTypeId (size_t aIndex) const
 Return the type (ID) of a platform, even if the platform has been deleted from the simulation.
size_t GetPlatformCount () const
WsfPlatformGetPlatformEntry (size_t aEntry) const
virtual bool TurnPartOff (double aSimTime, WsfPlatformPart *aPartPtr)
virtual bool TurnPartOn (double aSimTime, WsfPlatformPart *aPartPtr)
virtual bool SetPartOperational (double aSimTime, WsfPlatformPart *aPartPtr, bool aOperational=true)
virtual void SetPartUpdateInterval (double aSimTime, WsfPlatformPart *aPartPtr, double aUpdateInterval)
virtual bool PlatformDeleted (double aSimTime, WsfPlatform *aOldPlatformPtr)
virtual void ProcessRemovePlatformEvent (double aSimTime, WsfPlatform *aPlatformPtr, bool aDeletePlatform)
 Called from RemovePlatformEvent to complete the processing of deleting a platform.
virtual void ProcessPlatformBrokenEvent (double aSimTime, WsfPlatform *aPlatformPtr)
 Call from PlatformBrokenEvent to complete the processing of the broken of a platform.
virtual void SimulationStarting ()
 Deprecated form of Start();.
virtual void SimulationComplete (double aSimTime)
 Deprecated form of Complete();.
bool IsFlexibleRealtime () const
 Return 'true' if the simulation's real-time constraint is flexible.
void SetFlexibleRealtime ()
WsfAdvancedBehaviorObserverGetAdvancedBehaviorObserver () const
WsfBehaviorObserverGetBehaviorObserver () const
WsfCommObserverGetCommObserver () const
WsfDisObserverGetDisObserver () const
WsfExchangeObserverGetExchangeObserver () const
WsfFuelObserverGetFuelObserver () const
WsfMoverObserverGetMoverObserver () const
WsfPlatformObserverGetPlatformObserver () const
WsfPlatformPartObserverGetPlatformPartObserver () const
WsfProcessorObserverGetProcessorObserver () const
WsfScriptStateMachineObserverGetScriptStateMachineObserver () const
WsfSensorObserverGetSensorObserver () const
WsfSimulationObserverGetSimulationObserver () const
WsfTaskObserverGetTaskObserver () const
WsfTrackObserverGetTrackObserver () const
WsfZoneObserverGetZoneObserver () const
WsfSimulationExtensionFindExtension (const std::string &aName) const
WsfSimulationExtensionGetExtension (const std::string &aName) const
const WsfExtensionListGetExtensions () const
void RegisterExtension (const std::string &aName, std::unique_ptr< WsfSimulationExtension > aExtensionPtr)
const std::vector< std::string > & GetExtensionNames () const
unsigned int AssignUniqueId ()
 Assign the next unique identifier for WsfUniqueId.
ut::Random & GetRandom ()
ut::Random & LockRandom ()
void UnlockRandom ()
ut::Random & GetScriptRandom ()
ut::Random & LockScriptRandom ()
void UnlockScriptRandom ()
wsf::TerrainInterfaceGetTerrainInterface () const
WsfDateTimeGetDateTime ()
const WsfDateTimeGetDateTime () const
WsfGroupManagerGetGroupManager ()
wsf::comm::NetworkManagerGetCommNetworkManager () const
WsfMultiThreadManagerGetMultiThreadManager ()
WsfPathFinderListGetPathFinderList () const
WsfScriptContextGetScriptContext ()
const WsfScriptContextGetScriptContext () const
WsfLOS_ManagerGetLOS_Manager () const
WsfZoneAttenuationGetZoneAttenuation ()
WsfEM_ManagerGetEM_Manager ()
UtScriptExecutor & GetScriptExecutor ()
UtAtmosphere & GetAtmosphere () const
 Return the UtAtmosphere object used by the simulation.
WsfEnvironmentGetEnvironment () const
WsfSystemLogGetSystemLog () const
WsfIFF_ManagerGetIFF_Manager () const
unsigned int NextMessageSerialNumber ()
unsigned int NextEngagementSerialNumber ()
unsigned int PreviousEngagementSerialNumber () const
void ReclaimPreviousEngagementSerialNumber ()
double CreateMessageDataTag ()
bool MultiThreaded () const
 Return whether the simulation should multi-thread were appropriate.
unsigned int GetRunNumber () const
 Get the current run number.
unsigned int GetFinalRunNumber () const
bool RandomizeFrequency () const
bool UseDefaultFrequency () const
double GetMinimumMoverTimestep () const
const WsfSimulationInputGetSimulationInput () const
std::string SubstituteOutputFileVariables (const std::string &aOutputFile)

Additional Inherited Members

Public Types inherited from WsfSimulation
enum  State {
  cPENDING_INITIALIZE , cINITIALIZING , cPENDING_START , cSTARTING ,
  cACTIVE , cPENDING_COMPLETE , cCOMPLETE
}
 An enumerated type specifying the state of the simulation. More...
enum  CompletionReason {
  cNONE , cEND_TIME_REACHED , cRESET , cTERMINATE ,
  cOTHER
}
 An enumerated type specifying the reason for completion of the simulation. More...
static const std::string & GetStateString (State aState)
 Return the string representation of the provided simulation state.
Public Attributes inherited from WsfFrameStepSimulation
UtCallbackListN< void(double)> AdvanceFrameObjects
Protected Member Functions inherited from WsfFrameStepSimulation
virtual double AdvanceFrame ()
void CreateClock () override
bool TurnPartOffP (double aSimTime, WsfPlatformPart *aPartPtr) override
bool TurnPartOnP (double aSimTime, WsfPlatformPart *aPartPtr) override
bool AddInputPlatforms ()
virtual bool SetPartOperationalP (double aSimTime, WsfPlatformPart *aPartPtr, bool aOperational)
virtual void DispatchWallEvents ()
 Dispatch any pending wall clock events up to and including the indicated time.
virtual void DispatchSimEvents (double aSimTime)
virtual void DispatchEvents (double aSimTime)
virtual bool PlatformInitialized (double aSimTime, WsfPlatform *aNewPlatformPtr)
virtual bool PlatformIntroduced (double aSimTime, WsfPlatform *aNewPlatformPtr)
virtual bool SimulationInitialized ()
virtual bool PlatformIsAvailable (WsfPlatform *aPlatformPtr)
void AddToPlatformList (WsfPlatform *aPlatformPtr)
bool DeleteFromPlatformList (WsfPlatform *aPlatformPtr)
bool PlatformPointerExists (WsfPlatform *aPlatformPtr)
void ResetPlatformList ()
 Reset the list to its initial (empty) state.
Protected Attributes inherited from WsfFrameStepSimulation
const WsfFrameStepSimulationInputmFrameStepInput
double mFrameCount
double mNextFrameTime
double mTimeUntilNextFrame
double mTotalFrameUnderTime
double mTotalFrameUnderCount
double mTotalFrameOverTime
double mTotalFrameOverCount
double mSkippedFrameCount
double mWorstFrameOverTime
std::vector< WsfPlatform * > mPlatforms
std::vector< wsf::comm::Comm * > mComms
std::vector< WsfProcessor * > mProcessors
std::vector< WsfSensor * > mSensors
WsfEM_Manager mEM_Manager
 EM manager.
WsfEventManager mEventManager
 Simulation event manager object.
WsfEventManager mWallEventManager
 Wall clock-based event manager object.
std::unique_ptr< WsfClockSourcemClockSourcePtr {nullptr}
 Pointer to the simulation clock source object.
WsfRealTimeClockSourcemRealTimeClockSourcePtr {nullptr}
double mSimTime {0.0}
 The last time to which the simulation has been updated (seconds).
double mRealTime {false}
double mTimeBehind {0.0}
 The amount of time the simulation clock is behind the real-time clock.
double mTimestep {0.0}
double mSyncAccumulatedTime {0.0}
 The wall clock time taken to execute the current synchronized time step.
volatile State mState {cPENDING_INITIALIZE}
 The current state of the simulation.
volatile CompletionReason mCompletionReason {cNONE}
 The reason for simulation completion.
bool mExternalEventReady {false}
 True if an external event needs to be processed.
unsigned int mRunNumber
 The current run number being executed.
const WsfSimulationInputmSimulationInput
WsfDateTime mDateTime
bool mMultiThreaded
double mMinimumMoverTimestep
double mEndTime {std::numeric_limits<double>::max()}
 The end time of the simulation (seconds).
bool mIsRealTime {false}

Detailed Description

The simulation object to execute an portion of a task.

At this point this exists simply as a place to store data that needs to be exchanged between The Task::Execute (and things that it calls) and the SimulationObserver.

Constructor & Destructor Documentation

◆ Simulation()

Simulation::Simulation ( WsfScenario & aScenario,
Task & aTask )

◆ ~Simulation()

Simulation::~Simulation ( )
override

Member Function Documentation

◆ GetLauncher()

Platform * engage::Simulation::GetLauncher ( ) const
inline

◆ GetPhase()

Phase engage::Simulation::GetPhase ( ) const
inline

◆ GetPhaseStartTime() [1/2]

double engage::Simulation::GetPhaseStartTime ( ) const
inline

◆ GetPhaseStartTime() [2/2]

double engage::Simulation::GetPhaseStartTime ( Phase aPhase) const
inline

◆ GetTarget()

Platform * engage::Simulation::GetTarget ( ) const
inline

◆ GetTask()

◆ GetTracker()

Platform * engage::Simulation::GetTracker ( ) const
inline

◆ GetWeapon()

Platform * engage::Simulation::GetWeapon ( ) const
inline

Referenced by engage::Task::Execute().

◆ SetLauncher()

void engage::Simulation::SetLauncher ( Platform * aLauncherPtr)
inline

◆ SetPhase()

void Simulation::SetPhase ( Phase aPhase,
double aSimTime )

◆ SetTarget()

void engage::Simulation::SetTarget ( Platform * aTargetPtr)
inline

◆ SetTracker()

void engage::Simulation::SetTracker ( Platform * aTrackerPtr)
inline

◆ SetWeapon()

void engage::Simulation::SetWeapon ( Platform * aWeaponPtr)
inline

The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved