WSF
WsfEM_Xmtr Class Reference

#include <WsfEM_Xmtr.hpp>

Inheritance diagram for WsfEM_Xmtr:
Collaboration diagram for WsfEM_Xmtr:

Definitions to support the component list on the transmitter.

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.
 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.

Component list methods.

using FrequencyList = std::map<size_t, double>
 Get the frequencies container. This is for External Services.
ComponentListGetComponents ()
const ComponentListGetComponents () const
const char * GetScriptClassName () const override
void Activate ()
void Deactivate ()
virtual bool AllowInteractionWith (WsfEM_Rcvr *aRcvrPtr)
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

Transmission End Time maintenance.

The transmission end time is primarily used by the passive type sensors to maintain detection of a long intermittent transmission.

double GetTransmissionEndTime () const
void SetTransmissionEndTime (double aTransmissionEndTime)
 Set the simulation time when the current transmission is to be completed.

Power Functions

Returns peak or average power as indicated by name, or in the case of GetPower, conditionally returns either peak or average power based on user preference.

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)

Passive listener list maintenance.

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.

Additional Inherited Members

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.
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
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 transmitter of electromagnetic radiation.

This can be used to implement the transmitters in radars, RF interferers or RF communications.

To use one of these within a system, the following protocol must be observed

  • Set the attributes of the object (using ProcessInput or the Set methods)
  • Ensure that a pointer to a valid WsfEM_Antenna object has been provided via either the (copy) constructor or SetAntenna() method.
  • Invoke the Initialize() method when all of the attributes have been defined. (This is typically done within the Initialize() method of the containing system).
  • The Activate() method must be called when the system is turned on. (This is typically done within the TurnOn() method of the containing system).
  • The Deactivate() method must be called when the system is turned off. (This is typically done within the TurnOff() method of the containing system).

Member Typedef Documentation

◆ Component

Even though this isn't a component, it must have a role in order to use component factories.

◆ ComponentList

◆ FrequencyList

using WsfEM_Xmtr::FrequencyList = std::map<size_t, double>

Get the frequencies container. This is for External Services.

◆ PowerList

using WsfEM_Xmtr::PowerList = std::vector<std::pair<double, double>>

Type definition for the frequency dependent power.

Member Enumeration Documentation

◆ XmtrFunction

XmtrFunction defines the intended purpose of the transmitter.

Enumerator
cXF_UNDEFINED 

Undefined.

cXF_COMM 

Communications.

cXF_SENSOR 

Sensing.

cXF_INTERFERER 

Interfering system.

Constructor & Destructor Documentation

◆ WsfEM_Xmtr() [1/2]

WsfEM_Xmtr::WsfEM_Xmtr ( XmtrFunction aFunction,
WsfEM_Antenna * aAntennaPtr = nullptr )

Construct a transmitter.

Parameters
aFunctionThe primary function of the transmitter.
aAntennaPtrPointer to the antenna associated with the transmitter. If one isn't provided or if it is zero then call must be made to SetAntenna() prior to calling Initialize().
Note
The caller retains ownership of the antenna as it may be shared with other receivers or transmitters.

References WsfEM_XmtrRcvr::SetEarthRadiusMultiplier(), SetPulseRepetitionInterval(), and WsfEM_XmtrRcvr::WsfEM_XmtrRcvr().

Referenced by WsfRF_Jammer::JammerXmtr::JammerXmtr(), WsfRF_Jammer::JammerXmtr::JammerXmtr(), operator=(), and WsfEM_Xmtr().

◆ WsfEM_Xmtr() [2/2]

WsfEM_Xmtr::WsfEM_Xmtr ( const WsfEM_Xmtr & aSrc,
WsfEM_Antenna * aAntennaPtr = nullptr )

Copy construct a transmitter.

Parameters
aSrcThe transmitter from which to copy.
aAntennaPtrPointer to the antenna associated with the transmitter. If one isn't provided or if it is zero then call must be made to SetAntenna() prior to calling Initialize().
Note
The caller retains ownership of the antenna as it may be shared with other receivers or transmitters.

References WsfEM_Xmtr(), and WsfEM_XmtrRcvr::WsfEM_XmtrRcvr().

◆ ~WsfEM_Xmtr()

WsfEM_Xmtr::~WsfEM_Xmtr ( )
override

References Deactivate().

Member Function Documentation

◆ Activate()

void WsfEM_Xmtr::Activate ( )

Indicate the transmitter is 'turned-on'.

This method adds the transmitter from the list of active transmitters within the simulation.

References WsfEM_XmtrRcvr::GetEM_Manager().

◆ AddChangeListener()

