WSF
WsfPassiveSensor Class Reference

A specialization of WsfSensor that provides the baseline passive RF sensor. More...

#include <WsfPassiveSensor.hpp>

Inheritance diagram for WsfPassiveSensor:
Collaboration diagram for WsfPassiveSensor:

Classes

class  Interactor
 An internal class used to keep track of interacting transmitters and receivers. More...
struct  FrequencyBand
class  PassiveRcvr
 A specialized WsfEM_Rcvr that can receive on multiple frequency bands. More...
class  PassiveBeam
 A 'beam' of a sensor 'mode'. More...
class  PassiveMode
 A 'mode' of the sensor. More...

Public Types

enum  SignalType { cST_CONTINUOUS , cST_PULSED }
using InteractorList = std::list<Interactor>
using TargetInteractorMap = std::map<size_t, InteractorList>
Public Types inherited from WsfSensor
enum  {
  cACTIVE = 0x00000001 , cSEMI_ACTIVE = 0x00000002 , cPASSIVE = 0x00000004 , cRADIO = 0x00000010 ,
  cINFRARED = 0x00000020 , cVISUAL = 0x00000040 , cACOUSTIC = 0x00000080 , cIMAGING = 0x00001000
}
using Result = WsfSensorResult
using ComponentList = WsfComponentListT<WsfSensorComponent>
Public Types inherited from WsfArticulatedPart
enum  SlewMode { cSLEW_FIXED = 0 , cSLEW_AZ = 1 , cSLEW_EL = 2 , cSLEW_AZ_EL = 3 }
enum  SlewDirection { cUNDEFINED = 0 , cPOSITIVE = 1 , cNEGATIVE = 2 }
enum  {
  cNOT_CUED = 0x0000 , cMIN_AZ = 0x0001 , cMAX_AZ = 0x0002 , cMIN_EL = 0x0004 ,
  cMAX_EL = 0x0008 , cAT_LIMIT_AZ_MASK = 0x0003 , cAT_LIMIT_EL_MASK = 0x000B , cAT_LIMIT_MASK = 0x000F ,
  cCUED_AZ = 0x0010 , cCUED_EL = 0x0020 , cCUED_AZ_EL = 0x0030 , cCUED_MASK = 0x0030
}
enum  CueType { cCUED_TO_NOTHING , cCUED_TO_LOCATION , cCUED_TO_ANGLE }
Public Types inherited from WsfPlatformPart
enum  { cLEVEL_ONE_DEBUG = 0x00000001 , cLEVEL_TWO_DEBUG = 0x00000002 }
using InternalMessageQueue = std::queue<WsfMessage*>
using RecipientMessageQueue = std::queue<std::pair<WsfPlatformPart*, WsfMessage*>>
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
Public Types inherited from WsfComponentT< WsfPlatform >
typedef WsfPlatform ParentType
 This is needed to support the WsfComponentList template.

Public Member Functions

 WsfPassiveSensor (WsfScenario &aScenario)
 WsfPassiveSensor (const WsfPassiveSensor &aSrc)
 Copy constructor (for Clone()).
WsfPassiveSensoroperator= (const WsfPassiveSensor &)=delete
 ~WsfPassiveSensor () override=default
Public Member Functions inherited from WsfSensor
 WsfSensor (const WsfScenario &aScenario)
 ~WsfSensor () override
ComponentListGetComponents ()
const ComponentListGetComponents () const
void SetUpdateInterval (double aUpdateInterval) override
unsigned int GetUpdateEventEpoch () const
void IncrementUpdateEventEpoch ()
bool UpdateEventActive () const
 Is an 'Update' event active?
void SetUpdateEventActive (bool aUpdateEventActive)
 Indicate if the 'Update' event is active.
void AdjustNextUpdateTime (double aNextUpdateTime)
double GetNextUpdateTime () const
void SetNextUpdateTime (double aSimTime, double aNextUpdateTime)
void GetMessageParameters (int &aMessageLength, int &aMessagePriority) const
 Get the base level message parameters (may get overridden by the mode).
WsfStringId GetZoneAttenuationModifier () const
 Get the zone attenuation modifier.
bool SendDis ()
 Return mSendDis flag.
ut::Random & GetRandom ()
 Get the sensor's random number generator.
virtual bool GetFilteredDoppler () const
bool ScriptAllowDetection (double aSimTime, WsfPlatform *aTargetPtr, WsfSensorResult &aResult)
 If a script exists, allows it to impose further constraints on a sensor detection.
