WSF
WsfOTH_RadarSensor Class Reference

A specialization of WsfSensor that implements a simple radar. More...

#include <WsfOTH_RadarSensor.hpp>

Inheritance diagram for WsfOTH_RadarSensor:
Collaboration diagram for WsfOTH_RadarSensor:

Classes

class  OTH_Beam
class  OTH_Mode
 A 'mode' of the sensor. More...

Public Member Functions

 WsfOTH_RadarSensor (WsfScenario &aScenario)
 WsfOTH_RadarSensor (const WsfOTH_RadarSensor &aSrc)
WsfOTH_RadarSensoroperator= (const WsfOTH_RadarSensor &)=delete
WsfSensorClone () const override
bool Initialize (double aSimTime) override
void PlatformAdded (double aSimTime, WsfPlatform *aPlatformPtr) override
bool ProcessInput (UtInput &aInput) override
void Update (double aSimTime) override
void PerformScheduledDetections (double aSimTime) override
size_t GetEM_RcvrCount () const override
WsfEM_RcvrGetEM_Rcvr (size_t aIndex) const override
size_t GetEM_RcvrCount (size_t aModeIndex) const override
WsfEM_RcvrGetEM_Rcvr (size_t aModeIndex, size_t aIndex) const override
size_t GetEM_XmtrCount () const override
WsfEM_XmtrGetEM_Xmtr (size_t aIndex) const override
size_t GetEM_XmtrCount (size_t aModeIndex) const override
WsfEM_XmtrGetEM_Xmtr (size_t aModeIndex, size_t aIndex) const override
void UpdateXmtrRcvrLists ()
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)
virtual bool AttemptToDetect (double aSimTime, WsfPlatform *aTargetPtr, Settings &aSettings, WsfSensorResult &aResult)
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
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 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 OTH_Beam
class OTH_Mode

Additional Inherited Members

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.
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 implements a simple radar.

Constructor & Destructor Documentation

◆ WsfOTH_RadarSensor() [1/2]

◆ WsfOTH_RadarSensor() [2/2]

WsfOTH_RadarSensor::WsfOTH_RadarSensor ( const WsfOTH_RadarSensor & aSrc)

Member Function Documentation

◆ Clone()

WsfSensor * WsfOTH_RadarSensor::Clone ( ) const
overridevirtual

Clone this object.

Returns
a pointer to the new object.

Implements WsfSensor.

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

◆ GetEM_Rcvr() [1/2]

WsfEM_Rcvr & WsfOTH_RadarSensor::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 WsfSensor::GetEM_Rcvr(), WsfPlatformPart::IsTurnedOn(), WsfOTH_RadarSensor::OTH_Mode::mBeamList, and WsfSensor::mModeListPtr.

Referenced by WsfOTH_RadarSensor::OTH_Mode::AttemptToDetect().

◆ GetEM_Rcvr() [2/2]

WsfEM_Rcvr & WsfOTH_RadarSensor::GetEM_Rcvr ( size_t aModeIndex,
size_t aIndex ) const
overridevirtual

Get the attributes for the receiver with a specified index.

Parameters
aModeIndexThe index of the mode containing the receiver.
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 transmitters (i.e.: GetEM_RcvrCount() == 0).

Reimplemented from WsfSensor.

References WsfSensor::GetEM_Rcvr(), and WsfOTH_RadarSensor::OTH_Mode::mBeamList.

◆ GetEM_RcvrCount() [1/2]

size_t WsfOTH_RadarSensor::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 WsfPlatformPart::IsTurnedOn(), WsfOTH_RadarSensor::OTH_Mode::mBeamList, and WsfSensor::mModeListPtr.

Referenced by GetEM_XmtrCount().

◆ GetEM_RcvrCount() [2/2]

size_t WsfOTH_RadarSensor::GetEM_RcvrCount ( size_t aModeIndex) const
overridevirtual

Return the number of receivers associated with the sensor.

Parameters
aModeIndexThe index of the mode containing the receiver.
Returns
The number of receivers associated with the sensor. This can be zero.

