WSF
WsfRF_Jammer::JammerXmtr Class Reference

#include <WsfRF_Jammer.hpp>

Inheritance diagram for WsfRF_Jammer::JammerXmtr:
Collaboration diagram for WsfRF_Jammer::JammerXmtr:

Public Member Functions

 JammerXmtr (WsfEM_Antenna *aAntennaPtr)
 JammerXmtr (const JammerXmtr &aSrc, WsfEM_Antenna *aAntennaPtr)
 JammerXmtr Copy Constructor.
 WsfEM_Xmtr (XmtrFunction aFunction, WsfEM_Antenna *aAntennaPtr=nullptr)
 WsfEM_Xmtr (const WsfEM_Xmtr &aSrc, WsfEM_Antenna *aAntennaPtr=nullptr)
 ~WsfEM_Xmtr () override
WsfEM_Xmtroperator= (const WsfEM_Xmtr &)=delete
std::string GetName () const
 Required to display error messages in WsfComponentFactoryList.
ComponentListGetComponents ()
const ComponentListGetComponents () const
const char * GetScriptClassName () const override
void Activate ()
void Deactivate ()
virtual double ComputeRadiatedPower (double aTargetAz, double aTargetEl, double aEBS_Az, double aEBS_El, double aFrequency, double &aAntennaGain)
bool Initialize (WsfSimulation &aSimulation) override
bool ProcessInput (UtInput &aInput) override
virtual bool ProcessInputBlock (UtInput &aInput)
 A convenience method to check for and process a 'transmitter/end_transmitter' block.
bool AllowZeroFrequencyInput () const
void AllowZeroFrequencyInput (bool val)
WsfEM_RcvrGetLinkedReceiver () const
int GetAlternateFrequencyCount () const
const FrequencyListGetAlternateFrequencies ()
int GetCurrentAlternateFrequencyId () const
double GetAlternateFrequency (unsigned int aId) const
bool ExplicitFrequencyList () const
XmtrFunction GetFunction () const
double GetTransmissionEndTime () const
void SetTransmissionEndTime (double aTransmissionEndTime)
 Set the simulation time when the current transmission is to be completed.
double GetPeakPower (double aFrequency=0.0) const
double GetAveragePower (double aFrequency=0.0) const
double GetPower (double aFrequency=0.0) const
double GetPulseCompressionRatio () const
int GetPulseRepetitionFrequencyCount () const
double GetPulseRepetitionFrequency (size_t aIndex=0) const
std::vector< double > GetPulseRepetitionFrequencies () const
int GetPulseRepetitionIntervalCount () const
double GetPulseRepetitionInterval (size_t aIndex=0) const
std::vector< double > GetPulseRepetitionIntervals () const
double GetPulseWidth () const
double GetDutyCycle () const
bool IsUsingPeakPower () const
void SetLinkedReceiver (WsfEM_Rcvr *aRcvrPtr)
void SetBandwidth (double aBandwidth) override
void SetFrequency (double aFrequency) override
void SelectAlternateFrequency (unsigned int aId)
bool UseDefaultFrequency ()
void UseDefaultFrequency (bool aUseDefaultFrequency)
void SetPolarization (WsfEM_Types::Polarization aPolarization) override
void SetPower (double aPower)
bool SetPower (double aPower, double aFrequency)
void SetPulseCompressionRatio (double aPulseCompressionRatio)
void SetPulseRepetitionFrequency (double aPulseRepetitionFrequency, size_t aPRF_Num=1)
void SetPulseRepetitionInterval (double aPulseRepetitionInterval, size_t aPRF_Num=1)
void SetPulseWidth (double aPulseWidth)
void SetDutyCycle (double aDutyCycle)
virtual bool AddListener (WsfEM_Rcvr *aRcvrPtr)
virtual bool RemoveListener (WsfEM_Rcvr *aRcvrPtr)
virtual void NotifyListeners (double aSimTime, WsfEM_Interaction &aResult)
virtual bool HasListeners () const
 Return true if any passive listeners have been attached.
