WSF
WsfSpinSensorScheduler Class Reference

#include <WsfSpinSensorScheduler.hpp>

Inheritance diagram for WsfSpinSensorScheduler:
Collaboration diagram for WsfSpinSensorScheduler:

Public Member Functions

 WsfSpinSensorScheduler ()=default
 ~WsfSpinSensorScheduler () override=default
Public Member Functions inherited from WsfSensorScheduler
 WsfSensorScheduler ()
virtual ~WsfSensorScheduler ()=default
bool DebugEnabled () const
 Returns 'true' if debugging is enabled for the scheduler.
void SetDebugEnabled (bool aDebug)
virtual void FrameTimeChanged (double aSimTime, WsfStringId aModeNameId)
virtual int GetActiveRequestCount (WsfStringId aModeNameId) const
virtual int GetMaximumRequestCount (WsfStringId aModeNameId) const
virtual bool HaveRequestFor (const WsfTrackId &aRequestId) const
virtual void PlatformDeleted (WsfPlatform *aPlatformPtr)
virtual const WsfTrackGetTrackForRequest (const WsfTrackId &aRequestId) const
virtual bool StartTracking (double aSimTime, const WsfTrack &aTrack, WsfStringId aModeNameId)
virtual bool StopTracking (double aSimTime, const WsfTrackId &aTrackId)
virtual void TrackerModeChange (double aSimTime, const WsfTrackId &aRequestId, size_t aTargetIndex, WsfPlatform *aTargetPtr, const WsfTrack *aTrackPtr, WsfStringId aModeNameId)
WsfSimulationGetSimulation () const

Static Public Member Functions

static std::unique_ptr< WsfSensorSchedulerObjectFactory (const std::string &aTypeName)

Common infrastructure methods.

WsfSensorSchedulerClone () const override
bool Initialize (double aSimTime, WsfSensor *aSensorPtr, WsfSensorTracker *aTrackerPtr) override
bool ProcessInput (UtInput &aInput) override
void ModeDeselected (double aSimTime, WsfStringId aModeNameId) override
void ModeSelected (double aSimTime, WsfStringId aModeNameId) override
void PlatformAdded (double aSimTime, WsfPlatform *aPlatformPtr) override
void RemoveTarget (double aSimTime, size_t aTargetIndex) override
bool SelectTarget (double aSimTime, double &aNextSimTime, size_t &aTargetIndex, WsfTrackId &aRequestId, WsfSensor::Settings &aSettings) override
void TurnOff (double aSimTime) override
void TurnOn (double aSimTime) override
 WsfSpinSensorScheduler (const WsfSpinSensorScheduler &aSrc)
WsfSpinSensorScheduleroperator= (const WsfSpinSensorScheduler &)=delete

Additional Inherited Members

Protected Types inherited from WsfSensorScheduler
using SearchList = std::vector<size_t>
using SearchListIndex = SearchList::size_type
Protected Member Functions inherited from WsfSensorScheduler
 WsfSensorScheduler (const WsfSensorScheduler &aSrc)
WsfSensorScheduleroperator= (const WsfSensorScheduler &aSrc)=delete
const SearchListGetSearchList () const
Protected Attributes inherited from WsfSensorScheduler
WsfSensormSensorPtr
WsfSensorTrackermTrackerPtr
SearchList mSearchList

Detailed Description

The WsfSpinSensorScheduler provides a sensor scanning function that aims to capture the behavior of a spinning radar system in a temporally accurate manner. No explicit scanning or slewing of the sensor beam is visible in Mystic, as the WsfSpinSensorScheduler assumes the sensor it is scheduling has a 360 degree field of view.

Constructor & Destructor Documentation

◆ WsfSpinSensorScheduler() [1/2]

WsfSpinSensorScheduler::WsfSpinSensorScheduler ( )
default

◆ ~WsfSpinSensorScheduler()

WsfSpinSensorScheduler::~WsfSpinSensorScheduler ( )
overridedefault

◆ WsfSpinSensorScheduler() [2/2]

WsfSpinSensorScheduler::WsfSpinSensorScheduler ( const WsfSpinSensorScheduler & aSrc)
protected

Member Function Documentation

◆ Clone()

WsfSensorScheduler * WsfSpinSensorScheduler::Clone ( ) const
overridevirtual

Clone this object.

Returns
a pointer to the new object.

Reimplemented from WsfSensorScheduler.

References WsfSensorScheduler::WsfSensorScheduler(), and WsfSpinSensorScheduler().

◆ Initialize()

bool WsfSpinSensorScheduler::Initialize ( double aSimTime,
WsfSensor * aSensorPtr,
WsfSensorTracker * aTrackerPtr )
overridevirtual

Initialize the scheduler.

Parameters
aSimTimeThe current simulation time.
aSensorPtrThe sensor with which the scheduler is associated.
aTrackerPtrThe tracker that is associated with the sensor. This can be zero if there is no tracker.
Returns
'true' if successful or 'false' if not.