Reimplemented from WsfSensor.

References WsfOTH_RadarSensor::OTH_Mode::mBeamList.

◆ GetEM_Xmtr() [1/2]

WsfEM_Xmtr & WsfOTH_RadarSensor::GetEM_Xmtr ( size_t aIndex) const
overridevirtual

Get the attributes for the transmitter with a specified index.

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

Reimplemented from WsfSensor.

References WsfSensor::GetEM_Xmtr(), WsfPlatformPart::IsTurnedOn(), WsfOTH_RadarSensor::OTH_Mode::mBeamList, and WsfSensor::mModeListPtr.

Referenced by WsfOTH_RadarSensor::OTH_Beam::AttemptToDetect(), WsfOTH_RadarSensor::OTH_Mode::AttemptToDetect(), and PerformScheduledDetections().

◆ GetEM_Xmtr() [2/2]

WsfEM_Xmtr & WsfOTH_RadarSensor::GetEM_Xmtr ( size_t aModeIndex,
size_t aIndex ) const
overridevirtual

Get the attributes for the transmitter with a specified index.

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

Reimplemented from WsfSensor.

References WsfSensor::GetEM_Xmtr(), and WsfOTH_RadarSensor::OTH_Mode::mBeamList.

◆ GetEM_XmtrCount() [1/2]

size_t WsfOTH_RadarSensor::GetEM_XmtrCount ( ) const
overridevirtual

Return the number of transmitters associated with the sensor.

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

Reimplemented from WsfSensor.

References WsfPlatformPart::IsTurnedOn(), WsfOTH_RadarSensor::OTH_Mode::mBeamList, and WsfSensor::mModeListPtr.

Referenced by PerformScheduledDetections().

◆ GetEM_XmtrCount() [2/2]

size_t WsfOTH_RadarSensor::GetEM_XmtrCount ( size_t aModeIndex) const
overridevirtual

Return the number of transmitters associated with the sensor.

Parameters
aModeIndexThe index of the mode containing the transmitter.
Returns
The number of transmitters associated with the sensor. This can be zero.

Reimplemented from WsfSensor.

References GetEM_RcvrCount().

◆ Initialize()

bool WsfOTH_RadarSensor::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::cRADIO, WsfSensor::cSEMI_ACTIVE, WsfPlatformPart::GetSimulation(), WsfSensor::Initialize(), WsfSensor::mModeListPtr, ok, WsfObserver::SensorFrequencyChanged(), and WsfSensor::SetClass().

◆ operator=()

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

◆ PerformScheduledDetections()

void WsfOTH_RadarSensor::PerformScheduledDetections ( double aSimTime)
overridevirtual

◆ PlatformAdded()

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

Some other platform has been added to the simulation.

This is invoked (via WsfPlatform::PlatformAdded) whenever another platform has been added to the simulation.

Parameters
aSimTimeThe current simulation time.
aPlatformPtrPointer to the platform being added.

Reimplemented from WsfPlatformPart.

References WsfSensor::PlatformAdded().

◆ ProcessInput()

bool WsfOTH_RadarSensor::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 WsfOTH_RadarSensor::OTH_Mode::ProcessInput().

◆ Update()

void WsfOTH_RadarSensor::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, PerformScheduledDetections(), and WsfSensor::Update().

◆ UpdateXmtrRcvrLists()

void WsfOTH_RadarSensor::UpdateXmtrRcvrLists ( )

An internal method that is called to update the lists for GetEM_Xmtr/Rcvr. This is called whenever modes are selected or deselected. It updates the lists of active transmitters and receivers that are accessed by the GetEM_Rcvr and GetEM_Xmtr methods.

References WsfOTH_RadarSensor::OTH_Beam::GetEM_Rcvr(), and WsfOTH_RadarSensor::OTH_Beam::GetEM_Xmtr().

Referenced by WsfOTH_RadarSensor::OTH_Mode::Deselect(), operator=(), and WsfOTH_RadarSensor::OTH_Mode::Select().

◆ OTH_Beam

◆ OTH_Mode

friend class OTH_Mode
friend

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