WSF
WsfEW_SensorComponent Class Reference

The EW component that will be attached to all sensor systems. More...

#include <WsfEW_SensorComponent.hpp>

Inheritance diagram for WsfEW_SensorComponent:
Collaboration diagram for WsfEW_SensorComponent:

Classes

class  EW_Beam
 The EW component extensions to a sensor beam. More...
class  EW_Mode
 The EW component extensions to a sensor mode. More...

Public Member Functions

 WsfEW_SensorComponent ()
 WsfEW_SensorComponent (const WsfEW_SensorComponent &aSrc)
WsfEW_SensorComponentoperator= (const WsfEW_SensorComponent &)=delete
 ~WsfEW_SensorComponent () override=default
WsfSensorGetSensor () const
WsfPlatformGetPlatform () const
WsfSimulationGetSimulation () const
virtual void PlatformAdded (double aSimTime, WsfPlatform *aPlatformPtr)
virtual void PlatformDeleted (WsfPlatform *aPlatformPtr)
virtual void TurnOn (double aSimTime)
virtual void TurnOff (double aSimTime)
virtual bool Initialize (double aSimTime)
virtual bool Initialize2 (double aSimTime)
virtual bool PreInitialize (double aSimTime)
virtual bool ProcessInput (UtInput &aInput)
virtual void PostAttemptToDetect (double aSimTime, WsfPlatform *aTargetPtr, WsfSensorResult &aResult)
Public Member Functions inherited from WsfComponentT< WsfSensor >
 WsfComponentT ()
WsfComponentToperator= (const WsfComponentT &) noexcept
 ~WsfComponentT () override=default
virtual void ComponentParentChanged (ParentType *aParentPtr)
ParentTypeGetComponentParent () const
void SetComponentParent (ParentType *aParentPtr)
Public Member Functions inherited from WsfComponent
virtual ~WsfComponent ()=default
virtual int GetComponentInitializationOrder () const
template<typename T>
bool QueryInterfaceT (T *&aRolePtr)
bool ComponentHasRole (int aRole)
 Returns true if the component has the specified role.
virtual void PreInput ()

Static Public Member Functions

static void RegisterComponentFactory (WsfScenario &aScenario)
 Register the component factory that handles input for this component.
static WsfEW_SensorComponentFind (const WsfSensor &aSensor)
 Find the instance of this component attached to the specified sensor.
static WsfEW_SensorComponentFindOrCreate (WsfSensor &aSensor)
static void AttemptToDetect (WsfSensor &aSensor, double aSimTime, WsfSensorResult &aResult)
 Convenience method to call AttemptToDetect on all the components.
static bool PostAttemptToDetect (WsfSensor &aSensor, double aSimTime, WsfPlatform *aTargetPtr, WsfSensorResult &aResult)
static WSF_DEPRECATED void ComputeMeasurementErrors (WsfSensor &aSensor, WsfSensorResult &aResult, double &aAzError, double &aElError, double &aRangeError, double &aRangeRateError)
 (DEPRECATED) Convenience method to call ComputeMeasurementErrors on all the components.
static void ComputeSphericalMeasurementErrors (WsfSensor &aSensor, const WsfSensorResult &aResult, wsf::SphericalMeasurementErrors &aErrors)
 Convenience method to call ComputeSphericalMeasurementErrors on all the components.
static void PrePerformScheduledDetections (WsfSensor &aSensor, double aSimTime)
 Convenience method to call PrePerformScheduledDetections on all the components.
static void PostPerformScheduledDetections (WsfSensor &aSensor, double aSimTime)
 Convenience method to call PostPerformScheduledDetections on all the components.
static void UpdateTrack (WsfSensor &aSensor, double aSimTime, WsfTrack *aTrackPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult)
 Convenience method to call UpdateTrack on all the components.

Interface from WsfSensorComponent.

typedef std::map< WsfEM_Xmtr *, WsfSensorResultJamStrobeResultsMap
bool Initialize (double aSimTime) override
bool ProcessModeInput (UtInput &aInput, WsfSensorMode &aSensorMode) override
bool ProcessBeamInput (UtInput &aInput, WsfSensorBeam &aSensorBeam) override
void SelectMode (double aSimTime, WsfStringId aModeNameId) override
void DeselectMode (double aSimTime, WsfStringId aModeNameId) override
void AttemptToDetect (double aSimTime, WsfSensorResult &aResult) override
 Extends the sensor-model implementation of AttemptToDetect.