bool WsfEM_Xmtr::AddChangeListener ( WsfEM_Rcvr * aRcvrPtr)
virtual

Add a receiver to the list of those to be notified when the transmitter changes parameters.

Parameters
aRcvrPtrThe receiver to be notified when a transmission prameter changes occur.
Returns
true if the receiver was added to the list or false if it was already in the list.

Referenced by WsfPassiveSensor::PassiveMode::AddInteractor().

◆ AddListener()

bool WsfEM_Xmtr::AddListener ( WsfEM_Rcvr * aRcvrPtr)
virtual

Add a receiver to the list of those to be notified when the transmitter emits.

Parameters
aRcvrPtrThe receiver to be notified when a transmission occurs.
Returns
true if the receiver was added to the list or false if it was already in the list.

Referenced by WsfPassiveSensor::PassiveMode::AddInteractor().

◆ AllowInteractionWith()

bool WsfEM_Xmtr::AllowInteractionWith ( WsfEM_Rcvr * aRcvrPtr)
virtual

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 in WsfRF_Jammer::JammerXmtr.

Referenced by WsfEM_Rcvr::UpdateInteractions().

◆ AllowZeroFrequencyInput() [1/2]

bool WsfEM_Xmtr::AllowZeroFrequencyInput ( ) const
inline

◆ AllowZeroFrequencyInput() [2/2]

void WsfEM_Xmtr::AllowZeroFrequencyInput ( bool val)
inline

◆ ComputeRadiatedPower()

double WsfEM_Xmtr::ComputeRadiatedPower ( double aTargetAz,
double aTargetEl,
double aEBS_Az,
double aEBS_El,
double aFrequency,
double & aAntennaGain )
virtual

Compute the effective radiated power density in a given direction.

Parameters
aTargetAz[input] Target azimuth with respect to the beam (radians)
aTargetEl[input] Target elevation with respect to the beam (radians)
aEBS_Az[input] Beam azimuth with respect to the antenna (radians)
aEBS_El[input] Beam elevation with respect to the antenna (radians)
aFrequency[input] Frequency of the receiver receiving the signal (Hertz).
aAntennaGain[output] The computed antenna gain (absolute - not dB)
Returns
The effective radiated power (Watts)

References WsfEM_XmtrRcvr::GetAntennaGain(), GetPower(), WsfEM_XmtrRcvr::mFrequency, WsfEM_XmtrRcvr::mInternalLoss, and WsfEM_XmtrRcvr::mPolarization.

◆ Deactivate()

void WsfEM_Xmtr::Deactivate ( )

Indicate the transmitter is 'turned-off'.

This method removes the transmitter from the list of active transmitters within the simulation.

Referenced by WsfRF_Jammer::StartJamming(), WsfRF_Jammer::StopJamming(), and ~WsfEM_Xmtr().

◆ ExplicitFrequencyList()

bool WsfEM_Xmtr::ExplicitFrequencyList ( ) const
inline

◆ GetAlternateFrequencies()

const FrequencyList & WsfEM_Xmtr::GetAlternateFrequencies ( )
inline

◆ GetAlternateFrequency()

double WsfEM_Xmtr::GetAlternateFrequency ( unsigned int aId) const

Get the alternate frequency with aId.

Note
If the aId is not in the list then it is assumed that the list has been exhausted and it will return a frequency value of 0.0.
Parameters
aIdThe Id of the alternate frequency to get the value of; [0, ... N-1], where N is the size of the list.

◆ GetAlternateFrequencyCount()

int WsfEM_Xmtr::GetAlternateFrequencyCount ( ) const
inline

Get the number of alternate frequencies specified.

Returns
The number of alternate frequencies specified

Referenced by WsfPassiveSensor::PassiveMode::AddInteractor().

◆ GetAveragePower()

double WsfEM_Xmtr::GetAveragePower ( double aFrequency = 0.0) const

Get the average power for the currently set frequency.

Returns
The average power at the currently set frequency.

References GetDutyCycle(), and GetPeakPower().

Referenced by WsfLADAR_Sensor::LADAR_Mode::AttemptToDetect(), WsfSAR_Sensor::SAR_Mode::Calibrate(), WsfSurfaceWaveRadarSensor::RadarMode::Calibrate(), and GetPower().

◆ GetComponents() [1/2]

ComponentList & WsfEM_Xmtr::GetComponents ( )
inline

◆ GetComponents() [2/2]

const ComponentList & WsfEM_Xmtr::GetComponents ( ) const
inline

◆ GetCurrentAlternateFrequencyId()

◆ GetDutyCycle()

double WsfEM_Xmtr::GetDutyCycle ( ) const
inline

