15#ifndef WSFSENSORMODE_HPP
16#define WSFSENSORMODE_HPP
18#include "wsf_export.h"
22#include "UtCloneablePtr.hpp"
26class WsfSensorErrorModelBase;
100 void Select(
double aSimTime)
override = 0;
108 double& aRangeRateError)
final;
194 void SetErrorModel(std::unique_ptr<wsf::SensorErrorModelBase> aErrorModelPtr)
206 WSF_DEPRECATED
virtual void SetAzErrorStdDev(
double aAzErrorStdDev)
final;
207 WSF_DEPRECATED
virtual void SetElErrorStdDev(
double aElErrorStdDev)
final;
208 WSF_DEPRECATED
virtual void SetRangeErrorStdDev(
double aRangeErrorStdDev)
final;
209 WSF_DEPRECATED
virtual void SetRangeRateErrorStdDev(
double aRangeRateErrorStdDev)
final;
250 size_t mPlatformIndex;
383 static const unsigned int cNONE = 0;
390 static const unsigned int cSIDE = 64;
391 static const unsigned int cTYPE = 128;
398 static const unsigned int cOTHER = 16384;
399 static const unsigned int cALL = 0xFFFFFFFF;
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
WsfSpatialDomain
A collection of enumerations and type definitions that are used across a number of components.
Definition WsfTypes.hpp:32
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
SlewMode
Definition WsfArticulatedPart.hpp:44
EventDisposition
Definition WsfEvent.hpp:37
virtual bool ProcessInput(UtInput &aInput)
Definition WsfMode.cpp:24
WsfMode()
Definition WsfMode.cpp:15
WsfNamed & operator=(const WsfNamed &)=default
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfSensorBeam.hpp:58
Definition WsfSensorModeList.hpp:26
AltFrequencyChangeEvent(double aSimTime, WsfSensorMode *aSensorModePtr, int aAltFrequencyId=-1)
Alternate frequency selection/change event that changes a sensor's frequency.
Definition WsfSensorMode.cpp:1118
EventDisposition Execute() override
Definition WsfSensorMode.cpp:1129
WsfSensor * mSensorPtr
Pointer to the sensor with which the mode is associated.
Definition WsfSensorMode.hpp:261
static const unsigned int cFREQUENCY
Definition WsfSensorMode.hpp:394
ReportingFlags mReportingFlags
Definition WsfSensorMode.hpp:445
double MaintainTrackProbability() const
Definition WsfSensorMode.hpp:147
WsfStringId mOnSuccessModeName
Definition WsfSensorMode.hpp:364
void Select(double aSimTime) override=0
double mMaxAzCue
Definition WsfSensorMode.hpp:277
void SetFrameTime(double aFrameTime)
Definition WsfSensorMode.hpp:133
virtual WSF_DEPRECATED double GetRangeRateErrorStdDev() final
Definition WsfSensorMode.hpp:205
virtual bool AttemptToDetect(double aSimTime, WsfPlatform *aTargetPtr, WsfSensor::Settings &aSettings, WsfSensorResult &aResult)=0
double mTrackQuality
Base line track quality (0..1].
Definition WsfSensorMode.hpp:341
bool DisablesSearch() const
Does using this mode prevent this or any other mode from searching?
Definition WsfSensorMode.hpp:127
bool ReportsType() const
Definition WsfSensorMode.hpp:182
virtual void SelectAlternateFrequency(double aSimTime, int aAltFreqId=-1)
Definition WsfSensorMode.hpp:258
double GetFrameTime() const
Definition WsfSensorMode.hpp:132
double mElErrorStdDev
Definition WsfSensorMode.hpp:350
int EstablishTrackWindow() const
The window size (N) for establishing a track.
Definition WsfSensorMode.hpp:153
static const unsigned int cNONE
The following are flags/masks meant to be combined and used in the SetCapabilities method.
Definition WsfSensorMode.hpp:383
double mMinAzCue
Definition WsfSensorMode.hpp:276
static const unsigned int cTYPE
Definition WsfSensorMode.hpp:391
double mFrameTime
Definition WsfSensorMode.hpp:303
size_t mOnSuccessModeIndex
Definition WsfSensorMode.hpp:365
size_t GetOnFailureModeIndex() const
Definition WsfSensorMode.hpp:225
virtual void UpdateTrackReportingFlags(double aSimTime, WsfTrack *aTrackPtr)
Definition WsfSensorMode.cpp:1039
bool ReportsElevation() const
Definition WsfSensorMode.hpp:179
int mMessageLength
The length of messages originating from this sensor mode.
Definition WsfSensorMode.hpp:373
virtual bool WithinDetectionRange(double aSimTime, WsfPlatform *aTargetPtr)
Definition WsfSensorMode.cpp:1067
static const unsigned int cLOCATION
Definition WsfSensorMode.hpp:384
bool mCanSearchWhileTrack
Definition WsfSensorMode.hpp:294
ut::CloneablePtr< wsf::SensorErrorModelBase > mErrorModelPtr
The model that calculates and applies errors to sensor detection results.
Definition WsfSensorMode.hpp:360
double mRequiredPd
Definition WsfSensorMode.hpp:310
double mRangeErrorStdDev
Definition WsfSensorMode.hpp:353
bool CanSearchWhileTrack() const
Can this mode continue to search while it is also performing tracking requests.
Definition WsfSensorMode.hpp:130
static const unsigned int cSIGNAL_TO_NOISE
Definition WsfSensorMode.hpp:393
double GetRevisitTime() const
Definition WsfSensorMode.hpp:134
bool ReportsSignalToNoise() const
Definition WsfSensorMode.hpp:184
virtual WSF_DEPRECATED double GetAzErrorStdDev() final
Definition WsfSensorMode.hpp:202
WsfSpatialDomain mReportsSpatialDomain
Definition WsfSensorMode.hpp:379
bool mDisablesSearch
Definition WsfSensorMode.hpp:301
double mElCueRate
Definition WsfSensorMode.hpp:275
WsfSensor::SlewMode mCueMode
Definition WsfSensorMode.hpp:280
int HitsToEstablishTrack() const
The number of hits (M) within the window (N) that are required to establish a track.
Definition WsfSensorMode.hpp:150
virtual double GetAltFreqSelectDelay() const
Definition WsfSensorMode.hpp:83
double GetDwellTime() const
Definition WsfSensorMode.hpp:135
unsigned int GetReportingFlags() const
Accessors for the reporting flags.
Definition WsfSensorMode.hpp:173
bool ReportsRange() const
Definition WsfSensorMode.hpp:177
virtual size_t GetBeamCount() const
Definition WsfSensorMode.cpp:566
void SetCapabilities(unsigned int aFlags)
Definition WsfSensorMode.hpp:442
int mHitsToEstablishTrack
The number of hits (M) within the window (N) that are required to establish a track.
Definition WsfSensorMode.hpp:323
static const unsigned int cBEARING
Definition WsfSensorMode.hpp:387
virtual void UpdateTrack(double aSimTime, WsfTrack *aTrackPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult)
Definition WsfSensorMode.cpp:709
virtual WSF_DEPRECATED double GetElErrorStdDev() final
Definition WsfSensorMode.hpp:203
virtual bool Initialize(double aSimTime)
Definition WsfSensorMode.cpp:213
unsigned int EstablishTrackMask() const
Definition WsfSensorMode.hpp:163
virtual WSF_DEPRECATED double GetRangeErrorStdDev() final
Definition WsfSensorMode.hpp:204
int mMaximumRequestCount
Definition WsfSensorMode.hpp:285
static const unsigned int cSTATE_COVARIANCE
Definition WsfSensorMode.hpp:397
size_t mOnFailureModeIndex
Definition WsfSensorMode.hpp:370
WsfStringId mOnFailureModeName
Definition WsfSensorMode.hpp:369
static const unsigned int cPULSEWIDTH
Definition WsfSensorMode.hpp:395
virtual void InitializeTrack(double aSimTime, WsfTrack *&aTrackPtr)
Definition WsfSensorMode.cpp:656
static const unsigned int cVELOCITY
Definition WsfSensorMode.hpp:385
void SetErrorModel(std::unique_ptr< wsf::SensorErrorModelBase > aErrorModelPtr)
Definition WsfSensorMode.hpp:194
virtual bool IsFrequencyAgile() const
Definition WsfSensorMode.hpp:88
WsfPlatform * GetPlatform() const
Return the pointer to the platform to which the associated sensor is attached.
Definition WsfSensorMode.hpp:46
virtual double GetLastAltFreqSelectTime() const
Definition WsfSensorMode.hpp:86
static const unsigned int cALL
Catch-all for anything other than the above.
Definition WsfSensorMode.hpp:399
bool ReportsPulseWidth() const
Definition WsfSensorMode.hpp:186
bool ReportsRangeRate() const
Definition WsfSensorMode.hpp:180
int mMaintainTrackWindow
The window size (N) for maintaining a track.
Definition WsfSensorMode.hpp:333
int mMessagePriority
The priority of messages originating from this sensor mode.
Definition WsfSensorMode.hpp:375
double GetMaximumRange() const
Return the optimistic maximum range of the sensor mode.
Definition WsfSensorMode.hpp:121
double GetRequiredPd() const
Definition WsfSensorMode.hpp:139
static const unsigned int cRANGE
Definition WsfSensorMode.hpp:386
bool ReportsIFF_Status() const
Definition WsfSensorMode.hpp:183
double mEstablishTrackProbability
When the M/N establish track criteria is met, this is the probability that a track will be establishe...
Definition WsfSensorMode.hpp:316
unsigned int mMaintainTrackMask
Definition WsfSensorMode.hpp:336
bool ReportsLocation() const
Definition WsfSensorMode.hpp:175
bool ReportsBearing() const
Definition WsfSensorMode.hpp:178
double GetTrackQuality() const
Definition WsfSensorMode.hpp:169
friend class WsfSensorModeList
Definition WsfSensorMode.hpp:37
bool ReportsVelocity() const
Definition WsfSensorMode.hpp:176
double mMaximumRange
Definition WsfSensorMode.hpp:268
int mHitsToMaintainTrack
The number of hits (M) within the window (N) that are required to maintain a track.
Definition WsfSensorMode.hpp:331
int GetMaximumRequestCount() const
Return the maximum number of cued-search or tracking requests the mode can support.
Definition WsfSensorMode.hpp:124
WsfMode * Clone() const override=0
Create an exact duplicate of this mode.
bool InitializeReporting()
Definition WsfSensorMode.cpp:1143
virtual void UpdateSensorCueingLimits()
Definition WsfSensorMode.cpp:693
double mAzErrorStdDev
Definition WsfSensorMode.hpp:347
static const unsigned int cSIDE
Definition WsfSensorMode.hpp:390
unsigned int MaintainTrackMask() const
Definition WsfSensorMode.hpp:167
void Deselect(double aSimTime) override=0
bool ReportsPulseRepititionInterval() const
Definition WsfSensorMode.hpp:187
WsfSensorMode()
Definition WsfSensorMode.cpp:47
double mAzCueRate
Definition WsfSensorMode.hpp:274
virtual void ApplyMeasurementErrors(WsfSensorResult &aResult)
Definition WsfSensorMode.cpp:590
void SetReportingFlags(unsigned int aFlags)
Definition WsfSensorMode.hpp:443
int HitsToMaintainTrack() const
The number of hits (M) within the window (N) that are required to maintain a track.
Definition WsfSensorMode.hpp:156
ReportingFlags mCapabilitiesFlags
Definition WsfSensorMode.hpp:446
int GetMessagePriority() const
Return the priority of report messages that originate from this sensor mode.
Definition WsfSensorMode.hpp:232
virtual bool IsAltFreqChangeScheduled() const
Definition WsfSensorMode.hpp:85
WsfPlatform * mPlatformPtr
Pointer to the platform with which the sensor is associated.
Definition WsfSensorMode.hpp:263
static const unsigned int cIFF_STATUS
Definition WsfSensorMode.hpp:392
static const unsigned int cRANGE_RATE
Definition WsfSensorMode.hpp:389
double mRevisitTime
Definition WsfSensorMode.hpp:304
virtual WsfSensorBeam * GetBeamEntry(size_t aIndex)
Definition WsfSensorMode.cpp:579
const wsf::SensorErrorModelBase * GetErrorModel() const
Definition WsfSensorMode.hpp:192
double mMaintainTrackProbability
Definition WsfSensorMode.hpp:320
wsf::SensorErrorModelBase * GetErrorModel()
Definition WsfSensorMode.hpp:193
int MaintainTrackWindow() const
The window size (N) for maintaining a track.
Definition WsfSensorMode.hpp:159
double mDwellTime
Definition WsfSensorMode.hpp:305
WsfSensor::SlewMode GetCueMode() const
Definition WsfSensorMode.hpp:237
static const unsigned int cOTHER
Definition WsfSensorMode.hpp:398
double EstablishTrackProbability() const
Definition WsfSensorMode.hpp:143
virtual WSF_DEPRECATED void ComputeMeasurementErrors(WsfSensorResult &aResult, double &aAzError, double &aElError, double &aRangeError, double &aRangeRateError) final
Definition WsfSensorMode.cpp:608
int mEstablishTrackWindow
The window size (N) for establishing a track.
Definition WsfSensorMode.hpp:325
double mRangeRateErrorStdDev
Range rate error standard deviation.
Definition WsfSensorMode.hpp:355
virtual void ScheduleAltFreqChange(double aSimTime, int aAltFreqId=-1)
Definition WsfSensorMode.hpp:84
bool ReportsSide() const
Definition WsfSensorMode.hpp:181
bool ReportsFrequency() const
Definition WsfSensorMode.hpp:185
WsfSensor * GetSensor() const
Return the pointer to the sensor with which this mode is associated.
Definition WsfSensorMode.hpp:49
double mMaxElCue
Definition WsfSensorMode.hpp:279
static const unsigned int cPULSE_REPITITION_INTERVAL
Definition WsfSensorMode.hpp:396
int GetMessageLength() const
Return the logical length (int bits) of report messages that originate from this sensor mode.
Definition WsfSensorMode.hpp:229
unsigned int mEstablishTrackMask
Definition WsfSensorMode.hpp:328
double mMinElCue
Definition WsfSensorMode.hpp:278
size_t GetOnSuccessModeIndex() const
Definition WsfSensorMode.hpp:219
static const unsigned int cELEVATION
Definition WsfSensorMode.hpp:388
Definition WsfSensorResult.hpp:27
Definition WsfSensor.hpp:133
Definition WsfSensor.hpp:92
The main controller for a simulation.
Definition WsfSimulation.hpp:109
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
A base class for SensorErrorModels.
Definition WsfSensorErrorModel.hpp:35
Definition WsfSensorMode.hpp:403
void Set(unsigned int aFlags)
Definition WsfSensorMode.hpp:413
bool mReportsPulseWidth
Definition WsfSensorMode.hpp:432
bool mReportsBearing
Definition WsfSensorMode.hpp:424
bool mReportsLocation
Definition WsfSensorMode.hpp:421
bool mReportsType
Definition WsfSensorMode.hpp:428
unsigned int Get() const
Definition WsfSensorMode.hpp:415
bool mReportsElevation
Definition WsfSensorMode.hpp:425
unsigned int mFlags
Definition WsfSensorMode.hpp:438
bool mReportsRangeRate
Definition WsfSensorMode.hpp:426
bool mReportsSide
Definition WsfSensorMode.hpp:427
ReportingFlags()
Definition WsfSensorMode.hpp:408
ReportingFlags(unsigned int aReportingFlags)
Definition WsfSensorMode.hpp:404
bool mReportsPulseRepititionInterval
Definition WsfSensorMode.hpp:433
bool mReportsIFF_Status
Definition WsfSensorMode.hpp:429
bool mReportsOther
Definition WsfSensorMode.hpp:436
bool mReportsFrequency
Definition WsfSensorMode.hpp:431
bool mReportsSignalToNoise
Definition WsfSensorMode.hpp:430
bool mReportsVelocity
Definition WsfSensorMode.hpp:422
bool mReportsRange
Definition WsfSensorMode.hpp:423