virtual bool AddChangeListener (WsfEM_Rcvr *aRcvrPtr)
virtual bool RemoveChangeListener (WsfEM_Rcvr *aRcvrPtr)
virtual void NotifyChangeListeners (double aSimTime, size_t aTargetIndex)
virtual bool HasChangeListeners () const
 Return true if any passive listeners have been attached.
Public Member Functions inherited from WsfEM_XmtrRcvr
 WsfEM_XmtrRcvr (WsfEM_Antenna *aAntennaPtr=nullptr)
 WsfEM_XmtrRcvr (const WsfEM_XmtrRcvr &aSrc, WsfEM_Antenna *aAntennaPtr)
virtual ~WsfEM_XmtrRcvr ()
WsfPlatformGetPlatform () const
WsfArticulatedPartGetArticulatedPart () const
virtual void UpdatePosition (double aSimTime)
const char * GetScriptClassName () const override
WsfEM_AttenuationGetAttenuationModel () const
void SetAttenuationModel (WsfEM_Attenuation *aAttenuationPtr)
WsfStringId GetAttenuationModelType () const
 Return the type of the attenuation model (if one is defined).
void SetAttenuationModelType (WsfStringId aAttenuationType)
WsfEM_PropagationGetPropagationModel () const
void SetPropagationModel (WsfEM_Propagation *aPropagationPtr)
WsfStringId GetPropagationModelType () const
 Return the type of the propagation model (if one is defined).
void SetPropagationModelType (WsfStringId aPropagationType)
void SetAttenuationInputEnabled (bool aEnabled)
 Enable or disable 'attenuation_model' input.
void SetPropagationInputEnabled (bool aEnabled)
 Enable or disable 'propagation_model' input.
WsfEM_AntennaGetAntenna () const
 Get the pointer associated geometry object.
void SetAntenna (WsfEM_Antenna *aAntennaPtr)
WsfAntennaPatternGetAntennaPattern (WsfEM_Types::Polarization aPolarization, double aFrequency) const
bool SetAntennaPattern (WsfAntennaPattern *aAntennaPatternPtr, WsfEM_Types::Polarization aPolarization, double aFrequency)
bool AddAntennaPattern (WsfAntennaPattern *aAntennaPatternPtr, WsfEM_Types::Polarization aPolarization, double aFrequency)
const AntennaPatternListGetAntennaPatternList (WsfEM_Types::Polarization aPolarization) const
double GetBeamTilt () const
void SetBeamTilt (double aBeamTilt)
 Set the angle of the boresight of the antenna gain pattern above/below (+/-) the antenna boresight.
virtual double GetAntennaGain (WsfEM_Types::Polarization aPolarization, double aFrequency, double aTargetAz, double aTargetEl, double aEBS_Az, double aEBS_El)
virtual WSF_DEPRECATED double GetAzimuthBeamwidth () const final
virtual double GetAzimuthBeamwidth (double aEBS_Azimuth, double aEBS_Elevation) const
virtual WSF_DEPRECATED double GetElevationBeamwidth () const final
virtual double GetElevationBeamwidth (double aEBS_Azimuth, double aEBS_Elevation) const
virtual double GetPeakAntennaGain () const
virtual double GetMinimumAntennaGain () const
virtual void SetAntennaBeamCount (unsigned int aBeamCount)
bool DebugEnabled () const
 Determine if debugging is enabled.
void SetDebugEnabled (bool aDebugEnabled)
bool IsHorizonMaskingEnabled () const
 determine if horizon masking is to be checked
bool IsTerrainMaskingEnabled () const
 determine if terrain masking is to be checked
std::string MaskingMode () const
 Gets the masking mode.
void SetMaskingMode (const std::string &aTerrainMaskingMode)
 Set the type of masking to perform.
bool CheckMasking () const
 determine if horizon and terrain masking is to be checked
void SetCheckMasking (bool aCheckMasking)
 enable/disable checking of horizon and terrain masking
void DisableMaskingCheck ()
 disables the checking of horizon and terrain masking (retained for compatibility)
WsfModeGetMode () const
void SetMode (WsfMode *aModePtr)
size_t GetIndex () const
 Get the index of the xmtr/rcvr in the complex assembly.
