12#ifndef WSFDEFAULTSENSORSCHEDULER_HPP
13#define WSFDEFAULTSENSORSCHEDULER_HPP
15#include "wsf_export.h"
35 static std::unique_ptr<WsfSensorScheduler>
ObjectFactory(
const std::string& aTypeName);
59 void RemoveTarget(
double aSimTime,
size_t aTargetIndex)
override;
80 void TurnOff(
double aSimTime)
override;
82 void TurnOn(
double aSimTime)
override;
167 : mRequestId(aRequestId)
WsfTrackId GetTrackId(const UtScriptData &aScriptArg)
Definition WsfMilScriptExtensions.cpp:58
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
CompareRequestId(const WsfTrackId &aRequestId)
Definition WsfDefaultSensorScheduler.hpp:166
bool operator()(const Request &aRequest) const
Definition WsfDefaultSensorScheduler.hpp:171
Definition WsfDefaultSensorScheduler.hpp:88
double mNextVisitTime
The simulation time of the next visit (sensing chance).
Definition WsfDefaultSensorScheduler.hpp:114
WsfTrackId mRequestId
The track ID from the original request.
Definition WsfDefaultSensorScheduler.hpp:103
double mStartTime
The time when the request was initiated.
Definition WsfDefaultSensorScheduler.hpp:111
size_t mTargetIndex
The target index to be used for this track request.
Definition WsfDefaultSensorScheduler.hpp:120
double mLastVisitTime
The simulation time of the last visit (sensing chance).
Definition WsfDefaultSensorScheduler.hpp:117
Request(double aSimTime, const WsfTrack &aTrack, size_t aModeIndex)
Definition WsfDefaultSensorScheduler.hpp:91
WsfTrack mTrack
Definition WsfDefaultSensorScheduler.hpp:108
size_t mModeIndex
The index of the sensor mode to be used for this request.
Definition WsfDefaultSensorScheduler.hpp:123
Definition WsfDefaultSensorScheduler.hpp:29
void DeselectMode(double aSimTime, Request &aRequest)
Deselect the mode associated with the current request if it is not in use by other requests.
Definition WsfDefaultSensorScheduler.cpp:880
void ResetSearchList()
Definition WsfDefaultSensorScheduler.cpp:923
SearchListIndex mSearchIndex
The vector index of the next search chance to be performed.
Definition WsfDefaultSensorScheduler.hpp:187
static std::unique_ptr< WsfSensorScheduler > ObjectFactory(const std::string &aTypeName)
Definition WsfDefaultSensorScheduler.cpp:99
RequestList mRequestList
A list of active track requests.
Definition WsfDefaultSensorScheduler.hpp:190
bool mSearchAllowed
'true' if search chances can be processed.
Definition WsfDefaultSensorScheduler.hpp:203
~WsfDefaultSensorScheduler() override=default
size_t SelectTargetForRequest(Request &aRequest)
Definition WsfDefaultSensorScheduler.cpp:943
bool TargetHasActiveRequest(size_t aTargetIndex) const
Returns true if the target has an active request against it.
Definition WsfDefaultSensorScheduler.cpp:958
WsfDefaultSensorScheduler()
Definition WsfDefaultSensorScheduler.cpp:56
void UpdateSearchFrameTime(double aSimTime)
Definition WsfDefaultSensorScheduler.cpp:1026
void CheckSearchModeAvailability()
Check if the current mode selections provide for the ability to process search chances.
Definition WsfDefaultSensorScheduler.cpp:821
void UpdateSearchChanceInterval()
Definition WsfDefaultSensorScheduler.cpp:1005
std::vector< Request > RequestList
Definition WsfDefaultSensorScheduler.hpp:125
RequestListIndex mRequestIndex
The index of the next request to be performed.
Definition WsfDefaultSensorScheduler.hpp:193
WsfDefaultSensorScheduler & operator=(const WsfDefaultSensorScheduler &)=delete
size_t mLastExplicitModeIndex
The last mode explicitly selected (i.e.: via WsfSensor::SelectMode).
Definition WsfDefaultSensorScheduler.hpp:196
ScanSchedulingMethod
Definition WsfDefaultSensorScheduler.hpp:132
@ cSSM_RANDOM
Definition WsfDefaultSensorScheduler.hpp:133
@ cSSM_REVERSE_INPUT_ORDER
Definition WsfDefaultSensorScheduler.hpp:135
@ cSSM_INPUT_ORDER
Definition WsfDefaultSensorScheduler.hpp:134
double mSearchFrameTime
Definition WsfDefaultSensorScheduler.hpp:184
const RequestList & GetRequestList() const
Definition WsfDefaultSensorScheduler.hpp:128
void UpdateNextTrackVisitTime()
Definition WsfDefaultSensorScheduler.cpp:979
double mNextTrackVisitTime
Definition WsfDefaultSensorScheduler.hpp:182
RequestList::size_type RequestListIndex
Definition WsfDefaultSensorScheduler.hpp:126
double mSearchChanceInterval
Definition WsfDefaultSensorScheduler.hpp:183
ScanSchedulingMethod mScanSchedulingMethod
How scan chances are added to the search list.
Definition WsfDefaultSensorScheduler.hpp:210
void SelectMode(double aSimTime, Request &aRequest)
Definition WsfDefaultSensorScheduler.cpp:912
size_t mSearchModeIndex
Definition WsfDefaultSensorScheduler.hpp:200
std::vector< WsfSensorMode * > mModeList
The pointers to the sensor modes, indexed by mode index.
Definition WsfDefaultSensorScheduler.hpp:178
void ResetTrackList()
Definition WsfDefaultSensorScheduler.cpp:933
double mDwellEndTime
Definition WsfDefaultSensorScheduler.hpp:180
double mNextSearchVisitTime
Definition WsfDefaultSensorScheduler.hpp:181
bool mCheckSearchList
Definition WsfDefaultSensorScheduler.hpp:207
virtual void RemoveTarget(double aSimTime, size_t aTargetIndex)
Definition WsfSensorScheduler.cpp:150
virtual void PlatformAdded(double aSimTime, WsfPlatform *aPlatformPtr)
Definition WsfSensorScheduler.cpp:122
virtual void TurnOff(double aSimTime)
Definition WsfSensorScheduler.cpp:213
virtual bool HaveRequestFor(const WsfTrackId &aRequestId) const
Definition WsfSensorScheduler.cpp:79
virtual bool Initialize(double aSimTime, WsfSensor *aSensorPtr, WsfSensorTracker *aTrackerPtr)
Definition WsfSensorScheduler.cpp:91
virtual bool SelectTarget(double aSimTime, double &aNextSimTime, size_t &aTargetIndex, WsfTrackId &aRequestId, WsfSensor::Settings &aSettings)
Definition WsfSensorScheduler.cpp:176
virtual int GetMaximumRequestCount(WsfStringId aModeNameId) const
Definition WsfSensorScheduler.cpp:70
virtual void FrameTimeChanged(double aSimTime, WsfStringId aModeNameId)
Definition WsfSensorScheduler.cpp:55
virtual int GetActiveRequestCount(WsfStringId aModeNameId) const
Definition WsfSensorScheduler.cpp:61
WsfSensorScheduler()
Definition WsfSensorScheduler.cpp:26
virtual void ModeDeselected(double aSimTime, WsfStringId aModeNameId)
Definition WsfSensorScheduler.cpp:106
virtual void PlatformDeleted(WsfPlatform *aPlatformPtr)
Definition WsfSensorScheduler.cpp:128
virtual void TrackerModeChange(double aSimTime, const WsfTrackId &aRequestId, size_t aTargetIndex, WsfPlatform *aTargetPtr, const WsfTrack *aTrackPtr, WsfStringId aModeNameId)
Definition WsfSensorScheduler.cpp:232
virtual void TurnOn(double aSimTime)
Definition WsfSensorScheduler.cpp:219
SearchList::size_type SearchListIndex
Definition WsfSensorScheduler.hpp:92
virtual WsfSensorScheduler * Clone() const
Definition WsfSensorScheduler.cpp:45
virtual bool StartTracking(double aSimTime, const WsfTrack &aTrack, WsfStringId aModeNameId)
Definition WsfSensorScheduler.cpp:193
virtual void ModeSelected(double aSimTime, WsfStringId aModeNameId)
Definition WsfSensorScheduler.cpp:115
virtual bool ProcessInput(UtInput &aInput)
Definition WsfSensorScheduler.cpp:132
virtual bool StopTracking(double aSimTime, const WsfTrackId &aTrackId)
Definition WsfSensorScheduler.cpp:204
virtual const WsfTrack & GetTrackForRequest(const WsfTrackId &aRequestId) const
Definition WsfSensorScheduler.cpp:157
Definition WsfSensorTracker.hpp:75
Definition WsfSensor.hpp:133
Definition WsfSensor.hpp:92
Definition WsfTrackId.hpp:33
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120