WsfComponentCloneComponent () const override
const int * GetComponentRoles () const override
void * QueryInterface (int aRole) override
int GetComponentInitializationOrder () const override
bool AllowDetectionChancesFor (WsfPlatform *aPlatformPtr)
void AddIgnoredCategory (const std::string &aCategory)
const char * GetScriptClassName () const override
bool PreInitialize (double aSimTime) override
bool Initialize (double aSimTime) override
bool Initialize2 (double aSimTime) override
void PlatformAdded (double aSimTime, WsfPlatform *aPlatformPtr) override
void PlatformDeleted (WsfPlatform *aPlatformPtr) override
void PreInput () override
bool ProcessInput (UtInput &aInput) override
void Update (double aSimTime) override
void UpdatePosition (double aSimTime) override
virtual void PerformScheduledDetections (double aSimTime)
bool ThreadSafe () const
 Returns true if the sensor update is thread safe.
void SetThreadSafe ()
void SetNotThreadSafe ()
bool ShowCalibrationData () const
 Returns true if the sensor calibration should be output.
void SetShowCalibrationData (bool aShowCalibrationData)
void AttachObserver (WsfSingleSensorObserver *aObserverPtr)
void DetachObserver (WsfSingleSensorObserver *aObserverPtr)
void NotifyDeleted ()
void NotifyTrackInitiated (double aSimTime, const WsfTrack &aTrack)
void NotifyTrackUpdated (double aSimTime, const WsfTrack &aTrack)
void NotifyTrackDropped (double aSimTime, const WsfTrack &aTrack)
void NotifyTargetUpdated (double aSimTime, WsfPlatform *aTargetPtr, WsfSensorResult &aResult)
void NotifyTurnedOff (double aSimTime)
void NotifyTurnedOn (double aSimTime)
virtual void NotifySensorDetectionAttempted (double aSimTime, WsfPlatform *aTargetPtr, WsfSensorResult &aResult)
int GetClass () const
 Returns the sensor class information.
bool IsClassActive () const
 Is the sensor an 'active' sensor?
bool IsClassPassive () const
 Is the sensor a 'passive' sensor?
bool IsClassSemiActive () const
 Is the sensor a 'semi-active' sensor.
bool IsClassAcoustic () const
 Is this an 'acoustic' sensor?
bool IsClassInfrared () const
 Is this an 'infrared' sensor?
bool IsClassRadio () const
 Is this a 'radio frequency' sensor?
bool IsClassVisual () const
 Is this a 'visual' sensor?
bool IsClassImaging () const
 Does this sensor produce an image?
void TurnOff (double aSimTime) override
void TurnOn (double aSimTime) override
void SetNonOperational (double aSimTime) override
void SetOperational (double aSimTime) override
void PartBroken (double aSimTime) override
double GetUpdateInterval () const override
virtual size_t GetEM_RcvrCount (size_t aModeIndex) const
virtual WsfEM_RcvrGetEM_Rcvr (size_t aModeIndex, size_t aIndex) const
virtual size_t GetEM_XmtrCount () const
virtual WsfEM_XmtrGetEM_Xmtr (size_t aIndex) const
virtual size_t GetEM_XmtrCount (size_t aModeIndex) const
virtual WsfEM_XmtrGetEM_Xmtr (size_t aModeIndex, size_t aIndex) const
virtual bool WithinFieldOfView (double aSimTime, WsfPlatform *aPlatformPtr)
virtual bool WithinFieldOfView (double aSimTime, WsfTrack *aTrackPtr)
virtual WsfStringId GetCurrentModeName () const
 Return the string ID of the string associated with the name of the current mode.
virtual WsfSensorModeGetCurrentMode () const
virtual size_t GetModeCount () const
 Get the number of modes associated with the sensor.
virtual WsfSensorModeGetModeEntry (size_t aModeIndex) const
virtual size_t GetModeIndex (WsfStringId aModeNameId) const
virtual WsfStringId GetModeName (size_t aModeIndex) const
virtual void DeselectMode (double aSimTime, WsfStringId aModeNameId)
virtual void SelectMode (double aSimTime, WsfStringId aModeNameId)
virtual void ScheduleModeChange (double aSimTime, bool aSelectModeFlag, WsfStringId aModeNameId)
virtual bool IsModeChangeScheduled () const
virtual double GetModeSelectDelay () const
WsfSensorModeListGetModeList () const
virtual int GetActiveRequestCount () const
 Get the number of requests being maintained in all modes.
