WSF
WsfSensorSignalProcessor Class Referenceabstract

#include <WsfSensorSignalProcessor.hpp>

Inheritance diagram for WsfSensorSignalProcessor:
Collaboration diagram for WsfSensorSignalProcessor:

Classes

class  List
 A convenience class to support attaching a list of signal processors to a sensor. More...

Public Types

using FactoryPtr = WsfSensorSignalProcessor* (*)(const std::string&)
using ObjectFactoryList = std::list<FactoryPtr>
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.

Maintenance of object types.

bool mDebug {false}
 If 'true' additional information is written out to aid debugging.
static void AddObjectFactory (FactoryPtr aFactoryPtr)
static void RemoveObjectFactory (FactoryPtr aFactoryPtr)
static WsfSensorSignalProcessorCreateInstance (const std::string &aTypeName)
static void ClearTypes ()
WsfSensorSignalProcessorClone () const override=0
virtual bool Initialize (double aSimTime, WsfSensor *aSensorPtr, WsfSensorMode *aModePtr, size_t aBeamIndex=0)
bool ProcessInput (UtInput &aInput) override
virtual void Execute (double aSimTime, WsfSensorResult &aResult)=0

Additional Inherited Members

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)
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Detailed Description

An abstract base class that defines a signal processing technique for a sensor.

Not all sensors support this feature, but for those that do it provides access to an extendable library that implement signal processing techniques. When a sensor makes use of this interface it typically computes the unprocessed signal and then calls any defined processors to adjust the received power, clutter power, etc., which are then used to calculate the signal-to-interference ratio and subsequently tested for detectability.

Additional processors can be added by registering an object factory (AddObjectFactory) that will create instances with the desired functionality.

Member Typedef Documentation

◆ FactoryPtr

◆ ObjectFactoryList

Member Function Documentation

◆ AddObjectFactory()

void WsfSensorSignalProcessor::AddObjectFactory ( FactoryPtr aFactoryPtr)
static

Add an object factory for creating an instance from a fundamental type. The factory should be a static method and should be added only once.

Referenced by WsfSensorTypes::WsfSensorTypes().

◆ ClearTypes()

void WsfSensorSignalProcessor::ClearTypes ( )
static

◆ Clone()

WsfSensorSignalProcessor * WsfSensorSignalProcessor::Clone ( ) const
overridepure virtual

Return a copy of this object. Must be implemented by all derived types. If cloning is impossible, a WsfUncloneableException should be thrown.

Implements WsfObject.

Implemented in wsf::SimpleDopplerSignalProcessor, WsfRadarMTD_SignalProcessor, WsfRadarMTI_AdjSignalProcessor, WsfRadarMTI_SignalProcessor, WsfRadarPD_SignalProcessor, and WsfRadarSTC_SignalProcessor.

References Initialize().

◆ CreateInstance()

WsfSensorSignalProcessor * WsfSensorSignalProcessor::CreateInstance ( const std::string & aTypeName)
static

◆ Execute()

virtual void WsfSensorSignalProcessor::Execute ( double aSimTime,
WsfSensorResult & aResult )
pure virtual

◆ Initialize()

bool WsfSensorSignalProcessor::Initialize ( double aSimTime,
WsfSensor * aSensorPtr,
WsfSensorMode * aModePtr,
size_t aBeamIndex = 0 )
virtual

◆ ProcessInput()

bool WsfSensorSignalProcessor::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 WsfObject.

References mDebug.

Referenced by wsf::SimpleDopplerSignalProcessor::ProcessInput(), WsfRadarMTD_SignalProcessor::ProcessInput(), WsfRadarMTI_AdjSignalProcessor::ProcessInput(), WsfRadarMTI_SignalProcessor::ProcessInput(), WsfRadarPD_SignalProcessor::ProcessInput(), and WsfRadarSTC_SignalProcessor::ProcessInput().

◆ RemoveObjectFactory()

void WsfSensorSignalProcessor::RemoveObjectFactory ( FactoryPtr aFactoryPtr)
static

Add an object factory for removing an instance from a fundamental type. The factory should be a static method and this should be for adding duplicate factories.

Member Data Documentation

◆ mDebug


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