Get the duty-cycle

Returns
Duty-cycle no-units. If 1.0 then average power is equal to peak power.

Referenced by GetAveragePower().

◆ GetFunction()

◆ GetLinkedReceiver()

WsfEM_Rcvr * WsfEM_Xmtr::GetLinkedReceiver ( ) const
inline

Get the receiver that is linked to this transmitter.

See also
SetLinkedReceiver for more information.

Referenced by WsfXIO_WeaponComponent::HandleStateChangeRequest(), and WsfXIO_ObjectInfoLoad::Load_EM_Xmtr().

◆ GetName()

std::string WsfEM_Xmtr::GetName ( ) const
inline

◆ GetPeakPower()

double WsfEM_Xmtr::GetPeakPower ( double aFrequency = 0.0) const

Get the peak power for the currently set frequency.

Parameters
aFrequency[input] Frequency of the receiver receiving the signal (Hertz).
Returns
The peak power at the currently set frequency.

References WsfEM_XmtrRcvr::mFrequency.

Referenced by WsfSAR_Sensor::SAR_Mode::Calibrate(), WsfSurfaceWaveRadarSensor::RadarMode::Calibrate(), GetAveragePower(), and GetPower().

◆ GetPower()

double WsfEM_Xmtr::GetPower ( double aFrequency = 0.0) const

Get the power for the currently set frequency. Conditionally provides either peak or average power depending on user preference via the mUsePeakPower flag.

Returns
The average or peak power at the currently set frequency.

References GetAveragePower(), and GetPeakPower().

Referenced by WsfSAR_Sensor::SAR_Mode::Calibrate(), WsfSurfaceWaveRadarSensor::RadarMode::Calibrate(), WsfEM_ALARM_Clutter::ComputeClutterPower(), ComputeRadiatedPower(), Initialize(), WsfXIO_ObjectInfoLoad::Load_EM_Xmtr(), WsfDisPlatform::MessageTransmitted(), and WsfDisInterface::UpdateBeamFromXmtr().

◆ GetPulseCompressionRatio()

◆ GetPulseRepetitionFrequencies()

std::vector< double > WsfEM_Xmtr::GetPulseRepetitionFrequencies ( ) const

◆ GetPulseRepetitionFrequency()

double WsfEM_Xmtr::GetPulseRepetitionFrequency ( size_t aIndex = 0) const

◆ GetPulseRepetitionFrequencyCount()

int WsfEM_Xmtr::GetPulseRepetitionFrequencyCount ( ) const
inline

Get the number of PRFs specified.

Returns
The number of PRFs specified

Referenced by WsfRadarMTD_SignalProcessor::Initialize(), WsfRadarMTI_SignalProcessor::Initialize(), WsfRadarPD_SignalProcessor::Initialize(), and ProcessInput().

◆ GetPulseRepetitionInterval()

double WsfEM_Xmtr::GetPulseRepetitionInterval ( size_t aIndex = 0) const

Get the pulse repetition interval (1 / PRF).

Returns
Pulse repetition interval (seconds). If 0.0 then it is a continuous wave transmitter.

Get the pulse repetition interval (1 / PRF).

Parameters
aIndex[input] The PRF index to lookup.
Returns
Pulse repetition interval (seconds).
Note
If 0.0 then it is a continuous wave transmitter.
Default returns average PRI, i.e. index 0.

Referenced by WsfLADAR_Sensor::LADAR_Mode::AttemptToDetect(), WsfPassiveSensor::PassiveMode::AttemptToDetect(), WsfEW_PulseEffect::GetJammingPulseDensity(), WsfXIO_ObjectInfoLoad::Load_EM_Xmtr(), WsfEW_RPJ_Effect::UpdateEffects(), WsfEW_SimpleFT_Effect::UpdateEffects(), WsfEW_SLC_Effect::UpdateEffects(), WsfEW_FalseTargetEffect::UpdateFT(), WsfEW_CoverPulseEffect::UpdateJammerPulseDensity(), WsfEW_PulseEffect::UpdateJammerPulseDensity(), and WsfEW_TrackEffect::UpdateJammerPulseDensity().

◆ GetPulseRepetitionIntervalCount()

int WsfEM_Xmtr::GetPulseRepetitionIntervalCount ( ) const
inline

Get the number of PRFs specified.

Returns
The number of PRFs specified

Referenced by ProcessInput().

◆ GetPulseRepetitionIntervals()

std::vector< double > WsfEM_Xmtr::GetPulseRepetitionIntervals ( ) const

Get the pulse repetition interval list

Returns
Pulse repetition interval list (1 / PRF).

◆ GetPulseWidth()