virtual int GetActiveRequestCount (WsfStringId aModeNameId) const
virtual int GetMaximumRequestCount () const
virtual int GetMaximumRequestCount (WsfStringId aModeNameId) const
virtual bool HaveRequestFor (const WsfTrackId &aTrackId) const
 Has a tracking request for the specified track ID been submitted.
virtual bool StartTracking (double aSimTime, const WsfTrack &aTrack, WsfStringId aModeNameId)
virtual bool StopTracking (double aSimTime, const WsfTrackId &aRequestId)
 Indicate the sensor should no longer track the specified track.
virtual int GetActiveTrackCount () const
 Return the number of active tracks the sensor is maintaining.
virtual void GetActiveTrackList (WsfTrackList &aActiveTrackList) const
 Return the active tracks the sensor is maintaining.
virtual int GetMaximumTrackCount () const
 Return the maximum number of tracks the sensor can maintain.
virtual void SendTrackCoastMessage (double aSimTime, const WsfTrack *aTrackPtr)
virtual void SendTrackDropMessage (double aSimTime, const WsfTrack *aTrackPtr)
virtual void SendTrackUpdateMessage (double aSimTime, const WsfTrack *aTrackPtr)
virtual void SetMessageParameters (WsfStringId aModeNameId, WsfMessage &aMessage)
virtual void TrackCoasted (double aSimTime, WsfTrack *aTrackPtr)
virtual void TrackDropped (double aSimTime, WsfTrack *aTrackPtr)
virtual void TrackUpdated (double aSimTime, WsfTrack *aTrackPtr)
bool IsSlave () const
 Get the current 'slave' status of a sensor.
void SetIsSlave (double aSimTime, bool aIsSlave)
WsfSensorSchedulerGetScheduler () const
void SetScheduler (std::unique_ptr< WsfSensorScheduler > aSchedulerPtr)
std::unique_ptr< WsfSensorSchedulerSwapScheduler (std::unique_ptr< WsfSensorScheduler > aSchedulerPtr)
WsfSensorTrackerGetTracker () const
void SetTracker (std::unique_ptr< WsfSensorTracker > aTrackerPtr)
std::unique_ptr< WsfSensorTrackerSwapTracker (std::unique_ptr< WsfSensorTracker > aTrackerPtr)
Public Member Functions inherited from WsfArticulatedPart
 WsfArticulatedPart (const WsfScenario &aScenario, int aPartType)
 WsfArticulatedPart (const WsfArticulatedPart &aSrc)
 ~WsfArticulatedPart () override
void SetPositionRateECS (const double aDX, const double aDY, const double aDZ)
void GetCurrentPositionRateECS (double &aDX, double &aDY, double &aDZ) const
double GetDX () const
double GetDY () const
double GetDZ () const
void EnableArticulationUpdates (double aSimTime, double aInterval)
void DisableArticulationUpdates (double aSimTime)
void SetArticulationUpdateInterval (double aUpdateInterval)
double GetArticulationUpdateInterval () const
unsigned int GetArticulationUpdateEventEpoch () const
void IncrementArticulationUpdateEventEpoch ()
bool ArticulationUpdateEventActive () const
 Is an 'Update' event active?
void SetArticulationUpdateEventActive (bool aUpdateEventActive)
 Indicate if the 'Update' event is active.
virtual double TimeToCue (double aDesiredAz, double aDesiredEl) const
const char * GetScriptClassName () const override
void OnPlatformUpdated (double, WsfPlatform *) override
SlewMode GetSlewMode () const
 Get the allowed slewing mode.
double GetAzSlewRate () const
 Get the current azimuth slew rate.
double GetElSlewRate () const
 Get the current elevation slew rate.
double GetMaxAzSlewRate () const
 Get the maximum allowable azimuth slew rate.
double GetMaxElSlewRate () const
 Get the maximum allowable elevation slew rate.
double GetMinAzSlew () const
 Gets the minimum azimuth slew limit.
double GetMaxAzSlew () const
 Gets the maximum azimuth slew limit.
double GetMinElSlew () const
 Gets the minimum elevation slew limit.
double GetMaxElSlew () const
 Gets the maximum elevation slew limit.
int GetSlewState () const
 Get the slew limit state.
void SetSlewMode (SlewMode aSlewMode)
 Set the allowed slewing mode.
void SetSlewRates (double aAzSlewRate, double aElSlewRate)
 Set the angular slew rates, limited by the maximum slew rates.
void SetAzSlewLimits (double aMinAzSlew, double aMaxAzSlew)
 Set the azimuth slew limits.
void SetElSlewLimits (double aMinElSlew, double aMaxElSlew)
 Set the elevation slew limits.
