WSF
SOSM_SensorTarget Class Reference

#include <SOSM_SensorTarget.hpp>

Collaboration diagram for SOSM_SensorTarget:

Classes

class  SnrAtmPair
class  SnrTgtPair

Public Member Functions

 SOSM_SensorTarget (SOSM_Manager *aManagerPtr)
virtual ~SOSM_SensorTarget ()
bool Initialize (const std::string &aSensorType, const std::string &aTargetType)
float ComputeTargetIrradiance (SOSM_Interaction &aInteraction) const
float ComputeProbabilityOfDetection (float aTargetIrradiance, SOSM_Interaction &aInteraction) const
SOSM_SensorGetSensor () const
SOSM_TargetGetTarget () const
SOSM_ManagerGetManager () const

Protected Types

typedef std::map< std::string, SnrAtmPair * > SnrAtmTableMap
 The key is '<snr-type>_<atm_type>'.
typedef std::map< std::string, SnrTgtPair * > SnrTgtTableMap
 The key is '<snr-type>_<tgt_type>_<tgt_state>'.

Protected Member Functions

 SOSM_SensorTarget (const SOSM_SensorTarget &aSrc)=delete
 Copy constructor declared but not defined to prevent use.
SOSM_SensorTarget operator= (const SOSM_SensorTarget &aRhs)=delete
 Assignment operator declared but not defined to prevent use.
SnrAtmPairCreateOrLoadSensorAtmosphereTables ()
SnrTgtPairCreateOrLoadSensorTargetTables ()
void LoadSensorTargetTables ()
 Load precomputed sensor-target specific tables if permitted.

Protected Attributes

SOSM_ManagermManagerPtr
SOSM_SensormSensorPtr
SOSM_TargetmTargetPtr
bool mUsingTables
SnrAtmPairmSnrAtmPtr
SnrTgtPairmSnrTgtPtr

Static Protected Attributes

static SnrAtmTableMap sSnrAtmTables
static SnrTgtTableMap sSnrTgtTables

Detailed Description

A sensor-target pair.

There are two basic ways to perform sensor/target interactions:

  • Directly instantiating sensor and target objects and invoking the sensor detection routines. This will invoke the underlying sensor, target and atmospheric models to compute the detection result. This is the slower of the methods, but uses less storage.
  • Utilizing precomputed tables that are specifically computed for the sensor-type/target-type pair. This is the most efficient mechanism, but can require a LOT of memory if there are a great number sensor types and target types.

The main function of this class is to isolate to calling application from knowing which method is being used. The caller is simply responsible for instantiating and initializing one of these objects for a given sensor/target pair.

An application may choose to either maintain one of these objects for each sensor-type/target-type pair or one for each sensor/target pair. The second method is more efficient (and thread-safe) because the some of the models maintain a persistent state that works most efficiently when not changing between targets. The first method is NOT thread-safe. The disadvantage is that each pairing takes about 100 bytes, which should be no problem (unless has about 10000 bodies, all which have IR sensors detecting all targets!)

Note
Thread-safety only exists when each pair of interacting sensor and target objects has their own instance of this object.

Member Typedef Documentation

◆ SnrAtmTableMap

typedef std::map<std::string, SnrAtmPair*> SOSM_SensorTarget::SnrAtmTableMap
protected

The key is '<snr-type>_<atm_type>'.

◆ SnrTgtTableMap

typedef std::map<std::string, SnrTgtPair*> SOSM_SensorTarget::SnrTgtTableMap
protected

The key is '<snr-type>_<tgt_type>_<tgt_state>'.

Constructor & Destructor Documentation

◆ SOSM_SensorTarget() [1/2]

SOSM_SensorTarget::SOSM_SensorTarget ( SOSM_Manager * aManagerPtr)

◆ ~SOSM_SensorTarget()

SOSM_SensorTarget::~SOSM_SensorTarget ( )
virtual

References mSensorPtr, and mTargetPtr.

◆ SOSM_SensorTarget() [2/2]

SOSM_SensorTarget::SOSM_SensorTarget ( const SOSM_SensorTarget & aSrc)
protecteddelete

Copy constructor declared but not defined to prevent use.

References SOSM_SensorTarget().

Member Function Documentation

◆ ComputeProbabilityOfDetection()

float SOSM_SensorTarget::ComputeProbabilityOfDetection ( float aTargetIrradiance,
SOSM_Interaction & aInteraction ) const

Compute the probability of detection for a specified target irradiance.

Parameters
aTargetIrradiance[input] The irradiance on the sensor while looking at the target of interest. (W/cm^2)
aInteraction[input] The interaction object representing the sensor and target state.
Returns
The probability of detection in the range [0..1].

References mSensorPtr.

Referenced by WsfSOSM_Sensor::SOSM_Mode::AttemptToDetect().

◆ ComputeTargetIrradiance()

◆ CreateOrLoadSensorAtmosphereTables()

◆ CreateOrLoadSensorTargetTables()

◆ GetManager()

SOSM_Manager * SOSM_SensorTarget::GetManager ( ) const
inline

References mManagerPtr.

◆ GetSensor()

SOSM_Sensor * SOSM_SensorTarget::GetSensor ( ) const
inline

◆ GetTarget()

SOSM_Target * SOSM_SensorTarget::GetTarget ( ) const
inline

◆ Initialize()

bool SOSM_SensorTarget::Initialize ( const std::string & aSensorType,
const std::string & aTargetType )

◆ LoadSensorTargetTables()

void SOSM_SensorTarget::LoadSensorTargetTables ( )
protected

Load precomputed sensor-target specific tables if permitted.

References CreateOrLoadSensorAtmosphereTables(), CreateOrLoadSensorTargetTables(), mSensorPtr, mSnrAtmPtr, mSnrTgtPtr, mTargetPtr, mUsingTables, sSnrAtmTables, and sSnrTgtTables.

Referenced by Initialize(), and operator=().

◆ operator=()

SOSM_SensorTarget SOSM_SensorTarget::operator= ( const SOSM_SensorTarget & aRhs)
protecteddelete

Assignment operator declared but not defined to prevent use.

References CreateOrLoadSensorAtmosphereTables(), CreateOrLoadSensorTargetTables(), LoadSensorTargetTables(), and SOSM_SensorTarget().

Member Data Documentation

◆ mManagerPtr

◆ mSensorPtr

◆ mSnrAtmPtr

SnrAtmPair* SOSM_SensorTarget::mSnrAtmPtr
protected

◆ mSnrTgtPtr

SnrTgtPair* SOSM_SensorTarget::mSnrTgtPtr
protected

◆ mTargetPtr

◆ mUsingTables

bool SOSM_SensorTarget::mUsingTables
protected

◆ sSnrAtmTables

SOSM_SensorTarget::SnrAtmTableMap SOSM_SensorTarget::sSnrAtmTables
staticprotected

Referenced by LoadSensorTargetTables().

◆ sSnrTgtTables

SOSM_SensorTarget::SnrTgtTableMap SOSM_SensorTarget::sSnrTgtTables
staticprotected

Referenced by LoadSensorTargetTables().


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