◆ GetScriptClassName()

const char * WsfEM_Xmtr::GetScriptClassName ( ) const
inlineoverride

◆ GetTransmissionEndTime()

double WsfEM_Xmtr::GetTransmissionEndTime ( ) const
inline

Get the simulation time when the current transmission is to be completed.

Returns
The simulation time when the current transmission is to be completed. The value will be less than the current simulation time if no transmission is active.

Referenced by WsfPassiveSensor::PassiveMode::AttemptToDetect().

◆ HasChangeListeners()

virtual bool WsfEM_Xmtr::HasChangeListeners ( ) const
inlinevirtual

Return true if any passive listeners have been attached.

◆ HasListeners()

virtual bool WsfEM_Xmtr::HasListeners ( ) const
inlinevirtual

Return true if any passive listeners have been attached.

Referenced by WsfDisEmission::UpdateSensor().

◆ Initialize()

bool WsfEM_Xmtr::Initialize ( WsfSimulation & aSimulation)
overridevirtual

◆ IsUsingPeakPower()

bool WsfEM_Xmtr::IsUsingPeakPower ( ) const
inline

Get if the transmitter reports and uses peak power instead of average power.

Returns
True if using peak power as indicated by the user, false by default.
Note
This method does not report true for using peak power if the duty cycle is set to 1.0, and the average power is effectively equivalent to peak power.

Referenced by WsfXIO_ObjectInfoLoad::Load_EM_Xmtr().

◆ NotifyChangeListeners()

void WsfEM_Xmtr::NotifyChangeListeners ( double aSimTime,
size_t aTargetIndex )
virtual

Notify listening receivers that this target's transmitters have changed parameters.

Parameters
aSimTimeThe current simulation time.
aTargetIndexThe target platform index representing the transmission

Referenced by wsf::comm::ComponentHW::SelectAlternateFrequency().

◆ NotifyListeners()

void WsfEM_Xmtr::NotifyListeners ( double aSimTime,
WsfEM_Interaction & aResult )
virtual

Notify listening receivers that this transmitter is now emitting.

Parameters
aSimTimeThe current simulation time.
aResultThe interaction object representing the transmission. aResult.GetTransmitter() returns the emitting transmitter.

Referenced by WsfOTH_RadarSensor::OTH_Mode::AttemptToDetect(), WsfPassiveSensor::PassiveMode::AttemptToDetect(), WsfRadarSensor::RadarMode::AttemptToDetect(), WsfEW_SensorComponent::AttemptToDetectFalseTarget(), WsfOTH_RadarSensor::PerformScheduledDetections(), WsfRadarSensor::PerformScheduledDetections(), WsfJTIDS_Terminal::ReceiveActions(), and wsf::comm::medium::Unguided::TransmitMessage().

◆ operator=()

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

References WsfEM_Xmtr().

◆ ProcessInput()

◆ ProcessInputBlock()

bool WsfEM_Xmtr::ProcessInputBlock ( UtInput & aInput)
virtual

A convenience method to check for and process a 'transmitter/end_transmitter' block.

References ProcessInput().

◆ RemoveChangeListener()

bool WsfEM_Xmtr::RemoveChangeListener ( WsfEM_Rcvr * aRcvrPtr)
virtual

Remove a receiver from the list of those to be notified when the transmitter changes parameters.

Parameters
aRcvrPtrThe receiver to be removed from the list.
Returns
true if the receiver was removed from the list or false if it was not in the list.

Referenced by WsfPassiveSensor::PassiveMode::RemoveInteractor().

◆ RemoveListener()

bool WsfEM_Xmtr::RemoveListener ( WsfEM_Rcvr * aRcvrPtr)
virtual

Remove a receiver from the list of those to be notified when the transmitter emits.

Parameters
aRcvrPtrThe receiver to be removed from the list.
Returns
true if the receiver was removed from the list or false if it was not in the list.

Referenced by WsfPassiveSensor::PassiveMode::RemoveInteractor().

◆ SelectAlternateFrequency()

void WsfEM_Xmtr::SelectAlternateFrequency ( unsigned int aId)

Selects the alternate frequency with aId.

Note
If the aId is not in the list then it is assumed that the list has been exhausted and it will return to the default (index 0) frequency value.
Parameters
aIdThe Id of the alternate frequency to set; [0, ... N-1], where N is the size of the list.

References SetFrequency().

Referenced by wsf::comm::ComponentHW::SelectAlternateFrequency().

◆ SetBandwidth()

void WsfEM_Xmtr::SetBandwidth ( double aBandwidth)
overridevirtual

Set the bandwidth.

Parameters
aBandwidthThe bandwidth (Hertz)

