VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Types | Protected Attributes
DtExerciseClock Class Reference

Description: The Exercise Clock keeps track of current simulated time. When 'ticked', it advances simulation time based on elapsed real time since the last time it was ticked and a time-multiplier that allows the exercise clock to run faster or slower than real-time. The exercise clock also supports a pause/resume capability.

Inheritance diagram for DtExerciseClock:
Inheritance graph
[legend]

Public Member Functions

 DtExerciseClock ()
 
 DtExerciseClock (const DtExerciseClock &orig)
 
DtExerciseClockoperator= (const DtExerciseClock &orig)
 
virtual ~DtExerciseClock ()
 
virtual void init ()
 
virtual void reset ()
 
virtual void tick (DtCommunicationManagerPerformanceTimerInformation *performanceTimerInformation=nullptr)
 
virtual void pause ()
 
virtual void resume ()
 
virtual bool isPaused () const
 
virtual void setFixedFrameMode (DtTime dT)
 
virtual bool isFixedFrameMode () const
 
virtual void setRunToCompleteFrameMode ()
 
virtual bool isRunToCompleteFrameMode () const
 
virtual void setHybridFrameMode (DtTime dT)
 
virtual bool isHybridFrameMode () const
 
virtual void setFixedFrameRate (DtTime dT)
 
virtual DtTime fixedFrameRate () const
 
virtual void setTimeMultiplier (DtFloat64 timeMultiplier)
 
virtual DtFloat64 timeMultiplier () const
 
virtual void setFastForwardSettings (const DtFastForwardSettings &settings)
 
virtual DtStringelapsedSimTimeString (DtString &strBuffer) const
 
virtual void setExerciseStartTime (DtTime time)
 
virtual DtTime exerciseStartTime () const
 
virtual DtStringexerciseStartTimeString (DtString &strBuffer) const
 
virtual DtTime exerciseTime () const
 
virtual DtStringexerciseTimeString (DtString &strBuffer) const
 
virtual void setExerciseConnectionClockTime (double)
 
virtual void set_dT (DtTime dT)
 
virtual DtTime dT () const
 
virtual void setTimeStampType (DtTimeStampType)
 
DtTimeStampType timeStampType () const
 
virtual double simTimeScale () const
 
virtual void addTimeMultiplierUpdateCallback (DtCallbackList< DtFloat64 >::DtCallbackFunctionType, void *usr)
 
virtual void removeTimeMultiplierUpdateCallback (DtCallbackList< DtFloat64 >::DtCallbackFunctionType fcn, void *usr)
 
- Public Member Functions inherited from DtSimClock
 DtSimClock ()
 
 DtSimClock (const DtSimClock &orig)
 
DtSimClockoperator= (const DtSimClock &orig)
 
virtual ~DtSimClock ()
 

Protected Types

enum  FrameMode { FmRunToComplete, FmFixed, FmHybrid }
 

Protected Attributes

enum DtExerciseClock::FrameMode myFrameMode
 
bool myFirstFrame
 
bool myPaused
 
DtTime myLastRealTime
 
DtTime my_dT
 
DtFloat64 myTimeMultiplier
 
DtTime myFixedFrameRate
 
DtTime myExerciseStartTime
 
double mySimTimeScale
 
DtTime myLastSetSimTime
 
int myFrameSinceOverrunPrintCount
 
int myFrameOverrunCount
 
double myMaxOverrunTime
 
DtTimeStampType myTimeStampType
 
double myExerciseConnectionClockTime
 
bool myUsingFastForwardFrameSettings
 
FrameMode myDefaultFrameMode
 
DtTime myDefaultFixedFrameRate
 
DtFastForwardSettings myFastForwardSettings
 
DtCallbackList< DtFloat64 > myTimeMultiplierUpdateCallbacks
 

Additional Inherited Members

- Static Public Member Functions inherited from DtSimClock
static DtTime stringToSeconds (const DtString &timeString)
 
static DtStringsecondsToElapsedTimeString (DtTime seconds, DtString &strBuffer)
 
static DtStringsecondsToExerciseTimeString (DtTime seconds, DtString &strBuffer)
 
static void secondsToDaysHoursMinutesSeconds (DtTime secondsInput, int &days, int &hours, int &minutes, DtTime &seconds)
 
static DtTime daysHoursMinutesSecondsToSeconds (DtTime days, DtTime hours, DtTime minutes, DtTime seconds)
 
static bool processElapsedTimeString (const char *input, int &numDigitsFound, int &value1, int &value2, int &value3, int &value4)
 

Member Enumeration Documentation

Enumerator
FmRunToComplete 
FmFixed 
FmHybrid 

Constructor & Destructor Documentation

DtExerciseClock::DtExerciseClock ( )

default constructor

DtExerciseClock::DtExerciseClock ( const DtExerciseClock orig)

copy constructor

virtual DtExerciseClock::~DtExerciseClock ( )
virtual

destructor

Member Function Documentation

DtExerciseClock& DtExerciseClock::operator= ( const DtExerciseClock orig)

assignment operator

virtual void DtExerciseClock::init ( )
virtual

Initializes the clock - must be called before any other member functions are called.

Reimplemented in makVrf::DtHlaExerciseClock.

virtual void DtExerciseClock::reset ( )
virtual

Initialize the clock to 00:00:00 elapsed time.