Reimplemented from WsfSensorScheduler.

References WsfModeList::GetDerivedModeList(), WsfSensor::GetModeList(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfSimulation::GetRandom(), WsfSensorScheduler::GetSimulation(), WsfSensorScheduler::Initialize(), WsfSensorScheduler::mSensorPtr, and ok.

◆ ModeDeselected()

void WsfSpinSensorScheduler::ModeDeselected ( double aSimTime,
WsfStringId aModeNameId )
overridevirtual

A mode has been explicitly deselected. This is called from WsfSensor::DeselectMode to indicate that a mode has been deselected.

Parameters
aSimTimeThe current simulation time.
aModeNameIdThe name (string ID) of the mode that has been deselected.
Note
This is not called for implicit mode deselections that occur with tracking requests.

Reimplemented from WsfSensorScheduler.

References WsfSensorScheduler::mSensorPtr.

◆ ModeSelected()

void WsfSpinSensorScheduler::ModeSelected ( double aSimTime,
WsfStringId aModeNameId )
overridevirtual

A mode has been explicitly selected. This is called from WsfSensor::SelectMode to indicate that a mode has been selected.

Parameters
aSimTimeThe current simulation time.
aModeNameIdThe name (string ID) of the mode that has been selected.
Note
This is not called for implicit mode selections that occur with tracking requests.

Reimplemented from WsfSensorScheduler.

References WsfSensorScheduler::mSensorPtr.

◆ ObjectFactory()

std::unique_ptr< WsfSensorScheduler > WsfSpinSensorScheduler::ObjectFactory ( const std::string & aTypeName)
static

Factory method for WsfSensorSchedulerTypes to determine if a scheduler represented by this class is being requested.

Referenced by WsfSensorTypes::WsfSensorTypes(), and ~WsfSpinSensorScheduler().

◆ operator=()

WsfSpinSensorScheduler & WsfSpinSensorScheduler::operator= ( const WsfSpinSensorScheduler & )
protecteddelete

◆ PlatformAdded()

void WsfSpinSensorScheduler::PlatformAdded ( double aSimTime,
WsfPlatform * aPlatformPtr )
overridevirtual

◆ ProcessInput()

bool WsfSpinSensorScheduler::ProcessInput ( UtInput & aInput)
overridevirtual

Reimplemented from WsfSensorScheduler.

References WsfSensorScheduler::ProcessInput().

◆ RemoveTarget()

void WsfSpinSensorScheduler::RemoveTarget ( double aSimTime,
size_t aTargetIndex )
overridevirtual

Indicate that the specified target should be removed from further consideration. This is called from the scheduler to indicate that the target should be removed from any scheduling list.

Parameters
aSimTimeThe current simulation time.
aTargetIndexThe object ID of the target to be removed.

Reimplemented from WsfSensorScheduler.

References WsfSensorScheduler::mSearchList.

Referenced by SelectTarget().

◆ SelectTarget()

bool WsfSpinSensorScheduler::SelectTarget ( double aSimTime,
double & aNextSimTime,
size_t & aTargetIndex,
WsfTrackId & aRequestId,
WsfSensor::Settings & aSettings )
overridevirtual

Select a target for a detection attempt.

Parameters
aSimTime[input] The current simulation time.
aNextSimTime[output] The simulation time when the scheduler should next be called.
aTargetIndex[output] The object ID of the target to be detected (typically a platform index or some other unique ID). This will not be valid if the return value from the method is false.
aRequestId[output] The request ID (original track ID from StartTracking) associated with the target. aRequest.IsNull() will be true if the target is not associated with a track request. This will not be valid if the return value from the method is false.
aSettings[updated] The sensor settings to be used for the detection attempt. This will not be valid if the return value from the method is false.
Returns
true if a target was selected or false if no target selected.

Reimplemented from WsfSensorScheduler.

References WsfSensorScheduler::DebugEnabled(), WsfSimulation::GetPlatformByIndex(), WsfSensorScheduler::GetSimulation(), WsfSensorScheduler::mSearchList, WsfSensorScheduler::mSensorPtr, and RemoveTarget().

◆ TurnOff()

void WsfSpinSensorScheduler::TurnOff ( double aSimTime)
overridevirtual

The sensor is being turned off.

Parameters
aSimTimeThe current simulation time.

Reimplemented from WsfSensorScheduler.

References WsfSensorScheduler::DebugEnabled(), and WsfSensorScheduler::mSensorPtr.

◆ TurnOn()

void WsfSpinSensorScheduler::TurnOn ( double aSimTime)
overridevirtual

The sensor is being turned on.

Parameters
aSimTimeThe current simulation time.

Reimplemented from WsfSensorScheduler.

References WsfSensorScheduler::DebugEnabled(), WsfSimulation::GetPlatformCount(), WsfSimulation::GetPlatformEntry(), WsfSensorScheduler::GetSimulation(), and WsfSensorScheduler::mSensorPtr.


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