Reimplemented from WsfEM_XmtrRcvr.

References WsfEM_XmtrRcvr::mBandwidth.

Referenced by WsfRF_Jammer::StartJamming(), WsfRF_Jammer::UpdateJamming(), and WsfDisEmission::UpdateXmtr().

◆ SetDutyCycle()

void WsfEM_Xmtr::SetDutyCycle ( double aDutyCycle)

Set the duty-cycle

Parameters
aDutyCycleDuty cycle (absolute).

Referenced by WsfLASER_CommXmtrComponent::Initialize(), and ProcessInput().

◆ SetFrequency()

void WsfEM_Xmtr::SetFrequency ( double aFrequency)
overridevirtual

◆ SetLinkedReceiver()

void WsfEM_Xmtr::SetLinkedReceiver ( WsfEM_Rcvr * aRcvrPtr)

Define the receiver that is linked to this transmitter. A receiver is typically linked to a transmitter when they share the same antenna. When certain receiver attributes are defined they will also automatically be set in the linked receiver.

The attributes currently include:

  • Frequency
  • Antenna pattern
Parameters
aRcvrPtrThe receiver to be linked to this transmitter.

References WsfEM_XmtrRcvr::AssociateSystems().

◆ SetPolarization()

void WsfEM_Xmtr::SetPolarization ( WsfEM_Types::Polarization aPolarization)
overridevirtual

Set the polarization of the transmitted signal.

Parameters
aPolarizationThe polarization.

Reimplemented from WsfEM_XmtrRcvr.

References WsfEM_Types::cPOL_COUNT, WsfEM_Types::cPOL_DEFAULT, and WsfEM_XmtrRcvr::mPolarization.

◆ SetPower() [1/2]

void WsfEM_Xmtr::SetPower ( double aPower)

Set the power.

Parameters
aPowerThe power (Watts)

Referenced by WsfLASER_CommXmtrComponent::Initialize(), ProcessInput(), and WsfDisEmission::UpdateXmtr().

◆ SetPower() [2/2]

bool WsfEM_Xmtr::SetPower ( double aPower,
double aFrequency )

Set the power for the supplied frequency.

Parameters
aPowerThe power (Watts).
aFrequencyThe lower frequency bound of the power input value.
Returns
True if the insert was successful, False if the input frequency was previously defined.

◆ SetPulseCompressionRatio()

void WsfEM_Xmtr::SetPulseCompressionRatio ( double aPulseCompressionRatio)

Set the pulse compression ratio.

Parameters
aPulseCompressionRatioPulse compression ratio (absolute ratio, NOT dB)

Referenced by ProcessInput().

◆ SetPulseRepetitionFrequency()

void WsfEM_Xmtr::SetPulseRepetitionFrequency ( double aPulseRepetitionFrequency,
size_t aPRF_Num = 1 )

Set the pulse repetition frequency

Parameters
aPulseRepetitionFrequencyPulse Repetition Frequency (Hertz)
aPRF_NumThe PRF number to set. Must be in increasing order.

Referenced by WsfLASER_CommXmtrComponent::Modulation::Initialize(), ProcessInput(), and WsfDisEmission::UpdateXmtr().

◆ SetPulseRepetitionInterval()

void WsfEM_Xmtr::SetPulseRepetitionInterval ( double aPulseRepetitionInterval,
size_t aPRI_Num = 1 )

Set the pulse repetition interval (PRI = 1 / PRF)

Parameters
aPulseRepetitionIntervalPulse Repetition Interval (seconds)
aPRI_NumThe PRI number in the index to set. Must be in increasing order.

Referenced by WsfLASER_XmtrComponent::Initialize(), ProcessInput(), and WsfEM_Xmtr().

◆ SetPulseWidth()

void WsfEM_Xmtr::SetPulseWidth ( double aPulseWidth)

Set the pulse width

Parameters
aPulseWidthPulse width (seconds).

Referenced by WsfLASER_CommXmtrComponent::Modulation::Initialize(), ProcessInput(), and WsfDisEmission::UpdateXmtr().

◆ SetTransmissionEndTime()

void WsfEM_Xmtr::SetTransmissionEndTime ( double aTransmissionEndTime)
inline

Set the simulation time when the current transmission is to be completed.

Referenced by wsf::comm::medium::Unguided::TransmitMessage().

◆ UseDefaultFrequency() [1/2]

bool WsfEM_Xmtr::UseDefaultFrequency ( )
inline

◆ UseDefaultFrequency() [2/2]

void WsfEM_Xmtr::UseDefaultFrequency ( bool aUseDefaultFrequency)
inline

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