void ComputeSphericalMeasurementErrors (const WsfSensorResult &aResult, wsf::SphericalMeasurementErrors &aErrors) const override
void PrePerformScheduledDetections (double aSimTime) override
void PostPerformScheduledDetections (double aSimTime) override
void UpdateTrack (double aSimTime, WsfTrack *aTrackPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) override
bool TrackerAllowTracking (double aSimTime, const TrackerSettings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfTrack *aTrackPtr, WsfSensorResult &aResult) override
void TrackerInitializeTrack (double aSimTime, const TrackerSettings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfSensorMode *aModePtr, WsfTrack *&aTrackPtr) override
void TrackerUpdateTrack (double aSimTime, const TrackerSettings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfSensorMode *aModePtr, WsfTrack *aTrackPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) override
void TrackerDropTrack (double aSimTime, const TrackerSettings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfSensorMode *aModePtr, WsfTrack *aTrackPtr) override
bool AttemptToDetectFalseTarget (double aSimTime, WsfFalseTargetBlip *aBlipPtr, WsfSensor::Settings &aSettings, WsfSensorResult &aResult)
WsfFalseTargetScreenerGetScreener (const WsfSensorMode &aSensorMode) const
bool IsEP_TechniqueActive (double aSimTime, WsfStringId aTechniqueId, WsfStringId aModeNameId=WsfStringId())
 Returns true if the specified technique is active for the specified mode.
bool SelectEP_Technique (double aSimTime, WsfStringId aTechniqueId, WsfStringId aModeNameId=WsfStringId())
bool DeselectEP_Technique (double aSimTime, WsfStringId aTechniqueId, WsfStringId aModeNameId=WsfStringId())
bool JammingPerceived (const WsfSensorMode &aSensorMode)
bool JammingPerceived (WsfStringId aModeNameId)
bool ContinuousJammingPerceived (const WsfSensorMode &aSensorMode)
bool ContinuousJammingPerceived (WsfStringId aModeNameId)
bool PulseJammingPerceived (const WsfSensorMode &aSensorMode)
bool PulseJammingPerceived (WsfStringId aModeNameId)
double GetJammingFirstPerceived (const WsfSensorMode &aSensorMode)
double GetJammingLastPerceived (const WsfSensorMode &aSensorMode)

Required interface from WsfComponent.

WsfComponentCloneComponent () const override
WsfStringId GetComponentName () const override
const int * GetComponentRoles () const override
void * QueryInterface (int aRole) override

Additional Inherited Members

Public Types inherited from WsfSensorComponent
using TrackerSettings = WsfSensorTrackerSettings
Public Types inherited from WsfComponentT< WsfSensor >
typedef WsfSensor ParentType
 This is needed to support the WsfComponentList template.

Detailed Description

The EW component that will be attached to all sensor systems.

Member Typedef Documentation

◆ JamStrobeResultsMap

Constructor & Destructor Documentation

◆ WsfEW_SensorComponent() [1/2]

◆ WsfEW_SensorComponent() [2/2]

WsfEW_SensorComponent::WsfEW_SensorComponent ( const WsfEW_SensorComponent & aSrc)

◆ ~WsfEW_SensorComponent()

Member Function Documentation

◆ AttemptToDetect()

void WsfEW_SensorComponent::AttemptToDetect ( double aSimTime,
WsfSensorResult & aResult )
overridevirtual

◆ AttemptToDetectFalseTarget()

bool WsfEW_SensorComponent::AttemptToDetectFalseTarget ( double aSimTime,
WsfFalseTargetBlip * aBlipPtr,
WsfSensor::Settings & aSettings,
WsfSensorResult & aResult )

WsfEW_SensorComponent methods. These are called explicitly called by various components of the EW model (e.g. jammer, screener, techniques).