void SetIndex (size_t aIndex)
 Set the index of the xmtr/rcvr in the complex assembly.
WsfSimulationGetSimulation () const
WsfEM_ManagerGetEM_Manager () const
double GetEarthRadiusMultiplier () const
double GetFrequency () const
double GetWavelength () const
double GetBandwidth () const
bool IsBandwidthExplicit () const
double GetInternalLoss () const
WsfEM_Types::Polarization GetPolarization () const
 Get the polarization of the EM system.
void SetEarthRadiusMultiplier (double aMultiplier)
void SetInternalLoss (double aInternalLoss)
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

Friends

class WsfRF_Jammer::JammerBeam
class WsfRF_Jammer::JammerMode

Frequency band methods.

WsfCategoryList mIgnoredCategories
 Categories which this jammer should ignore.
std::vector< WsfStringIdmIgnoredSides
 The sides (teams) which this jammer should ignore.
unsigned int mIgnoredDomains
 A bit mask of ignored domains.
bool mIgnoreSameSide
 'true' if the jammer should not jam platforms on the same side.
double mFrequencyBand [2]
 Alternate input for defining the frequency and bandwidth of the jammer transmitter.
void GetFrequencyBand (double aFrequencyBand[2]) const

Common infrastructure methods.

bool Initialize (WsfSimulation &aSimulation) override
bool ProcessInput (UtInput &aInput) override

Allowed interaction methods.

Is this transmitter allowed to interact with (transmit radiation to) the specified receiver.

Parameters
aRcvrPtrPointer to the receiver that the allowed interaction is to be checked for. This method should answer the question, 'Should we allow this transmitter to interact with the supplied receiver'. This method must NOT consider geometry.
bool AllowInteractionWith (WsfEM_Rcvr *aRcvrPtr) override

Additional Inherited Members

Public Types inherited from WsfEM_Xmtr
enum  XmtrFunction { cXF_UNDEFINED , cXF_COMM , cXF_SENSOR , cXF_INTERFERER }
 XmtrFunction defines the intended purpose of the transmitter. More...
using Component = WsfEM_XmtrComponent
 Even though this isn't a component, it must have a role in order to use component factories.
using ComponentList = WsfComponentListT<WsfEM_XmtrComponent>
using PowerList = std::vector<std::pair<double, double>>
 Type definition for the frequency dependent power.
using FrequencyList = std::map<size_t, double>
 Get the frequencies container. This is for External Services.
Public Types inherited from WsfEM_XmtrRcvr
using AntennaPatternList = std::vector<std::pair<WsfAntennaPattern*, double>>
 Vector of pairs of antenna pattern pointer and associated lower frequency bounds.
static void AssociateSystems (WsfEM_XmtrRcvr *aSystem1Ptr, WsfEM_XmtrRcvr *aSystem2Ptr)
Static Public Attributes inherited from WsfAuxDataEnabled
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataAccessed
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataDestroyed
Protected Member Functions inherited from WsfUniqueId
void AssignUniqueId (WsfSimulation *aSimulationPtr)
WsfStringId mAttenuationType
 The type of the atmospheric attenuation model to be used.
WsfStringId mPropagationType
 The type of the propagation model to be used.
WsfEM_AttenuationmAttenuationPtr
 Pointer to the atmospheric attenuation model.
WsfEM_PropagationmPropagationPtr
 Pointer to the propagation object.
WsfModemModePtr
WsfEM_AntennamAntennaPtr
 Pointer to the 'geometry' object for this transmitter/receiver.
std::array< AntennaPatternList, WsfEM_Types::cPOL_COUNTmPatternTables {}
WsfEM_XmtrRcvrmAssociatePtr
double mBeamTilt
double mEarthRadiusMultiplier
double mFrequency
double mBandwidth
double mInternalLoss
WsfEM_Types::Polarization mPolarization
size_t mIndex
std::array< bool, WsfEM_Types::cPOL_COUNTmUsedExplicitPolarization {{false}}
bool mDebugEnabled
unsigned int mTerrainMaskingMode
 Settings used for masking checks.