void SetAzimuthSlewDirection (SlewDirection aAzSlewDirection)
 Set the azimuth slew direction.
bool IsSlewing () const
bool WithinSlewLimits (double aThisToTgtAz, double aThisToTgtEl) const
SlewMode GetCueMode () const
 Get the allowed cueing mode.
double GetAzCueRate () const
 Get the azimuth cue rate.
double GetElCueRate () const
 Get the elevation cue rate.
double GetMinAzCue () const
 Gets the minimum azimuth cue limit.
double GetMaxAzCue () const
 Gets the maximum azimuth cue limit.
double GetMinElCue () const
 Gets the minimum elevation cue limit.
double GetMaxElCue () const
 Gets the maximum elevation cue limit.
void SetCueMode (SlewMode aCueMode)
 Set the allowed cueing mode.
void SetCueRates (double aAzCueRate, double aElCueRate)
 Set the angular cueing rates.
void SetAzCueLimits (double aMinAzCue, double aMaxAzCue)
 Set the azimuth cueing limits.
void SetElCueLimits (double aMinElCue, double aMaxElCue)
 Set the elevation cueing limits.
double GetRoll () const
void SetRoll (double aRoll)
 Set the platform-relative (ECS) roll angle of the articulated part.
double GetPitch () const
void SetPitch (double aPitch)
double GetYaw () const
void SetYaw (double aYaw)
 Set the platform-relative (ECS) yaw angle of the articulated part.
double GetTilt () const
void SetTilt (double aTilt)
void GetCurrentOrientationECS (double &aYaw, double &aPitch, double &aRoll)
void GetLOS_UnitVectorWCS (double aUnitLOS_WCS[3])
 Get the current WCS Frame Line-Of-Sight unit vector.
CueType GetCueType () const
bool IsCued () const
 Get the cued status.
void ClearCueing ()
bool GetActualCuedOrientation (double &aAzimuth, double &aElevation) const
void GetCurrentCuedOrientation (double &aAzimuth, double &aElevation) const
bool GetCuedLocationWCS (double aCuedLocationWCS[3]) const
void SetCuedLocationWCS (const double aCuedLocationWCS[3])
bool GetCuedOrientation (double &aAzimuth, double &aElevation) const
void SetCuedOrientation (double aAzimuth, double aElevation)
void GetAbsoluteCuedOrientation (double &aAzimuth, double &aElevation, double aBaseNED[3])
void ClearTransientCue ()
bool TransientCueActive () const
bool GetTransientCuedLocationWCS (double aCuedLocationWCS[3]) const
void SetTransientCuedLocationWCS (const double aCuedLocationWCS[3])
WsfStringId GetMaskingPatternState () const
void SetMaskingPatternState (WsfStringId aMaskingPatternStateId)
double GetMaskingPatternFactor (double aViewAzPCS, double aViewElPCS, const double aViewVecWCS[3])
void SetIsPrivate (bool aIsPrivate)
bool IsPrivate () const
Public Member Functions inherited from WsfPlatformPart
 WsfPlatformPart (const WsfScenario &aScenario, int aPartType)
WsfPlatformPartoperator= (const WsfPlatformPart &aRhs)=delete
 ~WsfPlatformPart () override
bool DebugEnabled () const
 Returns 'true' if debugging is enabled for this instance.
void SetDebugEnabled (bool aDebugEnabled)
unsigned int GetDebugMask ()
bool IsExternallyControlled () const
virtual void SetExternallyControlled (double aSimTime, bool aIsExternallyControlled)
int GetPartType () const
const char * GetScriptClassName () const override
WsfSimulationGetSimulation () const
const WsfScenarioGetScenario () const
WsfStringId GetComponentName () const override
void ComponentParentChanged (WsfPlatform *aPlatformPtr) override
WsfPlatformGetPlatform () const
double GetLastStatusChangeTime () const
void SetLastStatusChangeTime (double aSimTime)
 Allows a system to set the time at which the device was initialized.
bool CanBeMadeOperational () const
 Returns an indication that this system can be made operational.
bool CanBeMadeNonOperational () const
 Returns an indication that this system can be made non-operational.
bool CanBeTurnedOn () const
 Returns an indication that this system can be turned on.
bool CanBeTurnedOff () const
 Returns an indication that this system can be turned off.
bool IsTurnedOn () const
bool InitiallyTurnedOn () const
 Is the system to be turned 'on' when added to the simulation?
void SetInitiallyTurnedOn (bool aInitiallyTurnedOn)
 Sets if the system is turned on when added to the simulation.