References WsfSensorMode::ApplyMeasurementErrors(), AttemptToDetectFalseTarget(), WsfSensorResult::cDOPPLER_LIMITS, WsfSensorResult::ComputeUndefinedGeometry(), WsfEM_Interaction::cSIGNAL_LEVEL, WsfFalseTargetBlip::cUndetected, WsfEW_Result::FindOrCreate(), WsfEM_XmtrRcvr::GetAntenna(), WsfSensorMode::GetBeamCount(), WsfFalseTargetBlip::GetEquivalentRCS(), WsfEM_Antenna::GetLocationWCS(), WsfSensor::GetModeName(), WsfObject::GetName(), WsfFalseTargetBlip::GetNameId(), WsfSensorComponent::GetPlatform(), WsfEM_Interaction::GetReceiver(), WsfEM_Antenna::GetRelativeLocationWCS(), WsfSensorComponent::GetSensor(), WsfFalseTargetBlip::GetStrength(), WsfEM_Interaction::GetTarget(), WsfFalseTargetScreener::GetTempPlatform(), WsfEM_Interaction::GetTransmitter(), WsfEM_Interaction::BeamData::mAz, WsfEM_Interaction::RelativeData::mAz, WsfSensorResult::mBeamIndex, WsfEM_Interaction::mCheckedStatus, WsfEM_Interaction::BeamData::mEl, WsfEM_Interaction::RelativeData::mEl, WsfEM_Interaction::mFailedStatus, WsfEM_Interaction::LocationData::mIsValid, WsfSensorResult::mMeasurement, WsfSensor::Settings::mModeIndex, WsfEM_Interaction::mRadarSig, WsfEM_Interaction::RelativeData::mRange, WsfEM_Interaction::mRcvrBeam, WsfEM_Interaction::mRcvrToTgt, WsfEM_Interaction::mSignalToNoise, WsfEM_Interaction::mTgtLoc, WsfEM_Xmtr::NotifyListeners(), WsfSensorResult::Reset(), WsfEM_Interaction::SetCategory(), WsfFalseTargetBlip::UpdateBlipData(), and WsfSensor::UpdatePosition().

Referenced by AttemptToDetectFalseTarget(), and ~WsfEW_SensorComponent().

◆ CloneComponent()

WsfComponent * WsfEW_SensorComponent::CloneComponent ( ) const
overridevirtual

Clones a component. May return null if component does not support clone.

Implements WsfComponent.

References WsfEW_SensorComponent().

◆ ComputeSphericalMeasurementErrors()

void WsfEW_SensorComponent::ComputeSphericalMeasurementErrors ( const WsfSensorResult & aResult,
wsf::SphericalMeasurementErrors & aErrors ) const
overridevirtual

◆ ContinuousJammingPerceived() [1/2]

bool WsfEW_SensorComponent::ContinuousJammingPerceived ( const WsfSensorMode & aSensorMode)

◆ ContinuousJammingPerceived() [2/2]

bool WsfEW_SensorComponent::ContinuousJammingPerceived ( WsfStringId aModeNameId)

◆ DeselectEP_Technique()

◆ DeselectMode()

◆ Find()

◆ FindOrCreate()

WsfEW_SensorComponent * WsfEW_SensorComponent::FindOrCreate ( WsfSensor & aParent)
static

Find the instance of this component attached to the specified processor, and create it if it doesn't exist.

References WsfComponentListT< COMPONENT_TYPE >::AddComponent(), Find(), WsfSensor::GetComponents(), and WsfEW_SensorComponent().

◆ GetComponentName()

WsfStringId WsfEW_SensorComponent::GetComponentName ( ) const
overridevirtual

Returns the component's name. Each component in a component list has a unique name. Names are usually defined by the user, but they may also be generated by code and prefixed with a '#' to guarantee no collisions with user-defined names.

Implements WsfComponent.

◆ GetComponentRoles()

const int * WsfEW_SensorComponent::GetComponentRoles ( ) const
overridevirtual

Returns a zero-terminated array of component roles. Note that the array should be in decreasing order of specificity and should generally the inheritance hierarchy. The first entry should be the components 'primary' role. For example a sensor would do the following:

return roles;
@ cWSF_COMPONENT_SENSOR
A 'sensor' component (WsfSensor).
Definition WsfComponentRoles.hpp:105
@ cWSF_COMPONENT_PLATFORM_PART
The component derives from WsfPlatformPart.
Definition WsfComponentRoles.hpp:98
@ cWSF_COMPONENT_ARTICULATED_PART
The component derives from WsfArticulatedPart.
Definition WsfComponentRoles.hpp:99

Implements WsfComponent.

References cWSF_COMPONENT_EW_SENSOR, cWSF_COMPONENT_NULL, and cWSF_COMPONENT_SENSOR_COMPONENT.

◆ GetJammingFirstPerceived()

double WsfEW_SensorComponent::GetJammingFirstPerceived ( const WsfSensorMode & aSensorMode)

◆ GetJammingLastPerceived()

double WsfEW_SensorComponent::GetJammingLastPerceived ( const WsfSensorMode & aSensorMode)

◆ GetScreener()

WsfFalseTargetScreener * WsfEW_SensorComponent::GetScreener ( const WsfSensorMode & aSensorMode) const

Return the pointer to the false target screener associated with the specified mode. This can be null.

References WsfMode::GetModeIndex().

Referenced by WsfFalseTargetScreener::Find(), and ~WsfEW_SensorComponent().

◆ Initialize()

bool WsfEW_SensorComponent::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 WsfComponent.