bool mCheckMasking
 true if horizon and terrain masking enabled.
bool mExplicitBandwidth
 true if explicit 'bandwidth' specified

Detailed Description

A specialized WsfEM_Xmtr class. Provides for handling of allowed interactions between a transmitter and receiver and specific targeted data to allow pointing of the jammer spots.

Constructor & Destructor Documentation

◆ JammerXmtr() [1/2]

WsfRF_Jammer::JammerXmtr::JammerXmtr ( WsfEM_Antenna * aAntennaPtr)

Nested class WsfRF_Jammer::JammerXmtr. This class is to provide for handling of allowed interactions between a transmitter and receiver

References WsfEM_Xmtr::cXF_INTERFERER, mFrequencyBand, mIgnoredCategories, mIgnoredDomains, mIgnoredSides, mIgnoreSameSide, and WsfEM_Xmtr::WsfEM_Xmtr().

Referenced by JammerXmtr(), and WsfRF_Jammer::JammerMode.

◆ JammerXmtr() [2/2]

WsfRF_Jammer::JammerXmtr::JammerXmtr ( const JammerXmtr & aSrc,
WsfEM_Antenna * aAntennaPtr )

Member Function Documentation

◆ AllowInteractionWith()

bool WsfRF_Jammer::JammerXmtr::AllowInteractionWith ( WsfEM_Rcvr * aRcvrPtr)
overridevirtual

Is this transmitter allowed to interact with (transmit radiation to) the specified receiver.

This method should answer the question, 'Should we allow this transmitter to interact with the supplied receiver'. This method must NOT consider geometry.

Reimplemented from WsfEM_Xmtr.

References WsfEM_XmtrRcvr::GetPlatform(), mIgnoredCategories, mIgnoredDomains, mIgnoredSides, and platformPtr.

Referenced by WsfRF_Jammer::JammerMode.

◆ GetFrequencyBand()

void WsfRF_Jammer::JammerXmtr::GetFrequencyBand ( double aFrequencyBand[2]) const

Get the frequency band, i.e. frequency limits.

Parameters
[out]aFrequencyBandA tuple containing the lower and upper limits of the frequency band for the transmitter.

References mFrequencyBand.

Referenced by WsfRF_Jammer::JammerMode.

◆ Initialize()

◆ ProcessInput()

bool WsfRF_Jammer::JammerXmtr::ProcessInput ( UtInput & aInput)
overridevirtual

◆ WsfRF_Jammer::JammerBeam

friend class WsfRF_Jammer::JammerBeam
friend

◆ WsfRF_Jammer::JammerMode

Member Data Documentation

◆ mFrequencyBand

double WsfRF_Jammer::JammerXmtr::mFrequencyBand[2]
protected

Alternate input for defining the frequency and bandwidth of the jammer transmitter.

Referenced by GetFrequencyBand(), JammerXmtr(), JammerXmtr(), and ProcessInput().

◆ mIgnoredCategories

WsfCategoryList WsfRF_Jammer::JammerXmtr::mIgnoredCategories
protected

Categories which this jammer should ignore.

Referenced by AllowInteractionWith(), JammerXmtr(), JammerXmtr(), and ProcessInput().

◆ mIgnoredDomains

unsigned int WsfRF_Jammer::JammerXmtr::mIgnoredDomains
protected

A bit mask of ignored domains.

Referenced by AllowInteractionWith(), JammerXmtr(), JammerXmtr(), and ProcessInput().

◆ mIgnoredSides

std::vector<WsfStringId> WsfRF_Jammer::JammerXmtr::mIgnoredSides
protected

The sides (teams) which this jammer should ignore.

Referenced by AllowInteractionWith(), Initialize(), JammerXmtr(), JammerXmtr(), and ProcessInput().

◆ mIgnoreSameSide

bool WsfRF_Jammer::JammerXmtr::mIgnoreSameSide
protected

'true' if the jammer should not jam platforms on the same side.

Referenced by Initialize(), JammerXmtr(), JammerXmtr(), and ProcessInput().


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