virtual void Restore (double aSimTime)
bool IsOperational () const
bool SetOperational (double aSimTime, bool aMakeOperational)
double GetDamageFactor () const
bool SetDamageFactor (double aSimTime, double aDamageFactor)
bool IsCritical () const
void SetCritical (bool aValue)
virtual void OnPlatformBrokenEvent (double aSimTime)
 Owning platform has issued a broken event.
bool IsBroken () const
WsfInternalLinksGetInternalLinks ()
 Return the internal links for this part.
virtual bool HasInternalLinks () const
 Does this platform part have a communication link to other platform parts?
virtual bool ProcessMessage (double aSimTime, const WsfMessage &aMessage)
virtual bool ReceiveMessage (double aSimTime, const WsfMessage &aMessage)
virtual void SendMessage (double aSimTime, const WsfMessage &aMessage)
virtual void SendMessageTo (double aSimTime, const WsfMessage &aMessage, WsfStringId aRecipientId)
void SendMessageToProcessor (double aSimTime, const WsfMessage &aMessage, WsfStringId aRecipientId)
virtual void SendQueuedMessages (double aSimTime)
const WsfCategoryListGetCategories () const
 Get the categories to which this part belongs.
void AddCategory (WsfStringId aCategoryId)
 Adds the provided category to the platform part's category list.
bool IsCategoryMember (WsfStringId aCategoryId) const
const WsfGroupListGetGroups () const
 Get the groups to which this platform part belongs.
void JoinGroup (WsfGroup *aGroupPtr)
 Join the given group.
void LeaveGroup (WsfGroup *aGroupPtr)
 Leave the given group.
bool IsGroupMember (WsfStringId aGroupId)
unsigned int GetUpdateEventEpoch () const
void IncrementUpdateEventEpoch ()
bool UpdateEventActive () const
 Is an 'Update' event active?
void SetUpdateEventActive (bool aUpdateEventActive)
 Indicate if the 'Update' event is active.
Public Member Functions inherited from WsfObject
 WsfObject ()
 This is the constructor for the WsfObject class.
 ~WsfObject () override
 This is the destructor for the WsfObject class.
const char * GetScriptClassName () const override
const std::string & GetType () const
WsfStringId GetTypeId () const
 Get the string ID of the 'type' of the object.
void SetType (WsfStringId aType)
const std::string & GetBaseType () const
WsfStringId GetBaseTypeId () const
const TypeListGetTypeList () const
bool IsA_TypeOf (WsfStringId aType) const
WsfObjectoperator= (const WsfObject &aRhs)
 Assignment operator.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
const std::string & GetName () const
WsfStringId GetNameId () const
void SetName (WsfStringId aName)
Public Member Functions inherited from WsfComponentT< WsfPlatform >
 WsfComponentT ()
 WsfComponentT (const WsfComponentT &) noexcept
WsfComponentToperator= (const WsfComponentT &) noexcept
 ~WsfComponentT () override=default
ParentTypeGetComponentParent () const
void SetComponentParent (ParentType *aParentPtr)
Public Member Functions inherited from WsfComponent
virtual ~WsfComponent ()=default
template<typename T>
bool QueryInterfaceT (T *&aRolePtr)
bool ComponentHasRole (int aRole)
 Returns true if the component has the specified role.
Public Member Functions inherited from WsfUniqueId
 WsfUniqueId ()
 Construtor initializes the unique identifier to 0.
 WsfUniqueId (const WsfUniqueId &)
 Copy constructor initializes the unique identifier to 0.
WsfUniqueIdoperator= (const WsfUniqueId &)
unsigned int GetUniqueId () const
 Get the unique identifier assigned to this object.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
Public Member Functions inherited from WsfAuxDataEnabled
 WsfAuxDataEnabled ()=default
 WsfAuxDataEnabled (const WsfAuxDataEnabled &aSrc)=default
WsfAuxDataEnabledoperator= (const WsfAuxDataEnabled &aRhs)
 WsfAuxDataEnabled (WsfAuxDataEnabled &&)=default
WsfAuxDataEnabledoperator= (WsfAuxDataEnabled &&)=default
virtual ~WsfAuxDataEnabled () noexcept
void SetAuxData (const WsfAttributeContainer &aAuxData)
void DeleteAuxData ()
 Delete the aux data container from the object.
void MergeAuxData (const WsfAuxDataEnabled &aSrc)
 Merge the object's aux data with aux data from an existing object.
void UpdateAuxData (const WsfAuxDataEnabled &aSrc)
 Update the object's aux data with aux data from an existing object.