References WsfSensorMode::GetAltFreqSelectDelay(), WsfSensorMode::GetBeamCount(), WsfSensorMode::GetBeamEntry(), WsfSensorBeam::GetBeamIndex(), WsfSensorMode::GetFrameTime(), WsfSensor::GetModeEntry(), WsfMode::GetModeIndex(), WsfNamed::GetName(), WsfSensorComponent::GetSensor(), WsfSensorMode::GetSensor(), WsfSensorBeam::GetSensorMode(), WsfFalseTargetScreener::Initialize(), WsfJamStrobeDetector::Initialize(), WsfEW_SensorComponent::EW_Mode::mBeamList, WsfEW_SensorComponent::EW_Mode::mJammingPerceptionResetTime, WsfEW_SensorComponent::EW_Mode::mJamStrobeDetector, WsfEW_SensorComponent::EW_Mode::mScreenerPtr, WsfEW_SensorComponent::EW_Mode::mUseJamStrobeDetector, ok, and WsfSensorMode::ReportsSignalToNoise().

◆ IsEP_TechniqueActive()

bool WsfEW_SensorComponent::IsEP_TechniqueActive ( double aSimTime,
WsfStringId aTechniqueId,
WsfStringId aModeNameId = WsfStringId() )

◆ JammingPerceived() [1/2]

◆ JammingPerceived() [2/2]

bool WsfEW_SensorComponent::JammingPerceived ( WsfStringId aModeNameId)

◆ operator=()

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

◆ PostPerformScheduledDetections()

void WsfEW_SensorComponent::PostPerformScheduledDetections ( double aSimTime)
overridevirtual

Extends WsfSensor::PerformScheduledDetections Called by models just after exiting the loop.

Reimplemented from WsfSensorComponent.

◆ PrePerformScheduledDetections()

void WsfEW_SensorComponent::PrePerformScheduledDetections ( double aSimTime)
overridevirtual

◆ ProcessBeamInput()

◆ ProcessModeInput()

◆ PulseJammingPerceived() [1/2]

bool WsfEW_SensorComponent::PulseJammingPerceived ( const WsfSensorMode & aSensorMode)

◆ PulseJammingPerceived() [2/2]

bool WsfEW_SensorComponent::PulseJammingPerceived ( WsfStringId aModeNameId)

◆ QueryInterface()

void * WsfEW_SensorComponent::QueryInterface ( int aRole)
overridevirtual

Requests a component's role interface. A component can support one or more roles.

Parameters
aRoleThe role whose interface is to be returned.
Returns
A pointer to the object if it supports the indicated role, or 'null' if it does not. Usage: WsfProcessor* procPtrOrNull = (WsfProcessor*)componentPtr->QueryComponentInterface(cWSF_COMPONENT_PROCESSOR);

Implements WsfComponent.

References cWSF_COMPONENT_EW_SENSOR, and cWSF_COMPONENT_SENSOR_COMPONENT.

◆ RegisterComponentFactory()

void WsfEW_SensorComponent::RegisterComponentFactory ( WsfScenario & aScenario)
static

Register the component factory that handles input for this component.

References WsfScenario::RegisterComponentFactory().

Referenced by WsfEW_EA_EP_Types::WsfEW_EA_EP_Types().

◆ SelectEP_Technique()

◆ SelectMode()

◆ TrackerAllowTracking()

bool WsfEW_SensorComponent::TrackerAllowTracking ( double aSimTime,
const TrackerSettings & aSettings,
const WsfTrackId & aRequestId,
size_t aObjectId,
WsfTrack * aTrackPtr,
WsfSensorResult & aResult )
overridevirtual

Called when WsfSensorTracker::TargetDetected receives a detection.

Parameters
aSimTimeThe current simulation time.
aSettingsThe 'aSettings' argument from the calling 'Target...' method.
aRequestIdThe 'aRequestId' argument from the calling 'Target...' method.
aObjectIdThe 'aObjectId' argument from the calling 'Target...' method.
aTrackPtrPointer to the current track if one exists (can be null).
aResultThe results from the sensor detection. Return true to allow track update/creation to proceed with the current detection. If false the detection will be ignored and any existing track will be dropped.

Reimplemented from WsfSensorComponent.

References WsfFalseTargetScreener::AllowTargetTrack(), WsfFalseTargetScreener::GetDebugEnabled(), WsfNamed::GetName(), WsfObject::GetName(), WsfSensorMode::GetPlatform(), WsfSensorMode::GetSensor(), WsfFalseTargetScreener::GetSensorModePtr(), WsfEM_Interaction::GetTarget(), WsfSensorResult::mModeIndex, and WsfEW_SensorComponent::EW_Mode::mScreenerPtr.

