|
WSF
|
#include <WsfRF_Jammer.hpp>


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_Xmtr & | operator= (const WsfEM_Xmtr &)=delete |
| std::string | GetName () const |
| Required to display error messages in WsfComponentFactoryList. | |
| ComponentList & | GetComponents () |
| const ComponentList & | GetComponents () 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_Rcvr * | GetLinkedReceiver () const |
| int | GetAlternateFrequencyCount () const |
| const FrequencyList & | GetAlternateFrequencies () |
| 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 () |
| WsfPlatform * | GetPlatform () const |
| WsfArticulatedPart * | GetArticulatedPart () const |
| virtual void | UpdatePosition (double aSimTime) |
| const char * | GetScriptClassName () const override |
| WsfEM_Attenuation * | GetAttenuationModel () 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_Propagation * | GetPropagationModel () 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_Antenna * | GetAntenna () const |
| Get the pointer associated geometry object. | |
| void | SetAntenna (WsfEM_Antenna *aAntennaPtr) |
| WsfAntennaPattern * | GetAntennaPattern (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 AntennaPatternList * | GetAntennaPatternList (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) | |
| WsfMode * | GetMode () 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. | |
| WsfSimulation * | GetSimulation () const |
| WsfEM_Manager * | GetEM_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. | |
| WsfUniqueId & | operator= (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 | |
| WsfAuxDataEnabled & | operator= (const WsfAuxDataEnabled &aRhs) |
| WsfAuxDataEnabled (WsfAuxDataEnabled &&)=default | |
| WsfAuxDataEnabled & | operator= (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 | |
| WsfAttributeContainer & | GetAuxData () |
| const WsfAttributeContainer & | GetAuxData () const noexcept |
| const WsfAttributeContainer & | GetAuxDataConst () const noexcept |
Friends | |
| class | WsfRF_Jammer::JammerBeam |
| class | WsfRF_Jammer::JammerMode |
Frequency band methods. | |
| WsfCategoryList | mIgnoredCategories |
| Categories which this jammer should ignore. | |
| std::vector< WsfStringId > | mIgnoredSides |
| 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.
| |||
| 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_Attenuation * | mAttenuationPtr |
| Pointer to the atmospheric attenuation model. | |
| WsfEM_Propagation * | mPropagationPtr |
| Pointer to the propagation object. | |
| WsfMode * | mModePtr |
| WsfEM_Antenna * | mAntennaPtr |
| Pointer to the 'geometry' object for this transmitter/receiver. | |
| std::array< AntennaPatternList, WsfEM_Types::cPOL_COUNT > | mPatternTables {} |
| WsfEM_XmtrRcvr * | mAssociatePtr |
| double | mBeamTilt |
| double | mEarthRadiusMultiplier |
| double | mFrequency |
| double | mBandwidth |
| double | mInternalLoss |
| WsfEM_Types::Polarization | mPolarization |
| size_t | mIndex |
| std::array< bool, WsfEM_Types::cPOL_COUNT > | mUsedExplicitPolarization {{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 | |
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.
| 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.
| WsfRF_Jammer::JammerXmtr::JammerXmtr | ( | const JammerXmtr & | aSrc, |
| WsfEM_Antenna * | aAntennaPtr ) |
JammerXmtr Copy Constructor.
References JammerXmtr(), mFrequencyBand, mIgnoredCategories, mIgnoredDomains, mIgnoredSides, mIgnoreSameSide, and WsfEM_Xmtr::WsfEM_Xmtr().
|
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.
| void WsfRF_Jammer::JammerXmtr::GetFrequencyBand | ( | double | aFrequencyBand[2] | ) | const |
Get the frequency band, i.e. frequency limits.
| [out] | aFrequencyBand | A tuple containing the lower and upper limits of the frequency band for the transmitter. |
References mFrequencyBand.
Referenced by WsfRF_Jammer::JammerMode.
|
overridevirtual |
Reimplemented from WsfEM_XmtrRcvr.
References WsfEM_XmtrRcvr::GetPlatform(), WsfPlatformPart::GetPlatform(), WsfEM_Xmtr::Initialize(), mIgnoredSides, and mIgnoreSameSide.
Referenced by WsfRF_Jammer::JammerBeam::Initialize(), WsfRF_Jammer::StartJamming(), and WsfRF_Jammer::UpdateJamming().
|
overridevirtual |
Reimplemented from WsfEM_XmtrRcvr.
References mFrequencyBand, mIgnoredCategories, mIgnoredDomains, mIgnoredSides, mIgnoreSameSide, WsfEM_Xmtr::ProcessInput(), WsfEM_Xmtr::SetFrequency(), and WsfTypes::StringToEnum().
|
friend |
|
friend |
References AllowInteractionWith(), GetFrequencyBand(), and JammerXmtr().
|
protected |
Alternate input for defining the frequency and bandwidth of the jammer transmitter.
Referenced by GetFrequencyBand(), JammerXmtr(), JammerXmtr(), and ProcessInput().
|
protected |
Categories which this jammer should ignore.
Referenced by AllowInteractionWith(), JammerXmtr(), JammerXmtr(), and ProcessInput().
|
protected |
A bit mask of ignored domains.
Referenced by AllowInteractionWith(), JammerXmtr(), JammerXmtr(), and ProcessInput().
|
protected |
The sides (teams) which this jammer should ignore.
Referenced by AllowInteractionWith(), Initialize(), JammerXmtr(), JammerXmtr(), and ProcessInput().
|
protected |
'true' if the jammer should not jam platforms on the same side.
Referenced by Initialize(), JammerXmtr(), JammerXmtr(), and ProcessInput().