bool HasAuxData () const
 Returns true if this object has aux data.
bool ProcessInput (UtInput &aInput)
template<typename T>
void Serialize (T &aBuff)
 (De)serialization for XIO
WsfAttributeContainerGetAuxData ()
const WsfAttributeContainerGetAuxData () const noexcept
const WsfAttributeContainerGetAuxDataConst () const noexcept
Public Member Functions inherited from WsfSinglePlatformObserver
virtual ~WsfSinglePlatformObserver ()
virtual void OnPlatformDeleting (double aSimTime, WsfPlatform *aPlatformPtr)
 Called before the platform is actually deleted.
virtual void OnPlatformDeleted (double aSimTime, WsfPlatform *aPlatformPtr)
 Called just before the platform is removed from the simulation.

Friends

class PassiveRcvr
class PassiveBeam
class PassiveMode

Sensor framework methods

bool AttemptToDetect (double aSimTime, WsfPlatform *aTargetPtr, Settings &aSettings, WsfSensorResult &aResult) override
WsfSensorClone () const override
bool Initialize (double aSimTime) override
bool ProcessInput (UtInput &aInput) override
void Update (double aSimTime) override
void TurnOff (double aSimTime) override
size_t GetEM_RcvrCount () const override
WsfEM_RcvrGetEM_Rcvr (size_t aIndex) const override
bool TuneFrequencyBand (double aSimTime, bool aReset, WsfStringId aModeNameId, size_t aBeamNumber, unsigned int aFrequencyBandNumber, double aLowerFreq, double aUpperFreq, double aDwellTime, double aRevisitTime)
unsigned int GetNumberofFrequencyBands (WsfStringId aModeId, size_t aBeam)
const char * GetScriptClassName () const override
static std::unique_ptr< UtScriptClass > CreateScriptClass (const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)

Additional Inherited Members

static double GetRequiredPd (const WsfSensorMode *aModePtr)
UtCallbackListN< void(double)> SlewComplete
Static Public Attributes inherited from WsfArticulatedPart
static constexpr double cINFINITE_SLEW_RATE = 1.0E+12 * UtMath::cRAD_PER_DEG
static constexpr double cALMOST_FULL_CIRCLE = 359.999 * UtMath::cRAD_PER_DEG
Static Public Attributes inherited from WsfAuxDataEnabled
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataAccessed
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataDestroyed
 WsfSensor (const WsfSensor &aSrc)
 Copy constructor (for Clone()).
WsfSensoroperator= (const WsfSensor &aSrc)=delete
void SetClass (int aClass)
 Set the 'classification' of the sensor.
void SetModeList (std::unique_ptr< WsfSensorModeList > aModeListPtr)
UtScriptContext * GetScriptAccessibleContext () const override
 Return the context from the script.
void SetPlatform (WsfPlatform *aPlatformPtr) override
bool FullCircle () const
virtual double GetAzimuthRotationRate () const
virtual double GetElevationRotationRate () const
void SlewToOrientation (double aSimTime, double aDesiredAz, double aDesiredEl)
virtual void TimeToRotate (double &aDeltaAz, double &aDeltaEl, double &aAzRate, double &aElRate, double &aTimeToAz, double &aTimeToEl) const
void UpdateCuedOrientation (double aSimTime)
bool UpdateOrientation (double aSimTime)
 WsfPlatformPart (const WsfPlatformPart &aSrc)
 Copy constructor (for Clone()).
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).
Protected Member Functions inherited from WsfUniqueId
void AssignUniqueId (WsfSimulation *aSimulationPtr)
bool mThreadSafe
std::unique_ptr< WsfSensorModeListmModeListPtr
std::unique_ptr< WsfSensorSchedulermSchedulerPtr
std::unique_ptr< WsfSensorTrackermTrackerPtr
double mNextUpdateTime
 The time when the next call to Update() SHOULD occur.
int mMessageLength
 The logical length (in bits) of report messages that originate from this sensor.
int mMessagePriority
 The priority of report messages that originate from this sensor.
WsfStringId mZoneAttenuationModifier
 If non-zero, the name of ID of the category to be used for zone-based attenuation.
WsfCategoryList mIgnoredCategories
 Categories which this sensor should ignore.
std::vector< WsfStringIdmIgnoredSides
 The sides (teams) which this sensor should ignore.
unsigned int mIgnoredDomains
 A bit mask of ignored domains.
bool mIgnoreSameSide
 'true' if the sensor should not detect platforms on the same side.
WsfMaskingPatternmMaskingPatternPtr
 The masking factor.