◆ TrackerDropTrack()

void WsfEW_SensorComponent::TrackerDropTrack ( double aSimTime,
const TrackerSettings & aSettings,
const WsfTrackId & aRequestId,
size_t aObjectId,
WsfSensorMode * aModePtr,
WsfTrack * aTrackPtr )
overridevirtual

Called from an implementation of the WsfSensorTracker 'Target...' methods when they want to drop a track.

Parameters
aSimTimeThe current simulation time.
aSettingsThe 'aSettings' argument from the calling 'Target...' method.
aRequestIdThe 'aRequestId' argument from the calling 'Target...' method.
aObjectIdThe 'aObjectId' argument from the calling 'Target...' method.
aModePtrThe sensor mode last used in updating the track.
aTrackPtrThe track to be dropped.

Reimplemented from WsfSensorComponent.

References WsfFalseTargetScreener::DropFalseTargetTrack(), WsfFalseTargetScreener::DropTargetTrack(), WsfMode::GetModeIndex(), WsfSensorTrackerSettings::mComponentFlags, WsfSensorTrackerSettings::mComponentRole, and WsfEW_SensorComponent::EW_Mode::mScreenerPtr.

◆ TrackerInitializeTrack()

void WsfEW_SensorComponent::TrackerInitializeTrack ( double aSimTime,
const TrackerSettings & aSettings,
const WsfTrackId & aRequestId,
size_t aObjectId,
WsfSensorMode * aModePtr,
WsfTrack *& aTrackPtr )
overridevirtual

Called from an implementation of the WsfSensorTracker 'Target...' methods when they want to initiate a track.

Parameters
aSimTimeThe current simulation time.
aSettingsThe 'aSettings' argument from the calling 'Target...' method.
aRequestIdThe 'aRequestId' argument from the calling 'Target...' method.
aObjectIdThe 'aObjectId' argument from the calling 'Target...' method.
aModePtrThe sensor mode used in creating the track.
aTrackPtrUpdated with the pointer to the created track.

Reimplemented from WsfSensorComponent.

References WsfFalseTargetScreener::AddFalseTargetTrack(), WsfMode::GetModeIndex(), WsfTrack::GetTrackId(), WsfJamStrobeDetector::InitializeTrack(), WsfSensorMode::InitializeTrack(), WsfSensorTrackerSettings::mComponentFlags, WsfSensorTrackerSettings::mComponentRole, WsfEW_SensorComponent::EW_Mode::mJamStrobeDetector, and WsfEW_SensorComponent::EW_Mode::mScreenerPtr.

◆ TrackerUpdateTrack()

void WsfEW_SensorComponent::TrackerUpdateTrack ( double aSimTime,
const TrackerSettings & aSettings,
const WsfTrackId & aRequestId,
size_t aObjectId,
WsfSensorMode * aModePtr,
WsfTrack * aTrackPtr,
WsfPlatform * aTargetPtr,
WsfSensorResult & aResult )
overridevirtual

Called from an implementation of the WsfSensorTracker 'Target...' methods when they want to update a track.

Parameters
aSimTimeThe current simulation time.
aSettingsThe 'aSettings' argument from the calling 'Target...' method.
aRequestIdThe 'aRequestId' argument from the calling 'Target...' method.
aObjectIdThe 'aObjectId' argument from the calling 'Target...' method.
aModePtrThe sensor mode used in updating the track.
aTrackPtrThe track to be updated.
aTargetPtrThe platform representing the updated track.
aResultThe results from the sensor detection causing the track update.

Reimplemented from WsfSensorComponent.

References WsfMeasurement::Clone(), WsfSensorResult::Detected(), WsfTrack::GetHistory(), WsfMode::GetModeIndex(), WsfFalseTargetScreener::GetTrackableBlip(), WsfSensorTrackerSettings::mComponentFlags, WsfSensorTrackerSettings::mComponentRole, WsfEW_SensorComponent::EW_Mode::mJamStrobeDetector, WsfEW_SensorComponent::EW_Mode::mMaintainTrackMeasurementHistory, WsfSensorResult::mMeasurement, WsfEW_SensorComponent::EW_Mode::mScreenerPtr, and WsfJamStrobeDetector::UpdateTrack().

◆ UpdateTrack()

void WsfEW_SensorComponent::UpdateTrack ( double aSimTime,
WsfTrack * aTrackPtr,
WsfPlatform * aTargetPtr,
WsfSensorResult & aResult )
overridevirtual

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