WSF
WsfExtEntityDeadReckon Class Reference

#include <WsfExtEntityDeadReckon.hpp>

Inheritance diagram for WsfExtEntityDeadReckon:
Collaboration diagram for WsfExtEntityDeadReckon:

Classes

struct  DR_State
 Stores the state of an entity. More...
class  PlatformDR
 Maintains a platform's dead reckon state. More...

Public Types

enum  UpdateType { cNO_CHANGE = 0 , cDR_CHANGE = 1 , cHEARTBEAT = 2 }

Public Member Functions

 WsfExtEntityDeadReckon (WsfExtInterface *aExtInterfacePtr)
void Initialize ()
bool ProcessInput (UtInput &aInput)
void RequestService (bool aHeartbeatRequired)
void ForceUpdate (double aSimTime, WsfPlatform *aPlatformPtr, bool aForceSend=false)
void RequireExternalEntities (bool aExternalEntitiesRequired)
void UseInitialDistributionInterval ()
 Requests that the initial distribution interval is to be used.
double GetHeartbeatTimer () const
 Return the heartbeat timer (seconds).
void SetHeartbeatTimerOverride (double aTime)
 Set the current heartbeat timer for this individual platform.
double GetEntityOrientationThreshold () const
 Return the orientation threshold (radians).
double GetEntityPositionThreshold () const
 Return the position threshold (meters).
double GetInitialDistributionInterval () const
void SetInitialDistributionInterval (double aValue)
 Allow the initial distribution interval to be set.
double GetMoverUpdateTimer () const
void SetMoverUpdateTimer (double aMoverUpdateTimer)
Public Member Functions inherited from WsfExtEntityDeadReckonSetup
 WsfExtEntityDeadReckonSetup ()

Public Attributes

UtCallbackListN< void(double, PlatformDR &)> DeadReckonChanged
UtCallbackListN< void(double, PlatformDR &)> MoverUpdated
Public Attributes inherited from WsfExtEntityDeadReckonSetup
bool mDR_ServiceRequested
double mHeartbeatTimer
double mMoverUpdateTimer
double mInitialDistributionInterval
double mEntityPositionThreshold
double mEntityOrientationThreshold

Detailed Description

Provides a central place where external interfaces can register for entity position updates using a dead reckoning algorithm. This allows for DR to be computed only once for each internal platform, instead of once for each interface.

Member Enumeration Documentation

◆ UpdateType

Enumerator
cNO_CHANGE 
cDR_CHANGE 
cHEARTBEAT 

Constructor & Destructor Documentation

◆ WsfExtEntityDeadReckon()

WsfExtEntityDeadReckon::WsfExtEntityDeadReckon ( WsfExtInterface * aExtInterfacePtr)

Member Function Documentation

◆ ForceUpdate()

void WsfExtEntityDeadReckon::ForceUpdate ( double aSimTime,
WsfPlatform * aPlaformPtr,
bool aForceSend = false )

Forces an update of the dead reckoning for a specific platform. The caller should ensure the platform is updated to the current time before calling this method.

References WsfPlatform::GetIndex().

Referenced by WsfDisVisualization::BehaviorChange(), and WsfDisPlatform::ForceUpdate().

◆ GetEntityOrientationThreshold()

double WsfExtEntityDeadReckon::GetEntityOrientationThreshold ( ) const
inline

Return the orientation threshold (radians).

References WsfExtEntityDeadReckonSetup::mEntityOrientationThreshold.

◆ GetEntityPositionThreshold()

double WsfExtEntityDeadReckon::GetEntityPositionThreshold ( ) const
inline

Return the position threshold (meters).

References WsfExtEntityDeadReckonSetup::mEntityPositionThreshold.

◆ GetHeartbeatTimer()

double WsfExtEntityDeadReckon::GetHeartbeatTimer ( ) const
inline

Return the heartbeat timer (seconds).

References WsfExtEntityDeadReckonSetup::mHeartbeatTimer.

◆ GetInitialDistributionInterval()

double WsfExtEntityDeadReckon::GetInitialDistributionInterval ( ) const
inline

◆ GetMoverUpdateTimer()

double WsfExtEntityDeadReckon::GetMoverUpdateTimer ( ) const
inline

◆ Initialize()

◆ ProcessInput()

bool WsfExtEntityDeadReckon::ProcessInput ( UtInput & aInput)

◆ RequestService()

void WsfExtEntityDeadReckon::RequestService ( bool aHeartbeatRequired)

Request that WsfExtEntityDeadReckon is used. If this method isn't called, we assume we can do no work.

Parameters
aHeartbeatRequiredWhen 'true', WsfExtEntityDeadReckon will enforce updating the dead reckon state at a minimum of every heartbeat timer interval.

References Initialize(), and WsfExtEntityDeadReckonSetup::mDR_ServiceRequested.

Referenced by wsf::simdis::Interface::AddedToSimulation().

◆ RequireExternalEntities()

void WsfExtEntityDeadReckon::RequireExternalEntities ( bool aExternalEntitiesRequired)

◆ SetHeartbeatTimerOverride()

void WsfExtEntityDeadReckon::SetHeartbeatTimerOverride ( double aTime)
inline

Set the current heartbeat timer for this individual platform.

◆ SetInitialDistributionInterval()

void WsfExtEntityDeadReckon::SetInitialDistributionInterval ( double aValue)
inline

Allow the initial distribution interval to be set.

References WsfExtEntityDeadReckonSetup::mInitialDistributionInterval.

◆ SetMoverUpdateTimer()

void WsfExtEntityDeadReckon::SetMoverUpdateTimer ( double aMoverUpdateTimer)
inline

◆ UseInitialDistributionInterval()

void WsfExtEntityDeadReckon::UseInitialDistributionInterval ( )
inline

Requests that the initial distribution interval is to be used.

Member Data Documentation

◆ DeadReckonChanged

UtCallbackListN<void(double, PlatformDR&)> WsfExtEntityDeadReckon::DeadReckonChanged

Invoked every time a platform's dead reckon has changed. This is guaranteed to be called at least once every heartbeat interval

Referenced by wsf::simdis::Interface::AddedToSimulation().

◆ MoverUpdated

UtCallbackListN<void(double, PlatformDR&)> WsfExtEntityDeadReckon::MoverUpdated

Invoked every time GetSimulation()->GetObserver().MoverUpdated is called. The third parameter is 'true' if the dead reckon state was updated


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