virtual void DtExerciseClock::tick ( DtCommunicationManagerPerformanceTimerInformation performanceTimerInformation = nullptr)
virtual

Advance simulation time, if not paused.

Reimplemented in makVrf::DtHlaExerciseClock.

virtual void DtExerciseClock::pause ( )
virtual

Tell tick() not to advance simulation time.

virtual void DtExerciseClock::resume ( )
virtual

Tells tick() to resume advancing simluation time.

bool DtExerciseClock::isPaused ( ) const
inlinevirtual

Returns true if system is paused, false otherwise.

References myPaused.

virtual void DtExerciseClock::setFixedFrameMode ( DtTime  dT)
virtual

Tells the exercise clock to use a best effort fixed frame (constant dT).

virtual bool DtExerciseClock::isFixedFrameMode ( ) const
virtual
virtual void DtExerciseClock::setRunToCompleteFrameMode ( )
virtual

Go into variable frame (run to complete) mode.

virtual bool DtExerciseClock::isRunToCompleteFrameMode ( ) const
virtual
virtual void DtExerciseClock::setHybridFrameMode ( DtTime  dT)
virtual

Go into a hybrid mode of fixed dT run-to complete.

virtual bool DtExerciseClock::isHybridFrameMode ( ) const
virtual
virtual void DtExerciseClock::setFixedFrameRate ( DtTime  dT)
virtual

Change the value to be used in fixed frame or hybrid frame mode. This will have no effect in run to complete frame mode.

virtual DtTime DtExerciseClock::fixedFrameRate ( ) const
virtual

Get the curent rate if in fixed frame or hybrid frame mode; otherwise, returns 0.0.

virtual void DtExerciseClock::setTimeMultiplier ( DtFloat64  timeMultiplier)
virtual

Set faster or slower than real-time operation (the range of values for which the system will perform in a rational manner have yet to be determined.)

virtual DtFloat64 DtExerciseClock::timeMultiplier ( ) const
virtual

Returns time multiplier, a real scalar.

virtual void DtExerciseClock::setFastForwardSettings ( const DtFastForwardSettings settings)
virtual

Sets the fast forward settings.

virtual DtString& DtExerciseClock::elapsedSimTimeString ( DtString strBuffer) const
virtual

Returns elapsed time as a string in the form ddd:hh:mm:ss.

virtual void DtExerciseClock::setExerciseStartTime ( DtTime  time)
virtual

Set exercise start time in seconds.

virtual DtTime DtExerciseClock::exerciseStartTime ( ) const
virtual

Use this to get the time the exercise started, expressed in seconds.

virtual DtString& DtExerciseClock::exerciseStartTimeString ( DtString strBuffer) const
virtual
virtual DtTime DtExerciseClock::exerciseTime ( ) const
virtual

Returns current exercise time (exercise start time + elapsed time).

virtual DtString& DtExerciseClock::exerciseTimeString ( DtString strBuffer) const
virtual
virtual void DtExerciseClock::setExerciseConnectionClockTime ( double  )
virtual
virtual void DtExerciseClock::set_dT ( DtTime  dT)
virtual

Force a dT value (if called after tick!); note - this does not update elapsed time.

virtual DtTime DtExerciseClock::dT ( ) const
virtual

Returns dT, in seconds.

virtual void DtExerciseClock::setTimeStampType ( DtTimeStampType  )
virtual
DtTimeStampType DtExerciseClock::timeStampType ( ) const
inline
virtual double DtExerciseClock::simTimeScale ( ) const
virtual
virtual void DtExerciseClock::addTimeMultiplierUpdateCallback ( DtCallbackList< DtFloat64 >::DtCallbackFunctionType  ,
void *  usr 
)
virtual

Adds a callback to be called when the time multiplier changes.

virtual void DtExerciseClock::removeTimeMultiplierUpdateCallback ( DtCallbackList< DtFloat64 >::DtCallbackFunctionType  fcn,
void *  usr 
)
virtual

Removes a callback to be called when the time multiplier changes.

Member Data Documentation

enum DtExerciseClock::FrameMode DtExerciseClock::myFrameMode
protected
bool DtExerciseClock::myFirstFrame
protected
bool DtExerciseClock::myPaused
protected

Referenced by isPaused().

DtTime DtExerciseClock::myLastRealTime
protected
DtTime DtExerciseClock::my_dT
protected
DtFloat64 DtExerciseClock::myTimeMultiplier
protected
DtTime DtExerciseClock::myFixedFrameRate
protected
DtTime DtExerciseClock::myExerciseStartTime
protected
double DtExerciseClock::mySimTimeScale
protected
DtTime DtExerciseClock::myLastSetSimTime
protected
int DtExerciseClock::myFrameSinceOverrunPrintCount
protected
int DtExerciseClock::myFrameOverrunCount
protected
double DtExerciseClock::myMaxOverrunTime
protected
DtTimeStampType DtExerciseClock::myTimeStampType
protected
double DtExerciseClock::myExerciseConnectionClockTime
protected
bool DtExerciseClock::myUsingFastForwardFrameSettings
protected
FrameMode DtExerciseClock::myDefaultFrameMode
protected
DtTime DtExerciseClock::myDefaultFixedFrameRate
protected
DtFastForwardSettings DtExerciseClock::myFastForwardSettings
protected
DtCallbackList<DtFloat64> DtExerciseClock::myTimeMultiplierUpdateCallbacks
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)