WsfStringId mMaskingPatternName
WsfStringId mMaskingPatternStateId
double mYaw
 The orientation of the device coordinate system.
double mPitch
double mRoll
double mDX
 The velocity of the part.
double mDY
double mDZ
double mTilt
 The tilt angle above below the scan plane.
double mAzSlewRate
 The slewing rates and limits of the device with respect to the device coordinate system.
double mElSlewRate
double mMaxAzSlewRate
double mMaxElSlewRate
double mMinAzSlew
double mMaxAzSlew
double mMinElSlew
double mMaxElSlew
SlewMode mSlewMode
SlewDirection mAzSlewDirection
int mSlewState
double mAzCueRate
 The cueing rates and limits of the device with respect to the device coordinate system.
double mElCueRate
double mMinAzCue
double mMaxAzCue
double mMinElCue
double mMaxElCue
SlewMode mCueMode
 The directions (az and/or el) in which cueing can be performed.
CueType mCueType
bool mTransientCueActive
 'true' if the transient cue is defined
double mCuedLocationWCS [3]
 The cued location if mCueType is cCUED_TO_LOCATION.
double mCuedAz
 The cued azimuth if mCueType == cCUED_TO_ANGLE.
double mCuedEl
 The cued elevation if mCueType == cCUED_TO_ANGLE.
double mTransientCuedLocationWCS [3]
 The transient cue, if mTransientCueActive is true.
double mActualCuedAz
 The actual cued location, subject to the slewing limits.
double mActualCuedEl
double mCurrentAz
double mCurrentEl
double mLastAzElUpdateTime
 The time when the current az/el were last updated.
double mLastUpdateTime
 The time when the x/y/z position was last updated.
bool mSlewMethodCoordinated
 'true' if slcue rates are dynamically adjusted so the target angles are reached simultaneously.
bool mIsSlewing
 'true' if the part is slewing to satisfy a cueing request.
bool mIsPrivate
 'true' if the part is considered 'private' and not to visible to external simulations.

Detailed Description

A specialization of WsfSensor that provides the baseline passive RF sensor.

Member Typedef Documentation

◆ InteractorList

◆ TargetInteractorMap

A map of targets and their interactors. The key is the platform index of the target and the value is the list of interactors.

Member Enumeration Documentation

◆ SignalType

Enumerator
cST_CONTINUOUS 
cST_PULSED 

Constructor & Destructor Documentation

◆ WsfPassiveSensor() [1/2]

◆ WsfPassiveSensor() [2/2]

WsfPassiveSensor::WsfPassiveSensor ( const WsfPassiveSensor & aSrc)

Copy constructor (for Clone()).

References WsfPassiveSensor(), and WsfSensor::WsfSensor().

◆ ~WsfPassiveSensor()

WsfPassiveSensor::~WsfPassiveSensor ( )
overridedefault

Member Function Documentation

◆ AttemptToDetect()

bool WsfPassiveSensor::AttemptToDetect ( double aSimTime,
WsfPlatform * aTargetPtr,
Settings & aSettings,
WsfSensorResult & aResult )
overridevirtual

Attempt to detect another platform.

This provides the common interface used to determine if a sensor can detect another platform. The base class implementation simply invokes the mode-specific AttemptsToDetect method for the currently selected mode.

Parameters
aSimTime[input] The current simulation time.
aTargetPtr[input] The target to attempt to detect.
aSettings[input] A Settings object that indicates the operational settings to be used for the detection attempt.
aResult[output] A Result object that contains detailed information about the result detection attempt.
Returns
true if the target can be detected. This should be the same as testing ((aResult.mCheckedStatus != 0) && (aResult.mFailedStatus == 0)).

This does the same as the base class method except when called for the 'master' in a TDOA system. In that case a controller is invoked which invokes the detection processing for the master and each of the slaves and then performs TDOA processing on the collected results.

See the base class for documentation of the arguments and return value.

Reimplemented from WsfSensor.

References WsfSensorMode::AttemptToDetect(), WsfPlatform::GetIndex(), WsfSensor::Settings::mModeIndex, and WsfSensorMode::UpdateSensorCueingLimits().

◆ Clone()

WsfSensor * WsfPassiveSensor::Clone ( ) const
overridevirtual

Clone this object.

Returns
a pointer to the new object.

Implements WsfSensor.

References WsfPassiveSensor(), and WsfSensor::WsfSensor().

◆ CreateScriptClass()

std::unique_ptr< UtScriptClass > WsfPassiveSensor::CreateScriptClass ( const std::string & aClassName,
UtScriptTypes * aScriptTypesPtr )
static

