WSF
WsfSectorScanSensorScheduler Class Reference

#include <WsfSectorScanSensorScheduler.hpp>

Inheritance diagram for WsfSectorScanSensorScheduler:
Collaboration diagram for WsfSectorScanSensorScheduler:

Public Member Functions

 WsfSectorScanSensorScheduler ()
 ~WsfSectorScanSensorScheduler () override=default
WsfSensorSchedulerClone () const override
bool ProcessInput (UtInput &aInput) override
bool Initialize (double aSimTime, WsfSensor *aSensorPtr, WsfSensorTracker *aTrackerPtr) override
void TransitionSector (double aSimTime)
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
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)

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 Sector Scan Sensor Scheduler provides a sensor scanning function that is more temporally correct for choosing detection targets than the default scheduler. It also allows for definition of scan "sectors" in azimuth and elevation, such as for multi-bar radar scans or as a scan pattern for an optical sensor. The sensor is cued to the instantaneous scan location, so script and visualizations have the correct pointing location.

Constructor & Destructor Documentation

◆ WsfSectorScanSensorScheduler()

WsfSectorScanSensorScheduler::WsfSectorScanSensorScheduler ( )

◆ ~WsfSectorScanSensorScheduler()

WsfSectorScanSensorScheduler::~WsfSectorScanSensorScheduler ( )
overridedefault

Member Function Documentation

◆ Clone()

WsfSensorScheduler * WsfSectorScanSensorScheduler::Clone ( ) const
overridevirtual

◆ Initialize()

bool WsfSectorScanSensorScheduler::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 WsfArticulatedPart::cSLEW_AZ_EL, WsfModeList::GetDerivedModeList(), WsfSensor::GetModeList(), WsfArticulatedPart::GetSlewMode(), WsfSensor::GetUpdateInterval(), WsfSensorScheduler::Initialize(), WsfSensorScheduler::mSensorPtr, and ok.

◆ ModeDeselected()

void WsfSectorScanSensorScheduler::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 WsfSectorScanSensorScheduler::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 > WsfSectorScanSensorScheduler::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 ~WsfSectorScanSensorScheduler().

◆ PlatformAdded()

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

A platform has been added to the simulation.

Parameters
aSimTimeThe current simulation time.
aPlatformPtrA pointer to the platform that was added.

Reimplemented from WsfSensorScheduler.

References WsfPlatform::GetIndex(), and WsfSensorScheduler::mSearchList.

◆ ProcessInput()

bool WsfSectorScanSensorScheduler::ProcessInput ( UtInput & aInput)
overridevirtual

Reimplemented from WsfSensorScheduler.

References WsfSensorScheduler::ProcessInput().

◆ RemoveTarget()

void WsfSectorScanSensorScheduler::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.

◆ SelectTarget()

bool WsfSectorScanSensorScheduler::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 WsfPlatform::GetIndex(), WsfSimulation::GetPlatformByIndex(), WsfSensorScheduler::GetSimulation(), WsfSensor::Settings::mModeIndex, WsfSensorScheduler::mSearchList, WsfSensorScheduler::mSensorPtr, WsfTrackId::Null(), and WsfPlatform::Update().

◆ TransitionSector()

void WsfSectorScanSensorScheduler::TransitionSector ( double aSimTime)

Transition to the next scanning sector and begin scanning.

Parameters
aSimTimeThe current simulation time.

Referenced by ~WsfSectorScanSensorScheduler().

◆ TurnOff()

void WsfSectorScanSensorScheduler::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 WsfSectorScanSensorScheduler::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