|
WSF
|
#include <WsfSensorScheduler.hpp>


Public Member Functions | |
| WsfSensorScheduler () | |
| virtual | ~WsfSensorScheduler ()=default |
| virtual WsfSensorScheduler * | Clone () const |
| 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 bool | Initialize (double aSimTime, WsfSensor *aSensorPtr, WsfSensorTracker *aTrackerPtr) |
| virtual void | ModeDeselected (double aSimTime, WsfStringId aModeNameId) |
| virtual void | ModeSelected (double aSimTime, WsfStringId aModeNameId) |
| virtual void | PlatformAdded (double aSimTime, WsfPlatform *aPlatformPtr) |
| virtual void | PlatformDeleted (WsfPlatform *aPlatformPtr) |
| virtual bool | ProcessInput (UtInput &aInput) |
| virtual void | RemoveTarget (double aSimTime, size_t aTargetIndex) |
| virtual const WsfTrack & | GetTrackForRequest (const WsfTrackId &aRequestId) const |
| virtual bool | SelectTarget (double aSimTime, double &aNextSimTime, size_t &aTargetIndex, WsfTrackId &aRequestId, WsfSensor::Settings &aSettings) |
| 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) |
| virtual void | TurnOff (double aSimTime) |
| virtual void | TurnOn (double aSimTime) |
| WsfSimulation * | GetSimulation () const |
Protected Types | |
| using | SearchList = std::vector<size_t> |
| using | SearchListIndex = SearchList::size_type |
Protected Member Functions | |
| WsfSensorScheduler (const WsfSensorScheduler &aSrc) | |
| WsfSensorScheduler & | operator= (const WsfSensorScheduler &aSrc)=delete |
| const SearchList & | GetSearchList () const |
Protected Attributes | |
| WsfSensor * | mSensorPtr |
| WsfSensorTracker * | mTrackerPtr |
| SearchList | mSearchList |
Schedules detection chances for sensors.
The main task of the sensor scheduler is to schedule detection chances for a sensor. WsfSensorScheduler is a virtual interface for sensor scheduler implementations. See WsfDefaultSensorScheduler for the default scheduler implementation.
|
protected |
|
protected |
| WsfSensorScheduler::WsfSensorScheduler | ( | ) |
References mSearchList, mSensorPtr, and mTrackerPtr.
Referenced by WsfDefaultSensorScheduler::Clone(), WsfEOIR_Sensor::EOIR_SensorScheduler::Clone(), WsfPhysicalScanSensorScheduler::Clone(), WsfSectorScanSensorScheduler::Clone(), Clone(), WsfSensorsManagerFovSensorScheduler::Clone(), WsfSpinSensorScheduler::Clone(), WsfEOIR_Sensor::EOIR_SensorScheduler::EOIR_SensorScheduler(), operator=(), WsfDefaultSensorScheduler::WsfDefaultSensorScheduler(), WsfDefaultSensorScheduler::WsfDefaultSensorScheduler(), WsfPhysicalScanSensorScheduler::WsfPhysicalScanSensorScheduler(), WsfPhysicalScanSensorScheduler::WsfPhysicalScanSensorScheduler(), WsfSectorScanSensorScheduler::WsfSectorScanSensorScheduler(), WsfSensorScheduler(), WsfSpinSensorScheduler::WsfSpinSensorScheduler(), WsfEOIR_Sensor::EOIR_SensorScheduler::~EOIR_SensorScheduler(), WsfDefaultSensorScheduler::~WsfDefaultSensorScheduler(), WsfPhysicalScanSensorScheduler::~WsfPhysicalScanSensorScheduler(), WsfSectorScanSensorScheduler::~WsfSectorScanSensorScheduler(), ~WsfSensorScheduler(), and WsfSpinSensorScheduler::~WsfSpinSensorScheduler().
|
virtualdefault |
References Clone(), and WsfSensorScheduler().
|
protected |
References mSearchList, mSensorPtr, mTrackerPtr, and WsfSensorScheduler().
|
virtual |
Reimplemented in WsfDefaultSensorScheduler, WsfEOIR_Sensor::EOIR_SensorScheduler, WsfPhysicalScanSensorScheduler, WsfSectorScanSensorScheduler, WsfSensorsManagerFovSensorScheduler, and WsfSpinSensorScheduler.
References WsfSensorScheduler().
Referenced by ~WsfSensorScheduler().
|
inline |
Returns 'true' if debugging is enabled for the scheduler.
Referenced by WsfPhysicalScanSensorScheduler::Initialize(), WsfSpinSensorScheduler::PlatformAdded(), WsfDefaultSensorScheduler::SelectTarget(), WsfPhysicalScanSensorScheduler::SelectTarget(), WsfSpinSensorScheduler::SelectTarget(), WsfDefaultSensorScheduler::StartTracking(), WsfDefaultSensorScheduler::StopTracking(), WsfDefaultSensorScheduler::TrackerModeChange(), WsfPhysicalScanSensorScheduler::TurnOff(), WsfSectorScanSensorScheduler::TurnOff(), WsfSpinSensorScheduler::TurnOff(), WsfPhysicalScanSensorScheduler::TurnOn(), WsfSectorScanSensorScheduler::TurnOn(), and WsfSpinSensorScheduler::TurnOn().
|
virtual |
A notification call to indicate the frame time for the specified mode has changed.
| aSimTime | The current simulation time. |
| aModeNameId | The name (string ID) of the mode. |
Reimplemented in WsfDefaultSensorScheduler.
|
virtual |
Return the number of requests that are active in a specified mode.
| aModeNameId | The name (string ID) of the mode. |
Reimplemented in WsfDefaultSensorScheduler.
|
virtual |
Return the maximum number of requests that can be processed by the indicated mode.
| aModeNameId | The name (string ID) of the mode. |
Reimplemented in WsfDefaultSensorScheduler.
|
inlineprotected |
References mSearchList.
| WsfSimulation * WsfSensorScheduler::GetSimulation | ( | ) | const |
References mSensorPtr.
Referenced by WsfPhysicalScanSensorScheduler::Initialize(), WsfSpinSensorScheduler::Initialize(), WsfSpinSensorScheduler::PlatformAdded(), WsfPhysicalScanSensorScheduler::SelectTarget(), WsfSectorScanSensorScheduler::SelectTarget(), WsfSpinSensorScheduler::SelectTarget(), WsfPhysicalScanSensorScheduler::TurnOn(), WsfSectorScanSensorScheduler::TurnOn(), and WsfSpinSensorScheduler::TurnOn().
|
virtual |
Returns the track data for the request, this return is of a constant type to prevent modification.
| aRequestId | The track ID. This should be the track ID of a track submitted to StartTracking. |
Reimplemented in WsfDefaultSensorScheduler.
|
virtual |
Does the scheduler have a request for the indicated track ID?
| aRequestId | The track ID. This should be the track ID of a track submitted to StartTracking. |
Reimplemented in WsfDefaultSensorScheduler.
|
virtual |
Initialize the scheduler.
| aSimTime | The current simulation time. |
| aSensorPtr | The sensor with which the scheduler is associated. |
| aTrackerPtr | The tracker that is associated with the sensor. This can be zero if there is no tracker. |
Reimplemented in WsfDefaultSensorScheduler, WsfPhysicalScanSensorScheduler, WsfSectorScanSensorScheduler, and WsfSpinSensorScheduler.
References mSensorPtr, and mTrackerPtr.
Referenced by WsfDefaultSensorScheduler::Initialize(), WsfPhysicalScanSensorScheduler::Initialize(), WsfSectorScanSensorScheduler::Initialize(), and WsfSpinSensorScheduler::Initialize().
|
virtual |
A mode has been explicitly deselected. This is called from WsfSensor::DeselectMode to indicate that a mode has been deselected.
| aSimTime | The current simulation time. |
| aModeNameId | The name (string ID) of the mode that has been deselected. |
Reimplemented in WsfDefaultSensorScheduler, WsfPhysicalScanSensorScheduler, WsfSectorScanSensorScheduler, and WsfSpinSensorScheduler.
|
virtual |
A mode has been explicitly selected. This is called from WsfSensor::SelectMode to indicate that a mode has been selected.
| aSimTime | The current simulation time. |
| aModeNameId | The name (string ID) of the mode that has been selected. |
Reimplemented in WsfDefaultSensorScheduler, WsfPhysicalScanSensorScheduler, WsfSectorScanSensorScheduler, and WsfSpinSensorScheduler.
|
protecteddelete |
References WsfSensorScheduler().
|
virtual |
A platform has been added to the simulation.
| aSimTime | The current simulation time. |
| aPlatformPtr | A pointer to the platform that was added. |
Reimplemented in WsfDefaultSensorScheduler, WsfPhysicalScanSensorScheduler, WsfSectorScanSensorScheduler, and WsfSpinSensorScheduler.
|
virtual |
A platform has been removed from the simulation.
| aPlatformPtr | A pointer to the platform that was deleted. |
Reimplemented in WsfDefaultSensorScheduler.
|
virtual |
Reimplemented in WsfDefaultSensorScheduler, WsfPhysicalScanSensorScheduler, WsfSectorScanSensorScheduler, and WsfSpinSensorScheduler.
Referenced by WsfDefaultSensorScheduler::ProcessInput(), WsfPhysicalScanSensorScheduler::ProcessInput(), WsfSectorScanSensorScheduler::ProcessInput(), and WsfSpinSensorScheduler::ProcessInput().
|
virtual |
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.
| aSimTime | The current simulation time. |
| aTargetIndex | The object ID of the target to be removed. |
Reimplemented in WsfDefaultSensorScheduler, WsfPhysicalScanSensorScheduler, WsfSectorScanSensorScheduler, and WsfSpinSensorScheduler.
|
virtual |
Select a target for a detection attempt.
| 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. |
Reimplemented in WsfDefaultSensorScheduler, WsfEOIR_Sensor::EOIR_SensorScheduler, WsfPhysicalScanSensorScheduler, WsfSectorScanSensorScheduler, and WsfSpinSensorScheduler.
|
inline |
|
virtual |
Start tracking a target specified by a track.
| aSimTime | The current simulation time. |
| aTrack | The target track cue. |
| aModeNameId | The mode name (string ID) of the mode to be used. If zero then the implementation will choose an appropriate mode. |
Reimplemented in WsfDefaultSensorScheduler.
|
virtual |
Stop tracking a target.
| aSimTime | The current simulation time. |
| aRequestId | The track ID from the track that was provided to StartTracking. |
Reimplemented in WsfDefaultSensorScheduler.
|
virtual |
The tracker has changed the mode for the requested target.
| aSimTime | The current simulation time. |
| aRequestId | If non-zero, the associated sensor scheduler request ID. |
| aTargetIndex | The index of the target of interest. For a platform this should be its platform ID and for other objects it should be their unique ID. |
| aTargetPtr | The pointer of the target of interest. |
| aTrackPtr | Pointer to the current track associated with the target (may be zero). |
| aModeNameId | The name (ID) of the new mode. |
Reimplemented in WsfDefaultSensorScheduler.
|
virtual |
The sensor is being turned off.
| aSimTime | The current simulation time. |
Reimplemented in WsfDefaultSensorScheduler, WsfPhysicalScanSensorScheduler, WsfSectorScanSensorScheduler, WsfSensorsManagerFovSensorScheduler, and WsfSpinSensorScheduler.
|
virtual |
The sensor is being turned on.
| aSimTime | The current simulation time. |
Reimplemented in WsfDefaultSensorScheduler, WsfPhysicalScanSensorScheduler, WsfSectorScanSensorScheduler, WsfSensorsManagerFovSensorScheduler, and WsfSpinSensorScheduler.
|
protected |
A list of platform indices representing search chances. See the notes at the top of the implementation file for more information.
Referenced by GetSearchList(), WsfDefaultSensorScheduler::PlatformAdded(), WsfPhysicalScanSensorScheduler::PlatformAdded(), WsfSectorScanSensorScheduler::PlatformAdded(), WsfSpinSensorScheduler::PlatformAdded(), WsfDefaultSensorScheduler::PlatformDeleted(), WsfDefaultSensorScheduler::RemoveTarget(), WsfPhysicalScanSensorScheduler::RemoveTarget(), WsfSectorScanSensorScheduler::RemoveTarget(), WsfSpinSensorScheduler::RemoveTarget(), WsfDefaultSensorScheduler::ResetSearchList(), WsfPhysicalScanSensorScheduler::ResetSearchList(), WsfDefaultSensorScheduler::SelectTarget(), WsfPhysicalScanSensorScheduler::SelectTarget(), WsfSectorScanSensorScheduler::SelectTarget(), WsfSpinSensorScheduler::SelectTarget(), WsfDefaultSensorScheduler::UpdateSearchChanceInterval(), WsfSensorScheduler(), and WsfSensorScheduler().
|
protected |
Referenced by WsfDefaultSensorScheduler::CheckSearchModeAvailability(), WsfDefaultSensorScheduler::DeselectMode(), WsfDefaultSensorScheduler::GetActiveRequestCount(), WsfDefaultSensorScheduler::GetMaximumRequestCount(), GetSimulation(), WsfDefaultSensorScheduler::Initialize(), WsfPhysicalScanSensorScheduler::Initialize(), WsfSectorScanSensorScheduler::Initialize(), Initialize(), WsfSpinSensorScheduler::Initialize(), WsfDefaultSensorScheduler::ModeDeselected(), WsfPhysicalScanSensorScheduler::ModeDeselected(), WsfSectorScanSensorScheduler::ModeDeselected(), WsfSpinSensorScheduler::ModeDeselected(), WsfDefaultSensorScheduler::ModeSelected(), WsfPhysicalScanSensorScheduler::ModeSelected(), WsfSectorScanSensorScheduler::ModeSelected(), WsfSpinSensorScheduler::ModeSelected(), WsfSpinSensorScheduler::PlatformAdded(), WsfDefaultSensorScheduler::SelectMode(), WsfDefaultSensorScheduler::SelectTarget(), WsfEOIR_Sensor::EOIR_SensorScheduler::SelectTarget(), WsfPhysicalScanSensorScheduler::SelectTarget(), WsfSectorScanSensorScheduler::SelectTarget(), WsfSpinSensorScheduler::SelectTarget(), WsfDefaultSensorScheduler::StartTracking(), WsfDefaultSensorScheduler::StopTracking(), WsfDefaultSensorScheduler::TrackerModeChange(), WsfPhysicalScanSensorScheduler::TurnOff(), WsfSectorScanSensorScheduler::TurnOff(), WsfSpinSensorScheduler::TurnOff(), WsfDefaultSensorScheduler::TurnOn(), WsfPhysicalScanSensorScheduler::TurnOn(), WsfSectorScanSensorScheduler::TurnOn(), WsfSensorsManagerFovSensorScheduler::TurnOn(), WsfSpinSensorScheduler::TurnOn(), WsfDefaultSensorScheduler::UpdateSearchChanceInterval(), WsfDefaultSensorScheduler::UpdateSearchFrameTime(), WsfSensorScheduler(), and WsfSensorScheduler().
|
protected |