◆ GetEM_Rcvr()

WsfEM_Rcvr & WsfPassiveSensor::GetEM_Rcvr ( size_t aIndex) const
overridevirtual

Get the attributes for the receiver with a specified index.

Parameters
aIndexThe index of the receiver whose attributes are being requested. This must be in the range [0, GetEM_RcvrCount() - 1].
Note
It is an error to call this method if the sensor does not have any receivers (i.e.: GetEM_RcvrCount() == 0).

Reimplemented from WsfSensor.

References WsfPassiveSensor::PassiveMode::mBeamList, and WsfSensor::mModeListPtr.

◆ GetEM_RcvrCount()

size_t WsfPassiveSensor::GetEM_RcvrCount ( ) const
overridevirtual

Return the number of receivers associated with the sensor.

Returns
The number of receivers associated with the sensor. This can be zero.

Reimplemented from WsfSensor.

References WsfPassiveSensor::PassiveMode::mBeamList, and WsfSensor::mModeListPtr.

◆ GetNumberofFrequencyBands()

unsigned int WsfPassiveSensor::GetNumberofFrequencyBands ( WsfStringId aModeId,
size_t aBeam )

◆ GetScriptClassName()

const char * WsfPassiveSensor::GetScriptClassName ( ) const
inlineoverride

◆ Initialize()

bool WsfPassiveSensor::Initialize ( double aSimTime)
overridevirtual

Perform phase 1 initialization. This is called by WsfPlatform::Initialize() during phase 1 initialization of the platform. The component should complete validation of input data that could not be done by ProcessInput, as well as any other functions to prepare for simulation use (subject to the next paragraph).

The order in which components are initialized is defined by GetComponentInitializationOrder. In general a component implementation of this method should not be dependent on the state of another component, i.e.: it should not assume that the other components Initialize() method has been called. If such a dependency exists one should use Initialize2() if possible, or specify a value GetComponentInitializationOrder to force things to initialize in a particular order.

Parameters
aSimTimeThe current simulation time.
Returns
true if successful or false if unsuccessful (bad input data, etc.)
Note
This method should NOT add any other components to the platform. This MUST be done in PreInitialize().

Reimplemented from WsfArticulatedPart.

References WsfSensor::Initialize(), WsfSensor::mModeListPtr, and ok.

◆ operator=()

WsfPassiveSensor & WsfPassiveSensor::operator= ( const WsfPassiveSensor & )
delete

References WsfPassiveSensor().

◆ ProcessInput()

bool WsfPassiveSensor::ProcessInput ( UtInput & aInput)
overridevirtual

Process input from a generic source.

Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.

Parameters
aInputa reference to a UtInput object.
Returns
'true' if the command was one recognized by the class or 'false' if not.
Exceptions
UtInput::ExceptionBase(or an object derived from it) if the command was recognized but contains some sort of error.
Note
If a derived class does not recognize the command (i.e.: the return value is false) then it should call the base class ProcessInput method. This chain should continue until either the command is recognized or the top-level base class is encountered.

Reimplemented from WsfArticulatedPart.

References WsfSensor::ProcessInput().

Referenced by WsfPassiveSensor::PassiveMode::ProcessInput().

◆ TuneFrequencyBand()

bool WsfPassiveSensor::TuneFrequencyBand ( double aSimTime,
bool aReset,
WsfStringId aModeNameId,
size_t aBeamNumber,
unsigned int aFrequencyBandNumber,
double aLowerFreq,
double aUpperFreq,
double aDwellTime,
double aRevisitTime )

References WsfSensor::mModeListPtr.

Referenced by ~WsfPassiveSensor().

◆ TurnOff()

void WsfPassiveSensor::TurnOff ( double aSimTime)
overridevirtual

Turn off the platform part (system).

Parameters
aSimTimeThe current simulation time.

Reimplemented from WsfPlatformPart.

References WsfSensor::TurnOff().

◆ Update()

void WsfPassiveSensor::Update ( double aSimTime)
overridevirtual

Update the state of an platform part. Updates the platform part to reflect the state at the specified simulation time.

Parameters
aSimTimeThe current simulation time.

Reimplemented from WsfPlatformPart.

References WsfSensor::mNextUpdateTime, WsfSensor::PerformScheduledDetections(), and WsfSensor::Update().

◆ PassiveBeam

friend class PassiveBeam
friend

◆ PassiveMode

friend class PassiveMode
friend

◆ PassiveRcvr

friend class PassiveRcvr
friend

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