WSF
WsfRF_Jammer Class Reference

#include <WsfRF_Jammer.hpp>

Inheritance diagram for WsfRF_Jammer:
Collaboration diagram for WsfRF_Jammer:

Classes

class  TargetingData
class  JammerXmtr
class  JammerBeam
 This class is for the spatial jamming beams that are part of each mode. More...
class  JammerMode

Public Types

enum  PowerDistribution { cAVERAGE_POWER , cCONSTANT_POWER }
 GroupPowerDistribution defines the intended power distribution of the transmitters in this group. More...
using TargetingDataMap = std::map<int, TargetingData>
Public Types inherited from WsfWeapon
enum  WeaponState {
  cWEAPON_STATE_UNALLOCATED , cWEAPON_STATE_ALLOCATED , cWEAPON_STATE_DEALLOCATE , cWEAPON_STATE_NACK ,
  cWEAPON_STATE_READY
}
using ComponentList = WsfComponentListT<WsfWeaponComponent>
Public Types inherited from WsfArticulatedPart
enum  SlewMode { cSLEW_FIXED = 0 , cSLEW_AZ = 1 , cSLEW_EL = 2 , cSLEW_AZ_EL = 3 }
enum  SlewDirection { cUNDEFINED = 0 , cPOSITIVE = 1 , cNEGATIVE = 2 }
enum  {
  cNOT_CUED = 0x0000 , cMIN_AZ = 0x0001 , cMAX_AZ = 0x0002 , cMIN_EL = 0x0004 ,
  cMAX_EL = 0x0008 , cAT_LIMIT_AZ_MASK = 0x0003 , cAT_LIMIT_EL_MASK = 0x000B , cAT_LIMIT_MASK = 0x000F ,
  cCUED_AZ = 0x0010 , cCUED_EL = 0x0020 , cCUED_AZ_EL = 0x0030 , cCUED_MASK = 0x0030
}
enum  CueType { cCUED_TO_NOTHING , cCUED_TO_LOCATION , cCUED_TO_ANGLE }
Public Types inherited from WsfPlatformPart
enum  { cLEVEL_ONE_DEBUG = 0x00000001 , cLEVEL_TWO_DEBUG = 0x00000002 }
using InternalMessageQueue = std::queue<WsfMessage*>
using RecipientMessageQueue = std::queue<std::pair<WsfPlatformPart*, WsfMessage*>>
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
Public Types inherited from WsfComponentT< WsfPlatform >
typedef WsfPlatform ParentType
 This is needed to support the WsfComponentList template.

Public Member Functions

 WsfRF_Jammer (const WsfScenario &aScenario)
 WsfRF_Jammer (const WsfRF_Jammer &aSrc)
WsfRF_Jammeroperator= (const WsfRF_Jammer &)=delete
 ~WsfRF_Jammer () override=default
ComponentListGetComponents ()
const ComponentListGetComponents () const
virtual bool AllocateTheWeapon (double aSimTime, WsfTrack *aTrackPtr, int aStoreId)
 Begin the weapon server allocation sequence.
void SetState (WeaponState aState)
WeaponState GetState () const
 Return weapon state.
 WsfWeapon (const WsfScenario &aScenario)
 ~WsfWeapon () override
WsfComponentCloneComponent () const override
const int * GetComponentRoles () const override
void * QueryInterface (int aRole) override
int GetComponentInitializationOrder () const override
const char * GetScriptClassName () const override
bool PreInitialize (double aSimTime) override
bool Initialize (double aSimTime) override
bool Initialize2 (double aSimTime) override
void PreInput () override
bool ProcessInput (UtInput &aInput) override
void Update (double aSimTime) override
 Update the state of the weapon to the supplied time value.
void TurnOff (double aSimTime) override
void TurnOn (double aSimTime) override
void SetNonOperational (double aSimTime) override
void SetOperational (double aSimTime) override
void PartBroken (double aSimTime) override
void Restore (double aSimTime) override
double GetUpdateInterval () const override
 Get the update interval.
virtual size_t GetEM_RcvrCount () const
virtual WsfEM_RcvrGetEM_Rcvr (size_t aIndex)
virtual WsfStringId GetCurrentModeName () const
 Return the string ID of the string associated with the name of the current mode.
virtual WsfWeaponModeGetCurrentMode ()
virtual size_t GetModeCount ()
 Get the number of modes associated with the weapon.
virtual WsfWeaponModeGetModeEntry (size_t aModeIndex)
virtual size_t GetModeIndex (WsfStringId aModeNameId)
virtual WsfStringId GetModeName (size_t aModeIndex)
virtual void DeselectMode (double aSimTime, WsfStringId aModeNameId)
virtual void SelectMode (double aSimTime, WsfStringId aModeNameId)
WsfLaunchComputerGetLaunchComputer () const
void SetLaunchComputer (WsfLaunchComputer *aLaunchComputerPtr)
WsfStringId GetWeaponEffectsType () const
 Get the string ID of the weapon effects to be used.
void SetWeaponEffectsType (WsfStringId aWeaponEffect)
 Set the string ID of the weapon effects to be used.
virtual void CueToTarget (double aSimTime, const WsfTrack *aTrackPtr)
virtual FireResult Fire (double aSimTime, const FireTarget &aTarget, const FireOptions &aSettings)
virtual bool FireSalvo (double aSimTime, const FireTarget &aTarget, const SalvoOptions &aSettings)
virtual void ContinueSalvo (double aSimTime, unsigned int aRequestId)
virtual void AbortSalvo (double aSimTime, const WsfTrackId &aTrackId)
virtual void CeaseFire (double aSimTime)
double GetTimeLastFired () const
 Get the simulation time when the weapon was last fired.
virtual double GetFiringDelay ()
void SetFiringDelay (const WsfRandomVariable &aFiringDelay)
virtual double GetSalvoInterval ()
double GetFiringInterval () const
void SetFiringInterval (double aFiringInterval)
WsfStringId GetLaunchedPlatformType () const
 Get the type of the platform that will be launched.
void SetLaunchedPlatformType (WsfStringId aLaunchedPlatformType)
 Set the type of the platform that will be launched.
double GetInitialStateQuantityRemaining () const
virtual double GetQuantityCommitted () const
 Return the quantity that is currently committed.
virtual double GetMaximumQuantity () const
 Return the maximum quantity that may be 'loaded'.
virtual double GetTotalQuantityUsed () const
 Return the cumulative running total of the quantity used (fired).
virtual void SetQuantityRemaining (double aQuantity)
void ChangeQuantity (double aDeltaQuantity)
bool IsReloading () const
bool InhibitWhileReloading () const
 Flag indicating that when a weapon reload is in progress, any firing will be inhibited.
virtual void CompleteReloading (double aSimTime, double aQuantity)
double GetReloadInventory () const
double GetReloadThreshold () const
 Returns the depleted value of inventory at which a reload is attempted.
double GetReloadIncrement () const
WsfTrackCreateTargetTrack (double aSimTime, const WsfTrack *aTrackPtr)
bool GetTargetLocationWCS (double aSimTime, const WsfTrack *aTrackPtr, double aTargetLocWCS[3])
void SetUpdateInterval (double aUpdateInterval) override
double TimeWeaponLastFiredFor (const WsfTrackId &aTrackId) const
 Return the simulation time of the most recent weapon firing against the specified track.
double TimeWeaponLastTerminatedFor (const WsfTrackId &aTrackId) const
 Return the simulation time of the most recent weapon termination against the specified track.
int WeaponsPendingFor (const WsfTrackId &aTrackId) const
int WeaponsActiveFor (const WsfTrackId &aTrackId) const
int RoundsCompleteFor (const WsfTrackId &aTrackId) const
 Returns number of weapons that were fired at the track and are now terminated.
int WeaponsActiveAndPendingFor (const WsfTrackId &aTrackId) const
int RoundsFiredAt (const WsfTrackId &aTrackId) const
int SalvosFiredAt (const WsfTrackId &aTrackId) const
std::vector< size_t > ActiveWeaponPlatformsFor (const WsfTrackId &aTrackId) const
virtual void EngagementComplete (double aSimTime, WsfWeaponEngagement *aEngagementPtr)
void SetIFCEnabled (bool aEnabled)
 Set to true is IFC is supported.
bool GetIFCEnabled () const
 Returns 'true' if the platform supports IFC (Integrated Fire Control).
Public Member Functions inherited from WsfArticulatedPart
 WsfArticulatedPart (const WsfScenario &aScenario, int aPartType)
 WsfArticulatedPart (const WsfArticulatedPart &aSrc)
 ~WsfArticulatedPart () override
void SetPositionRateECS (const double aDX, const double aDY, const double aDZ)
void GetCurrentPositionRateECS (double &aDX, double &aDY, double &aDZ) const
double GetDX () const
double GetDY () const
double GetDZ () const
void EnableArticulationUpdates (double aSimTime, double aInterval)
void DisableArticulationUpdates (double aSimTime)
void SetArticulationUpdateInterval (double aUpdateInterval)
double GetArticulationUpdateInterval () const
unsigned int GetArticulationUpdateEventEpoch () const
void IncrementArticulationUpdateEventEpoch ()
bool ArticulationUpdateEventActive () const
 Is an 'Update' event active?
void SetArticulationUpdateEventActive (bool aUpdateEventActive)
 Indicate if the 'Update' event is active.
virtual double TimeToCue (double aDesiredAz, double aDesiredEl) const
const char * GetScriptClassName () const override
void SetPlatform (WsfPlatform *aPlatformPtr) override
virtual void UpdatePosition (double aSimTime)
void OnPlatformUpdated (double, WsfPlatform *) override
SlewMode GetSlewMode () const
 Get the allowed slewing mode.
double GetAzSlewRate () const
 Get the current azimuth slew rate.
double GetElSlewRate () const
 Get the current elevation slew rate.
double GetMaxAzSlewRate () const
 Get the maximum allowable azimuth slew rate.
double GetMaxElSlewRate () const
 Get the maximum allowable elevation slew rate.
double GetMinAzSlew () const
 Gets the minimum azimuth slew limit.
double GetMaxAzSlew () const
 Gets the maximum azimuth slew limit.
double GetMinElSlew () const
 Gets the minimum elevation slew limit.
double GetMaxElSlew () const
 Gets the maximum elevation slew limit.
int GetSlewState () const
 Get the slew limit state.
void SetSlewMode (SlewMode aSlewMode)
 Set the allowed slewing mode.
void SetSlewRates (double aAzSlewRate, double aElSlewRate)
 Set the angular slew rates, limited by the maximum slew rates.
void SetAzSlewLimits (double aMinAzSlew, double aMaxAzSlew)
 Set the azimuth slew limits.
void SetElSlewLimits (double aMinElSlew, double aMaxElSlew)
 Set the elevation slew limits.
void SetAzimuthSlewDirection (SlewDirection aAzSlewDirection)
 Set the azimuth slew direction.
bool IsSlewing () const
bool WithinSlewLimits (double aThisToTgtAz, double aThisToTgtEl) const
SlewMode GetCueMode () const
 Get the allowed cueing mode.
double GetAzCueRate () const
 Get the azimuth cue rate.
double GetElCueRate () const
 Get the elevation cue rate.
double GetMinAzCue () const
 Gets the minimum azimuth cue limit.
double GetMaxAzCue () const
 Gets the maximum azimuth cue limit.
double GetMinElCue () const
 Gets the minimum elevation cue limit.
double GetMaxElCue () const
 Gets the maximum elevation cue limit.
void SetCueMode (SlewMode aCueMode)
 Set the allowed cueing mode.
void SetCueRates (double aAzCueRate, double aElCueRate)
 Set the angular cueing rates.
void SetAzCueLimits (double aMinAzCue, double aMaxAzCue)
 Set the azimuth cueing limits.
void SetElCueLimits (double aMinElCue, double aMaxElCue)
 Set the elevation cueing limits.
double GetRoll () const
void SetRoll (double aRoll)
 Set the platform-relative (ECS) roll angle of the articulated part.
double GetPitch () const
void SetPitch (double aPitch)
double GetYaw () const
void SetYaw (double aYaw)
 Set the platform-relative (ECS) yaw angle of the articulated part.
double GetTilt () const
void SetTilt (double aTilt)
void GetCurrentOrientationECS (double &aYaw, double &aPitch, double &aRoll)
void GetLOS_UnitVectorWCS (double aUnitLOS_WCS[3])
 Get the current WCS Frame Line-Of-Sight unit vector.
CueType GetCueType () const
bool IsCued () const
 Get the cued status.
void ClearCueing ()
bool GetActualCuedOrientation (double &aAzimuth, double &aElevation) const
void GetCurrentCuedOrientation (double &aAzimuth, double &aElevation) const
bool GetCuedLocationWCS (double aCuedLocationWCS[3]) const
void SetCuedLocationWCS (const double aCuedLocationWCS[3])
bool GetCuedOrientation (double &aAzimuth, double &aElevation) const
void SetCuedOrientation (double aAzimuth, double aElevation)
void GetAbsoluteCuedOrientation (double &aAzimuth, double &aElevation, double aBaseNED[3])
void ClearTransientCue ()
bool TransientCueActive () const
bool GetTransientCuedLocationWCS (double aCuedLocationWCS[3]) const
void SetTransientCuedLocationWCS (const double aCuedLocationWCS[3])
WsfStringId GetMaskingPatternState () const
void SetMaskingPatternState (WsfStringId aMaskingPatternStateId)
double GetMaskingPatternFactor (double aViewAzPCS, double aViewElPCS, const double aViewVecWCS[3])
void SetIsPrivate (bool aIsPrivate)
bool IsPrivate () const
Public Member Functions inherited from WsfPlatformPart
 WsfPlatformPart (const WsfScenario &aScenario, int aPartType)
WsfPlatformPartoperator= (const WsfPlatformPart &aRhs)=delete
 ~WsfPlatformPart () override
bool DebugEnabled () const
 Returns 'true' if debugging is enabled for this instance.
void SetDebugEnabled (bool aDebugEnabled)
unsigned int GetDebugMask ()
bool IsExternallyControlled () const
virtual void SetExternallyControlled (double aSimTime, bool aIsExternallyControlled)
int GetPartType () const
const char * GetScriptClassName () const override
WsfSimulationGetSimulation () const
const WsfScenarioGetScenario () const
WsfStringId GetComponentName () const override
void ComponentParentChanged (WsfPlatform *aPlatformPtr) override
WsfPlatformGetPlatform () const
virtual void PlatformAdded (double aSimTime, WsfPlatform *aPlatformPtr)
virtual void PlatformDeleted (WsfPlatform *aPlatformPtr)
double GetLastStatusChangeTime () const
void SetLastStatusChangeTime (double aSimTime)
 Allows a system to set the time at which the device was initialized.
bool CanBeMadeOperational () const
 Returns an indication that this system can be made operational.
bool CanBeMadeNonOperational () const
 Returns an indication that this system can be made non-operational.
bool CanBeTurnedOn () const
 Returns an indication that this system can be turned on.
bool CanBeTurnedOff () const
 Returns an indication that this system can be turned off.
bool IsTurnedOn () const
bool InitiallyTurnedOn () const
 Is the system to be turned 'on' when added to the simulation?
void SetInitiallyTurnedOn (bool aInitiallyTurnedOn)
 Sets if the system is turned on when added to the simulation.
bool IsOperational () const
bool SetOperational (double aSimTime, bool aMakeOperational)
double GetDamageFactor () const
bool SetDamageFactor (double aSimTime, double aDamageFactor)
bool IsCritical () const
void SetCritical (bool aValue)
virtual void OnPlatformBrokenEvent (double aSimTime)
 Owning platform has issued a broken event.
bool IsBroken () const
WsfInternalLinksGetInternalLinks ()
 Return the internal links for this part.
virtual bool HasInternalLinks () const
 Does this platform part have a communication link to other platform parts?
virtual bool ReceiveMessage (double aSimTime, const WsfMessage &aMessage)
virtual void SendMessage (double aSimTime, const WsfMessage &aMessage)
virtual void SendMessageTo (double aSimTime, const WsfMessage &aMessage, WsfStringId aRecipientId)
void SendMessageToProcessor (double aSimTime, const WsfMessage &aMessage, WsfStringId aRecipientId)
virtual void SendQueuedMessages (double aSimTime)
const WsfCategoryListGetCategories () const
 Get the categories to which this part belongs.
void AddCategory (WsfStringId aCategoryId)
 Adds the provided category to the platform part's category list.
bool IsCategoryMember (WsfStringId aCategoryId) const
const WsfGroupListGetGroups () const
 Get the groups to which this platform part belongs.
void JoinGroup (WsfGroup *aGroupPtr)
 Join the given group.
void LeaveGroup (WsfGroup *aGroupPtr)
 Leave the given group.
bool IsGroupMember (WsfStringId aGroupId)
unsigned int GetUpdateEventEpoch () const
void IncrementUpdateEventEpoch ()
bool UpdateEventActive () const
 Is an 'Update' event active?
void SetUpdateEventActive (bool aUpdateEventActive)
 Indicate if the 'Update' event is active.
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)
Public Member Functions inherited from WsfComponentT< WsfPlatform >
 WsfComponentT ()
 WsfComponentT (const WsfComponentT &) noexcept
WsfComponentToperator= (const WsfComponentT &) noexcept
 ~WsfComponentT () override=default
ParentTypeGetComponentParent () const
void SetComponentParent (ParentType *aParentPtr)
Public Member Functions inherited from WsfComponent
virtual ~WsfComponent ()=default
template<typename T>
bool QueryInterfaceT (T *&aRolePtr)
bool ComponentHasRole (int aRole)
 Returns true if the component has the specified role.
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
Public Member Functions inherited from WsfSinglePlatformObserver
virtual ~WsfSinglePlatformObserver ()
virtual void OnPlatformDeleting (double aSimTime, WsfPlatform *aPlatformPtr)
 Called before the platform is actually deleted.
virtual void OnPlatformDeleted (double aSimTime, WsfPlatform *aPlatformPtr)
 Called just before the platform is removed from the simulation.

Field of view methods.

Determines if the platform is within the weapons field of view.

using SpotIndexVec = std::vector<unsigned int>
using BeamSpotIndexMap = std::map<unsigned int, SpotIndexVec>
bool WithinFieldOfView (double aSimTime, WsfPlatform *aPlatformPtr) override
bool WithinFieldOfView (double aSimTime, WsfTrack *aTrackPtr) override
const TargetingDataMapGetTargetDataMap () const

Common infrastructure methods.

WsfWeaponClone () const override
bool Initialize (double aSimTime) override
bool ProcessInput (UtInput &aInput) override

Component infrastructure methods

const int * GetComponentRoles () const override
void * QueryInterface (int aRole) override
 Returns array of constants role type.

Status methods.

See also
WsfWeapon::QueryInterface
void TurnOff (double aSimTime) override
void TurnOn (double aSimTime) override

Transmitter access methods.

size_t GetEM_XmtrCount () const override
 These methods support accessing the underlying transmitter components.
WsfEM_XmtrGetEM_Xmtr (size_t aIndex) override
size_t GetEM_XmtrCount (size_t aModeIndex) const override
WsfEM_XmtrGetEM_Xmtr (size_t aModeIndex, size_t aIndex) override
WsfEM_XmtrGetEM_Xmtr (size_t aModeIndex, size_t aBeamIndex, size_t aSpotIndex) override
WsfEM_XmtrGetMasterXmtr ()
WsfEM_XmtrGetJammerXmtr (double aSimTime, double aFrequency, double aBandwidth, size_t aBeamNumber, WsfTrackId aTrackId)

Min/Max frequency access methods.

These methods support accessing the underlying master transmitter to get the current frequency limits, assumes current mode.

double GetMinimumFrequency () const
double GetMaximumFrequency () const

Spot jammer start/stop methods.

These methods support spot jamming but can also be used for barrage jamming.

bool StartJamming (double aSimTime, double aFrequency, double aBandwidth, size_t aBeamNumber, WsfStringId aTechniqueId, WsfTrackId aTrackId, size_t aTargetIndex) override
bool StartJammingTrack (double aSimTime, WsfStringId aTechniqueId, const WsfTrack *aTrackPtr) override
bool StopJamming (double aSimTime, double aFrequency, double aBandwidth, size_t aBeamNumber, WsfTrackId aTrackId) override
bool UpdateJamming (double aSimTime, size_t aXmtrIndex, double aFrequency, double aBandwidth, WsfStringId aTechniqueId, WsfTrackId aTrackId, size_t aTargetIndex) override

Message processing methods.

These methods support messaging to and from the jammer as required.

bool ProcessMessage (double aSimTime, const WsfMessage &aMessage) override

Jammer targeting data methods.

void SetTargetIndex (int aId, size_t aTargetIndex) override
 Assign target to TargetDataMap.
size_t GetTargetIndex (int aId) const override
 Return Target Id's index.
void SetTargetTrackId (int aId, const WsfTrackId &aTargetTrackId)
 Insert Target track into TargetDataMap, if it doesn't already exist.
WsfTrackId GetTargetTrackId (int aId) const
 Return trackId at aId location if it exists, otherwise return a nullptr.
void SetTargetedLocationWCS (int aId, const double aTargetedLocationWCS[3]) override
void GetTargetedLocationWCS (int aId, double aTargetedLocationWCS[3]) const override
bool TargetedLocationValid (int aId) const override
 Preform a check of whether aId is in TargetMapData.

EA Techniques methods.

bool SelectEA_Technique (double aSimTime, double aFrequency, double aBandwidth, size_t aBeamNumber, WsfStringId aTechniqueId, WsfTrackId aTrackId) override
bool DeselectEA_Technique (double aSimTime, double aFrequency, double aBandwidth, size_t aBeamNumber, WsfStringId aTechniqueId, WsfTrackId aTrackId) override
bool SetEA_DeltaGainTechnique (double aSimTime, WsfStringId aTechniqueId, bool aOnOff, WsfStringId aEffectId, double aJammingDeltaGain_dB, WsfStringId aSystemTypeId, WsfStringId aFunctionTypeId) override
bool SetEA_DeltaGainTechnique (double aSimTime, WsfStringId aTechniqueId, bool aOnOff, WsfStringId aEffectId, double aJammingDeltaGain_dB, WsfStringId aSystemTypeId, WsfStringId aSystemFunctionId, double aFrequency, double aBandwidth, size_t aBeamNumber, WsfTrackId aTrackId) override

Inventory methods.

The definition of quantity depends on the type of weapon. For some weapons it might be 'rounds', for others it might be 'jamming spots/beams, etc'. In this case, the quantity returned refers to the number of spots for the current jammer mode.

unsigned int GetActiveRequestCount () const override
 Return the number of 'FireSalvo' calls that are in process.
unsigned int GetMaximumRequestCount () const override
double GetQuantityRemaining () const override
size_t GetActiveBeamCount () const override
size_t GetMaximumBeamCount () const override
size_t GetActiveSpotCount (size_t aBeamNumber) const override
size_t GetMaximumSpotCount (size_t aBeamNumber) const override

Jammer effect methods.

static double ComputeJammerPower (double aSimTime, WsfEM_Xmtr *aJammerXmtrPtr, const WsfEM_Interaction &aTargetInteraction, WsfEM_Interaction &aJammerInteraction, WsfEW_Effect *aProcessingEW_EffectPtr=nullptr)
static double ComputeJammerPower (double aSimTime, WsfEM_Xmtr *aJammerXmtrPtr, const WsfEM_Interaction &aTargetInteraction, WsfEW_Effect *aProcessingEW_EffectPtr=nullptr)
static void ComputeJammerPowers (double aSimTime, WsfEM_Xmtr *aJammerXmtrPtr, const WsfEM_Interaction &aTargetInteraction, WsfEM_Interaction &aJammerInteraction, double aJammerPowers[], WsfEW_Effect *aProcessingEW_EffectPtr=nullptr)
static void ComputeJammerPowers (double aSimTime, WsfEM_Xmtr *aJammerXmtrPtr, const WsfEM_Interaction &aTargetInteraction, double aJammerPowers[], WsfEW_Effect *aProcessingEW_EffectPtr=nullptr)
static void ComputeSingleJammerEffect (double aSimTime, WsfEM_Xmtr *aJammerXmtrPtr, WsfEM_Interaction &aTargetInteraction, WsfEM_Interaction &aJammerInteraction, bool aApplyEW_Effects)
static void ComputeTotalJammerEffects (double aSimTime, WsfEM_Interaction &aTargetInteraction, bool aApplyEW_Effects)
static double ComputeReceiverGains (WsfEM_Rcvr *aRcvrPtr)
 Compute Jammer Receiver Gains from incident Radar Beam.

Additional Inherited Members

static double TimeWeaponLastFiredFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId())
static double TimeWeaponLastTerminatedFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId())
static int WeaponsPendingFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId())
static int WeaponsActiveFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId())
 Returns number of weapons that have been fired at the track and are still alive.
static int RoundsCompleteFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId())
 Returns number of weapons that were fired at the track and are now terminated.
static int WeaponsActiveAndPendingFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId())
 Equivalent to WeaponsActiveFor() plus WeaponsPendingFor().
static int RoundsFiredAt (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId())
 Equivalent to WeaponsActiveFor() plus RoundsCompleteFor().
static int SalvosFiredAt (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId())
 Returns number of salvo fire requests requested, and not the actual number of salvos fired.
static std::vector< size_t > ActiveWeaponPlatformsFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId())
static void DetermineFirepowerStatus (WsfPlatform &aPlatform)
 Decide whether to set or clear the Firepower appearance bit.
UtCallbackListN< void(double)> SlewComplete
Static Public Attributes inherited from WsfWeapon
static const double cUNDEFINED_DOUBLE = 1.0E+30
Static Public Attributes inherited from WsfArticulatedPart
static constexpr double cINFINITE_SLEW_RATE = 1.0E+12 * UtMath::cRAD_PER_DEG
static constexpr double cALMOST_FULL_CIRCLE = 359.999 * UtMath::cRAD_PER_DEG
Static Public Attributes inherited from WsfAuxDataEnabled
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataAccessed
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataDestroyed
using WeaponStatusMap = std::map<WsfTrackId, WeaponStatus>
using WeaponStatusMapIter = WeaponStatusMap::iterator
using WeaponStatusMapConstIter = WeaponStatusMap::const_iterator
using WeaponStatusVal = std::pair<WsfTrackId, WeaponStatus>
 WsfWeapon (const WsfWeapon &aSrc)
 Copy constructor (for Clone()).
WsfWeaponoperator= (const WsfWeapon &)=delete
bool IsQuantitySpecified () const
virtual void ProcessReloading (double aSimTime)
void SetIsReloading (bool aValue)
 Method used for derived classes to set or clear the IsReloading Flag.
void SetModeList (WsfModeList *aModeListPtr)
void SetTimeLastFired (double aTimeLastFired)
void SetMaximumRequestCount (unsigned int aMaximumRequestCount)
double GetReloadInterval () const
virtual void WeaponFireAborted (double aSimTime, const WsfTrack *aTargetTrackPtr, double aQuantity)
bool FullCircle () const
virtual double GetAzimuthRotationRate () const
virtual double GetElevationRotationRate () const
void SlewToOrientation (double aSimTime, double aDesiredAz, double aDesiredEl)
virtual void TimeToRotate (double &aDeltaAz, double &aDeltaEl, double &aAzRate, double &aElRate, double &aTimeToAz, double &aTimeToEl) const
void UpdateCuedOrientation (double aSimTime)
bool UpdateOrientation (double aSimTime)
 WsfPlatformPart (const WsfPlatformPart &aSrc)
 Copy constructor (for Clone()).
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).
Protected Member Functions inherited from WsfUniqueId
void AssignUniqueId (WsfSimulation *aSimulationPtr)
WsfModeListmModeListPtr
 The pointer to the list of modes (for things like jammers).
WeaponStatusMap mWeaponStatusMap
WsfMaskingPatternmMaskingPatternPtr
 The masking factor.
WsfStringId mMaskingPatternName
WsfStringId mMaskingPatternStateId
double mYaw
 The orientation of the device coordinate system.
double mPitch
double mRoll
double mDX
 The velocity of the part.
double mDY
double mDZ
double mTilt
 The tilt angle above below the scan plane.
double mAzSlewRate
 The slewing rates and limits of the device with respect to the device coordinate system.
double mElSlewRate
double mMaxAzSlewRate
double mMaxElSlewRate
double mMinAzSlew
double mMaxAzSlew
double mMinElSlew
double mMaxElSlew
SlewMode mSlewMode
SlewDirection mAzSlewDirection
int mSlewState
double mAzCueRate
 The cueing rates and limits of the device with respect to the device coordinate system.
double mElCueRate
double mMinAzCue
double mMaxAzCue
double mMinElCue
double mMaxElCue
SlewMode mCueMode
 The directions (az and/or el) in which cueing can be performed.
CueType mCueType
bool mTransientCueActive
 'true' if the transient cue is defined
double mCuedLocationWCS [3]
 The cued location if mCueType is cCUED_TO_LOCATION.
double mCuedAz
 The cued azimuth if mCueType == cCUED_TO_ANGLE.
double mCuedEl
 The cued elevation if mCueType == cCUED_TO_ANGLE.
double mTransientCuedLocationWCS [3]
 The transient cue, if mTransientCueActive is true.
double mActualCuedAz
 The actual cued location, subject to the slewing limits.
double mActualCuedEl
double mCurrentAz
double mCurrentEl
double mLastAzElUpdateTime
 The time when the current az/el were last updated.
double mLastUpdateTime
 The time when the x/y/z position was last updated.
bool mSlewMethodCoordinated
 'true' if slcue rates are dynamically adjusted so the target angles are reached simultaneously.
bool mIsSlewing
 'true' if the part is slewing to satisfy a cueing request.
bool mIsPrivate
 'true' if the part is considered 'private' and not to visible to external simulations.

Member Typedef Documentation

◆ BeamSpotIndexMap

using WsfRF_Jammer::BeamSpotIndexMap = std::map<unsigned int, SpotIndexVec>

◆ SpotIndexVec

using WsfRF_Jammer::SpotIndexVec = std::vector<unsigned int>

◆ TargetingDataMap

Member Enumeration Documentation

◆ PowerDistribution

GroupPowerDistribution defines the intended power distribution of the transmitters in this group.

Enumerator
cAVERAGE_POWER 

Average.

cCONSTANT_POWER 

Constant.

Constructor & Destructor Documentation

◆ WsfRF_Jammer() [1/2]

WsfRF_Jammer::WsfRF_Jammer ( const WsfScenario & aScenario)

◆ WsfRF_Jammer() [2/2]

WsfRF_Jammer::WsfRF_Jammer ( const WsfRF_Jammer & aSrc)

◆ ~WsfRF_Jammer()

Member Function Documentation

◆ Clone()

WsfWeapon * WsfRF_Jammer::Clone ( ) const
overridevirtual

Clone this object.

Returns
a pointer to the new object.

Implements WsfWeapon.

References WsfRF_Jammer(), and WsfWeapon::WsfWeapon().

◆ ComputeJammerPower() [1/2]

double WsfRF_Jammer::ComputeJammerPower ( double aSimTime,
WsfEM_Xmtr * aJammerXmtrPtr,
const WsfEM_Interaction & aTargetInteraction,
WsfEM_Interaction & aJammerInteraction,
WsfEW_Effect * aProcessingEW_EffectPtr = nullptr )
static

Compute the raw jammer power from the specified transmitter on the target interaction.

Parameters
aSimTimeThe current simulation time.
aJammerXmtrPtrPointer to the jammer transmitter.
aTargetInteractionThe interaction object representing the interaction to be jammed (radio, radar, ESM, etc.). This is used only to get the pointer to the receiver and it's current pointing information.
aJammerInteraction[updated] The interaction between the receiver and jammer. On input the receiver and transmitter pointers are used. On output, the mNoiseJammerPower, mPulseJammerPower, mCoherentJammerPower, mEW_Effects and mEW_Error fields will be updated for this single interaction.
aProcessingEW_EffectPtr[optional] The currently processing or called from EW effect's pointer.
Returns
The jammer power of the interaction, returns the noise power if it is greater than 0, otherwise returns the coherent power even if it is 0.

References WsfEW_Result::FindOrCreate(), WsfEW_Result::mCoherentJammerPower, WsfEW_Effects::mEW_CoherentJammingEffect, WsfEW_Result::mEW_Effects, WsfEW_Effects::mEW_NoiseJammingEffect, WsfEW_Effects::mEW_PulseJammingEffect, WsfEW_Effects::EW_JammingEffect::mJammingPowerGain, WsfEW_Result::mNoiseJammerPower, WsfEW_Result::mPulseJammerPower, and WsfEW_Effects::EW_JammingEffect::mRepeaterFactor.

Referenced by WsfEW_CoverPulseEffect::UpdateEffects(), WsfEW_RPJ_Effect::UpdateEffects(), WsfEW_SimpleFT_Effect::UpdateEffects(), WsfEW_SLB_Effect::UpdateEffects(), WsfEW_SLC_Effect::UpdateEffects(), WsfEW_TrackEffect::UpdateEffects(), and ~WsfRF_Jammer().

◆ ComputeJammerPower() [2/2]

double WsfRF_Jammer::ComputeJammerPower ( double aSimTime,
WsfEM_Xmtr * aJammerXmtrPtr,
const WsfEM_Interaction & aTargetInteraction,
WsfEW_Effect * aProcessingEW_EffectPtr = nullptr )
static

Compute the raw jammer power from the specified transmitter on the target interaction.

Parameters
aSimTimeThe current simulation time.
aJammerXmtrPtrPointer to the jammer transmitter.
aTargetInteractionThe interaction object representing the interaction to be jammed (radio, radar, ESM, etc.). This is used only to get the pointer to the receiver and it's current pointing information.
aProcessingEW_EffectPtr[optional] The currently processing or called from EW effect's pointer.
Returns
The jammer power of the interaction, returns the noise power if it is greater than 0, otherwise returns the coherent power even if it is 0.

References WsfEW_Result::FindOrCreate(), WsfEW_Result::mCoherentJammerPower, WsfEW_Effects::mEW_CoherentJammingEffect, WsfEW_Result::mEW_Effects, WsfEW_Effects::mEW_NoiseJammingEffect, WsfEW_Effects::mEW_PulseJammingEffect, WsfEW_Effects::EW_JammingEffect::mJammingPowerGain, WsfEW_Result::mNoiseJammerPower, WsfEW_Result::mPulseJammerPower, and WsfEW_Effects::EW_JammingEffect::mRepeaterFactor.

◆ ComputeJammerPowers() [1/2]

void WsfRF_Jammer::ComputeJammerPowers ( double aSimTime,
WsfEM_Xmtr * aJammerXmtrPtr,
const WsfEM_Interaction & aTargetInteraction,
double aJammerPowers[],
WsfEW_Effect * aProcessingEW_EffectPtr = nullptr )
static

Compute the raw jammer power from the specified transmitter on the target interaction.

Parameters
aSimTime[input] The current simulation time.
aJammerXmtrPtr[input] Pointer to the jammer transmitter.
aTargetInteraction[input] The interaction object representing the interaction to be jammed (radio, radar, ESM, etc.). This is used only to get the pointer to the receiver and it's current pointing information.
aJammerPowers[updated] The jammer powers of the interaction to include: aJammerPowers[0] - noise aJammerPowers[1] - pulse aJammerPowers[2] - coherent
aProcessingEW_EffectPtr[optional] The currently processing or called from EW effect's pointer.

References WsfEW_Result::FindOrCreate(), WsfEW_Result::mCoherentJammerPower, WsfEW_Effects::mEW_CoherentJammingEffect, WsfEW_Result::mEW_Effects, WsfEW_Effects::mEW_NoiseJammingEffect, WsfEW_Effects::mEW_PulseJammingEffect, WsfEW_Effects::EW_JammingEffect::mJammingPowerGain, WsfEW_Result::mNoiseJammerPower, WsfEW_Result::mPulseJammerPower, and WsfEW_Effects::EW_JammingEffect::mRepeaterFactor.

◆ ComputeJammerPowers() [2/2]

void WsfRF_Jammer::ComputeJammerPowers ( double aSimTime,
WsfEM_Xmtr * aJammerXmtrPtr,
const WsfEM_Interaction & aTargetInteraction,
WsfEM_Interaction & aJammerInteraction,
double aJammerPowers[],
WsfEW_Effect * aProcessingEW_EffectPtr = nullptr )
static

Compute the raw jammer power from the specified transmitter on the target interaction.

Parameters
aSimTime[input] The current simulation time.
aJammerXmtrPtr[input] Pointer to the jammer transmitter.
aTargetInteraction[input] The interaction object representing the interaction to be jammed (radio, radar, ESM, etc.). This is used only to get the pointer to the receiver and it's current pointing information.
aJammerInteraction[updated] The interaction between the receiver and jammer. On input the receiver and transmitter pointers are used. On output, the mNoiseJammerPower, mPulseJammerPower, mCoherentJammerPower, mEW_Effects and mEW_Error fields will be updated for this single interaction.
aJammerPowers[updated] The jammer powers of the interaction to include: aJammerPowers[0] - noise aJammerPowers[1] - pulse aJammerPowers[2] - coherent
aProcessingEW_EffectPtr[optional] The currently processing or called from EW effect's pointer.

References WsfEW_Result::FindOrCreate(), WsfEW_Result::mCoherentJammerPower, WsfEW_Effects::mEW_CoherentJammingEffect, WsfEW_Result::mEW_Effects, WsfEW_Effects::mEW_NoiseJammingEffect, WsfEW_Effects::mEW_PulseJammingEffect, WsfEW_Effects::EW_JammingEffect::mJammingPowerGain, WsfEW_Result::mNoiseJammerPower, WsfEW_Result::mPulseJammerPower, and WsfEW_Effects::EW_JammingEffect::mRepeaterFactor.

Referenced by WsfFalseTarget::PowerSufficiencyCheck(), WsfEW_PowerEffect::UpdateEffects(), and ~WsfRF_Jammer().

◆ ComputeReceiverGains()

◆ ComputeSingleJammerEffect()

void WsfRF_Jammer::ComputeSingleJammerEffect ( double aSimTime,
WsfEM_Xmtr * aJammerXmtrPtr,
WsfEM_Interaction & aTargetInteraction,
WsfEM_Interaction & aJammerInteraction,
bool aApplyEW_Effects )
static

Compute the effect of a single jammer on the receiver in the specified interaction. This is the main method that should be called to compute the effect of a single jammer on an interaction. It determines the effect of the jammer on the given target interaction and computes the net result. If aApplyEffects is 'true' the aTargetInteraction and aJammerInteraction powers are updated with the EW effects. Upon entering it is also assumed that the aTargetInteraction jammer powers already have EW effects applied if this flag is set to true.

Parameters
aSimTime[input] The current simulation time.
aJammerXmtrPtr[input] The jammer pointer to compute the effects for the given interaction.
aTargetInteraction[updated] The interaction for which jamming calculations are to be performed. On input the receiver beam position attributes are used. On output, the mNoiseJammerPower, mPulseJammerPower, mCoherentJammerPower, mEW_Effects and mEW_Error fields will be updated with current updated values.
aJammerInteraction[updated] The interaction between the receiver and jammer. On input the receiver and transmitter pointers are used. On output, the mNoiseJammerPower, mPulseJammerPower, mCoherentJammerPower, mEW_Effects and mEW_Error fields will be updated for this single interaction.
aApplyEW_Effects[input] If true, will apply the electronic warfare effects that impinge upon the receiver to the jamming power variables.

References WsfEW_Result::Find(), WsfEW_Result::FindOrCreate(), WsfEM_Interaction::GetReceiver(), WsfEW_Effects::EW_Error::mAzimuth, WsfEW_Effects::EW_JammingEffect::mBlanking, WsfEW_Effects::EW_JammingEffect::mCancelation, WsfEW_Result::mCoherentJammerPower, WsfEW_Effects::mEA_CoherencyMask, WsfEW_Effects::EW_Error::mElevation, WsfEW_Effects::mEW_CoherentJammingEffect, WsfEW_Result::mEW_Effects, WsfEW_Effects::mEW_Error, WsfEW_Effects::mEW_NoiseJammingEffect, WsfEW_Effects::mEW_PulseJammingEffect, WsfEW_Effects::mEW_SignalEffect, WsfEM_Interaction::mInterferencePower, WsfEW_Effects::EW_JammingEffect::mJammingPowerGain, WsfEW_Effects::EW_JammingEffect::mJtoXGain, WsfEW_Effects::mMask, WsfEW_Effects::EW_JammingEffect::mModulationGain, WsfEW_Result::mNoiseJammerPower, WsfEW_Result::mPulseJammerPower, WsfEW_Effects::EW_JammingEffect::mPulseSuppression, WsfEW_Effects::EW_JammingEffect::mRadiusFactor, WsfEW_Effects::EW_Error::mRange, WsfEM_Interaction::mRcvdPower, WsfEW_Effects::EW_SignalEffect::mRcvrNoiseGain, WsfEW_Effects::EW_JammingEffect::mRepeaterFactor, WsfEW_Effects::EW_JammingEffect::mRPJ_Gain, WsfEW_Effects::EW_SignalEffect::mSignalPowerGain, WsfEW_Effects::EW_Error::mVelocity, and WsfEM_Rcvr::SetNoiseMultiplier().

Referenced by WsfESM_Sensor::ESM_Mode::ComputeInterferenceEffect(), WsfFalseTargetBlip::ComputeRcvdPower(), WsfEW_SensorComponent::EW_Beam::DetectJamStrobes(), and ~WsfRF_Jammer().

◆ ComputeTotalJammerEffects()

void WsfRF_Jammer::ComputeTotalJammerEffects ( double aSimTime,
WsfEM_Interaction & aTargetInteraction,
bool aApplyEW_Effects )
static

Compute the total effect of the jammer on the receiver in the specified interaction. This is the main method that should be called to compute the effect of jammers on an interaction. It determines all of the jammers that have an effect on the given target interaction and computes the net result.

Parameters
aSimTime[input] The current simulation time.
aTargetInteraction[updated] The interaction for which jamming calculations are to be performed. On input the receiver pointer and beam position attributes are used. On output, the mNoiseJammerPower, mEW_Effects and mEW_Error fields will be updated.
aApplyEW_Effects[input] If true, will apply the electronic warfare effects that impinge upon the receiver to the jamming power variables.

References WsfEW_Result::Find(), WsfEW_Result::FindOrCreate(), WsfEM_Rcvr::GetInterferenceInteractorCount(), WsfEM_Rcvr::GetInterferenceInteractorEntry(), WsfEM_Interaction::GetReceiver(), WsfEW_Effects::EW_Error::mAzimuth, WsfEW_Effects::EW_JammingEffect::mBlanking, WsfEW_Effects::EW_JammingEffect::mCancelation, WsfEW_Result::mCoherentJammerPower, WsfEW_Effects::mEA_CoherencyMask, WsfEW_Effects::EW_Error::mElevation, WsfEW_Effects::mEW_CoherentJammingEffect, WsfEW_Result::mEW_Effects, WsfEW_Effects::mEW_Error, WsfEW_Effects::mEW_NoiseJammingEffect, WsfEW_Effects::mEW_PulseJammingEffect, WsfEW_Effects::mEW_SignalEffect, WsfEM_Interaction::mInterferencePower, WsfEW_Effects::EW_JammingEffect::mJammingPowerGain, WsfEW_Effects::EW_JammingEffect::mJtoXGain, WsfEW_Effects::mMask, WsfEW_Effects::EW_JammingEffect::mModulationGain, WsfEW_Result::mNoiseJammerPower, WsfEW_Result::mPulseJammerPower, WsfEW_Effects::EW_JammingEffect::mPulseSuppression, WsfEW_Effects::EW_JammingEffect::mRadiusFactor, WsfEW_Effects::EW_Error::mRange, WsfEM_Interaction::mRcvdPower, WsfEW_Effects::EW_SignalEffect::mRcvrNoiseGain, WsfEW_Effects::EW_JammingEffect::mRepeaterFactor, WsfEW_Effects::EW_JammingEffect::mRPJ_Gain, WsfEW_Effects::EW_SignalEffect::mSignalPowerGain, WsfEW_Effects::EW_Error::mVelocity, WsfEW_Effects::Reset(), WsfEM_Rcvr::SetNoiseMultiplier(), and WsfEW_Effects::EW_JammingEffect::Zeroize().

Referenced by WsfEW_SensorComponent::AttemptToDetect(), WsfEW_CommComponent::AttemptToReceive(), WsfFalseTargetBlip::ComputeRcvdPower(), and ~WsfRF_Jammer().

◆ DeselectEA_Technique()

bool WsfRF_Jammer::DeselectEA_Technique ( double aSimTime,
double aFrequency,
double aBandwidth,
size_t aBeamNumber,
WsfStringId aTechniqueId,
WsfTrackId aTrackId )
overridevirtual

Select a jamming technique using the supplied criteria.

Note
Assumes current mode.
Parameters
aSimTimeThe current simulation time.
aFrequencyThe assigned jammer transmitter frequency. (Hertz)
aBandwidthThe assigned jammer transmitter bandwidth. (Hertz)
aBeamNumberThe assigned jammer transmitter Beam Number. (0 to maximum number of beams)
aTechniqueIdThe assigned technique Id of the EA function to use.
aTrackIdThe assigned Track Id of the target.
Returns
The request was successful.

Reimplemented from WsfWeapon.

References WsfPlatformPart::DebugEnabled(), WsfEW_EA_EP::DeselectTechnique(), WsfRF_Jammer::JammerMode::GetActiveBeamSpotIndexes(), WsfEM_XmtrRcvr::GetBandwidth(), WsfEW_EA::GetElectronicAttack(), WsfEM_XmtrRcvr::GetFrequency(), WsfTrackId::GetLocalTrackNumber(), WsfObject::GetName(), WsfTrackId::GetOwningPlatformId(), WsfPlatformPart::GetPlatform(), WsfRF_Jammer::JammerMode::mActiveBeamPtrs, WsfRF_Jammer::JammerBeam::mActiveSpotPtrs, WsfRF_Jammer::JammerBeam::mBeamNumber, and WsfWeapon::mModeListPtr.

◆ GetActiveBeamCount()

size_t WsfRF_Jammer::GetActiveBeamCount ( ) const
overridevirtual

◆ GetActiveRequestCount()

unsigned int WsfRF_Jammer::GetActiveRequestCount ( ) const
overridevirtual

Return the number of 'FireSalvo' calls that are in process.

Reimplemented from WsfWeapon.

References WsfRF_Jammer::JammerMode::mActiveXmtrSpotPtrs, and WsfWeapon::mModeListPtr.

Referenced by GetQuantityRemaining().

◆ GetActiveSpotCount()

size_t WsfRF_Jammer::GetActiveSpotCount ( size_t aBeamNumber) const
overridevirtual

◆ GetComponentRoles()

const int * WsfRF_Jammer::GetComponentRoles ( ) const
overridevirtual

Returns a zero-terminated array of component roles. Note that the array should be in decreasing order of specificity and should generally the inheritance hierarchy. The first entry should be the components 'primary' role. For example a sensor would do the following:

return roles;
@ cWSF_COMPONENT_SENSOR
A 'sensor' component (WsfSensor).
Definition WsfComponentRoles.hpp:105
@ cWSF_COMPONENT_PLATFORM_PART
The component derives from WsfPlatformPart.
Definition WsfComponentRoles.hpp:98
@ cWSF_COMPONENT_ARTICULATED_PART
The component derives from WsfArticulatedPart.
Definition WsfComponentRoles.hpp:99

Reimplemented from WsfArticulatedPart.

References cWSF_COMPONENT_ARTICULATED_PART, cWSF_COMPONENT_NULL, cWSF_COMPONENT_PLATFORM_PART, cWSF_COMPONENT_RF_JAMMER, and cWSF_COMPONENT_WEAPON.

◆ GetEM_Xmtr() [1/3]

WsfEM_Xmtr & WsfRF_Jammer::GetEM_Xmtr ( size_t aIndex)
overridevirtual

Get the transmitter with a specified index.

Parameters
aIndexThe index of the transmitter whose attributes are being requested. This must be in the range [0, GetEM_XmtrCount() - 1].
Note
It is an error to call this method if the device does not have any transmitters (i.e.: GetEM_XmtrCount() == 0).

Reimplemented from WsfWeapon.

References WsfRF_Jammer::JammerMode::mActiveXmtrSpotPtrs, and WsfWeapon::mModeListPtr.

Referenced by UpdateJamming().

◆ GetEM_Xmtr() [2/3]

WsfEM_Xmtr & WsfRF_Jammer::GetEM_Xmtr ( size_t aModeIndex,
size_t aBeamIndex,
size_t aSpotIndex )
overridevirtual

Get the attributes for the transmitter on the specified beam and spot index.

Parameters
aModeIndexThe index of the mode containing the beam with the transmitter.
aBeamIndexThe index of the beam containing the transmitter.
aSpotIndexThe index of the transmitter whose attributes are being requested. This must be in the range [0, GetEM_XmtrCount() - 1] for the specified beam.
Note
The jammer beam must have active spots before calling this method. (i.e.: beamPtr->GetActiveSpots() == 0).

Reimplemented from WsfWeapon.

References WsfWeapon::GetEM_Xmtr(), WsfRF_Jammer::JammerMode::mActiveBeamPtrs, and WsfRF_Jammer::JammerBeam::mActiveSpotPtrs.

◆ GetEM_Xmtr() [3/3]

WsfEM_Xmtr & WsfRF_Jammer::GetEM_Xmtr ( size_t aModeIndex,
size_t aIndex )
overridevirtual

Get the transmitter with a specified mode and index.

Parameters
aModeIndexThe mode index of the jammer whose pointer will be used. This must be in the range of [0, mJammerModeList.size() -1].
aIndexThe index of the transmitter whose attributes are being requested. This must be in the range [0, GetEM_XmtrCount() - 1].
Note
It is an error to call this method if the device does not have any transmitters (i.e.: GetEM_XmtrCount() == 0).

Reimplemented from WsfWeapon.

References WsfWeapon::GetEM_Xmtr(), and WsfRF_Jammer::JammerMode::mActiveXmtrSpotPtrs.

◆ GetEM_XmtrCount() [1/2]

size_t WsfRF_Jammer::GetEM_XmtrCount ( ) const
overridevirtual

These methods support accessing the underlying transmitter components.

Returns
The number of transmitters associated with this device for the current mode.
Note
returns 0 if the jammer has not been initialized.

Reimplemented from WsfWeapon.

References WsfRF_Jammer::JammerMode::mActiveXmtrSpotPtrs, and WsfWeapon::mModeListPtr.

Referenced by TurnOff(), and TurnOn().

◆ GetEM_XmtrCount() [2/2]

size_t WsfRF_Jammer::GetEM_XmtrCount ( size_t aModeIndex) const
overridevirtual
Returns
The number of transmitters associated with this device at the specified mode index.

Reimplemented from WsfWeapon.

References WsfRF_Jammer::JammerMode::mActiveXmtrSpotPtrs.

◆ GetJammerXmtr()

WsfEM_Xmtr & WsfRF_Jammer::GetJammerXmtr ( double aSimTime,
double aFrequency,
double aBandwidth,
size_t aBeamNumber,
WsfTrackId aTrackId )

Get a transmitter using the supplied frequency, bandwidth, and track Id.

Note
Assumes current mode.
Parameters
aSimTimeThe current simulation time.
aFrequencyThe assigned jammer transmitter frequency. (Hertz)
aBandwidthThe assigned jammer transmitter bandwidth. (Hertz)
aBeamNumberThe assigned jammer transmitter Beam Number. (0 to maximum number of beams)
aTrackIdThe assigned Track Id of the target.
Returns
The first found jammer transmitter for the specified input values, if none exist then the returned pointer is 0.

References WsfRF_Jammer::JammerMode::GetActiveBeamSpotIndexes(), WsfWeapon::GetEM_Xmtr(), WsfRF_Jammer::JammerMode::mActiveBeamPtrs, WsfRF_Jammer::JammerBeam::mActiveSpotPtrs, and WsfWeapon::mModeListPtr.

Referenced by ~WsfRF_Jammer().

◆ GetMasterXmtr()

WsfEM_Xmtr & WsfRF_Jammer::GetMasterXmtr ( )

Get the master transmitter for the current mode

Returns
Pointer to the Master transmitter for the current mode

References WsfWeapon::mModeListPtr, and WsfRF_Jammer::JammerMode::mXmtr.

Referenced by UT_DEFINE_SCRIPT_METHOD(), WithinFieldOfView(), WithinFieldOfView(), and ~WsfRF_Jammer().

◆ GetMaximumBeamCount()

size_t WsfRF_Jammer::GetMaximumBeamCount ( ) const
overridevirtual

◆ GetMaximumFrequency()

◆ GetMaximumRequestCount()

unsigned int WsfRF_Jammer::GetMaximumRequestCount ( ) const
overridevirtual

Return the maximum number of 'FireSalvo' calls that may be in process at a time. For RF jammers, this represents the maximum number of spots per mode.

Reimplemented from WsfWeapon.

References WsfRF_Jammer::JammerMode::mMaximumNumSpots, and WsfWeapon::mModeListPtr.

Referenced by GetQuantityRemaining(), and StartJammingTrack().

◆ GetMaximumSpotCount()

size_t WsfRF_Jammer::GetMaximumSpotCount ( size_t aBeamNumber) const
overridevirtual

◆ GetMinimumFrequency()

◆ GetQuantityRemaining()

double WsfRF_Jammer::GetQuantityRemaining ( ) const
overridevirtual

Return the quantity (rounds, bombs, units) remaining.

This includes the number of units that have been committed via 'FireSalvo'.

Note
The quantity is expressed as real value rather than an integer value to provide for weapons that expend themselves in a continuous manner rather than a discrete manner). For example, "quantity" might be a unitless discrete number representing the number of JDAM remaining, or it could mean the (more or less continuous) number of joules available to a high-energy laser (HEL). The derived class should maintain the quantity as desired and implement this method to return the current remaining quantity.

Reimplemented from WsfWeapon.

References GetActiveRequestCount(), and GetMaximumRequestCount().

Referenced by StartJammingTrack().

◆ GetTargetDataMap()

const TargetingDataMap & WsfRF_Jammer::GetTargetDataMap ( ) const
inlineprotected

◆ GetTargetedLocationWCS()

void WsfRF_Jammer::GetTargetedLocationWCS ( int aId,
double aTargetedLocationWCS[3] ) const
overridevirtual

Get the targeted location for the jammer spot.

Parameters
aIdThe Id of the jammer.
aTargetedLocationWCSThe updated targeted WCS location.
Note
Check if the location is valid before calling using TargetLocationIsValid().

Reimplemented from WsfWeapon.

Referenced by WsfMilDisInterface::UpdateXmtrFromBeam().

◆ GetTargetIndex()

size_t WsfRF_Jammer::GetTargetIndex ( int aId) const
overridevirtual

Return Target Id's index.

Reimplemented from WsfWeapon.

References targetIndex().

Referenced by SetEA_DeltaGainTechnique(), StopJamming(), and UpdateJamming().

◆ GetTargetTrackId()

WsfTrackId WsfRF_Jammer::GetTargetTrackId ( int aId) const

Return trackId at aId location if it exists, otherwise return a nullptr.

Referenced by UpdateJamming(), and ~WsfRF_Jammer().

◆ Initialize()

bool WsfRF_Jammer::Initialize ( double aSimTime)
overridevirtual

Perform phase 1 initialization. This is called by WsfPlatform::Initialize() during phase 1 initialization of the platform. The component should complete validation of input data that could not be done by ProcessInput, as well as any other functions to prepare for simulation use (subject to the next paragraph).

The order in which components are initialized is defined by GetComponentInitializationOrder. In general a component implementation of this method should not be dependent on the state of another component, i.e.: it should not assume that the other components Initialize() method has been called. If such a dependency exists one should use Initialize2() if possible, or specify a value GetComponentInitializationOrder to force things to initialize in a particular order.

Parameters
aSimTimeThe current simulation time.
Returns
true if successful or false if unsuccessful (bad input data, etc.)
Note
This method should NOT add any other components to the platform. This MUST be done in PreInitialize().

Reimplemented from WsfArticulatedPart.

References WsfWeapon::Initialize(), WsfPlatformPart::InitiallyTurnedOn(), WsfWeapon::mModeListPtr, ok, and TurnOn().

◆ operator=()

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

References WsfRF_Jammer().

◆ ProcessInput()

bool WsfRF_Jammer::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 WsfArticulatedPart.

References WsfPlatformPart::AddCategory(), cAVERAGE_POWER, cCONSTANT_POWER, WsfRandomVariable::ProcessInput(), and WsfWeapon::ProcessInput().

◆ ProcessMessage()

bool WsfRF_Jammer::ProcessMessage ( double aSimTime,
const WsfMessage & aMessage )
overridevirtual

Process a received message.

Parameters
aSimTimeThe current simulation time.
aMessageThe message that is being sent.
Returns
'true' if the message was processed or 'false' if not.
Note
A message is first received by ReceiveMessage which then calls ProcessMessage to process the message. A derived class ReceiveMessage method may choose to delay the message before calling ProcessMessage or may choose to ignore the message altogether.

Reimplemented from WsfPlatformPart.

References WsfTrackDropMessage::GetTargetIndex(), WsfTrackMessage::GetTrack(), WsfTrackDropMessage::GetTrackId(), WsfMessage::GetType(), WsfTrackDropMessage::GetTypeId(), WsfTrackMessage::GetTypeId(), and WsfTrack::GetUpdateCount().

◆ QueryInterface()

void * WsfRF_Jammer::QueryInterface ( int aRole)
overridevirtual

Returns array of constants role type.

Reimplemented from WsfArticulatedPart.

References cWSF_COMPONENT_RF_JAMMER, and WsfWeapon::QueryInterface().

◆ SelectEA_Technique()

bool WsfRF_Jammer::SelectEA_Technique ( double aSimTime,
double aFrequency,
double aBandwidth,
size_t aBeamNumber,
WsfStringId aTechniqueId,
WsfTrackId aTrackId )
overridevirtual

Select a jamming technique using the supplied criteria.

Note
Assumes current mode.
Parameters
aSimTimeThe current simulation time.
aFrequencyThe assigned jammer transmitter frequency. (Hertz)
aBandwidthThe assigned jammer transmitter bandwidth. (Hertz)
aBeamNumberThe assigned jammer transmitter Beam Number. (0 to maximum number of beams)
aTechniqueIdThe assigned technique Id of the EA function to use.
aTrackIdThe assigned Track Id of the target to be jammed.
Returns
The request was successful.

Reimplemented from WsfWeapon.

References WsfPlatformPart::DebugEnabled(), WsfRF_Jammer::JammerMode::GetActiveBeamSpotIndexes(), WsfEM_XmtrRcvr::GetBandwidth(), WsfEW_EA::GetElectronicAttack(), WsfEM_XmtrRcvr::GetFrequency(), WsfTrackId::GetLocalTrackNumber(), WsfObject::GetName(), WsfTrackId::GetOwningPlatformId(), WsfPlatformPart::GetPlatform(), WsfRF_Jammer::JammerMode::mActiveBeamPtrs, WsfRF_Jammer::JammerBeam::mActiveSpotPtrs, WsfRF_Jammer::JammerBeam::mBeamNumber, WsfWeapon::mModeListPtr, and WsfEW_EA_EP::SelectTechnique().

Referenced by SetEA_DeltaGainTechnique().

◆ SetEA_DeltaGainTechnique() [1/2]

bool WsfRF_Jammer::SetEA_DeltaGainTechnique ( double aSimTime,
WsfStringId aTechniqueId,
bool aOnOff,
WsfStringId aEffectId,
double aJammingDeltaGain_dB,
WsfStringId aSystemTypeId,
WsfStringId aFunctionTypeId )
overridevirtual

Set jamming power (delta gain) technique on the master transmitter for future use.

Note
Assumes current mode.
Parameters
aSimTimeThe current simulation time.
aTechniqueIdThe assigned technique Id to set.
aOnOffThe default state of the technique.
aEffectIdThe assigned effect Id to set.
aJammingDeltaGain_dBThe assigned jamming modulation value.
aSystemTypeIdThe assigned System Type Id of the target types this technique applies to.
aFunctionTypeIdThe assigned System Function Id of the target types this technique applies to.
Returns
The request was successful.

Reimplemented from WsfWeapon.

References WsfEW_EA_EP::DebugEnabled(), WsfPlatformPart::DebugEnabled(), WsfEW_EA::GetElectronicAttack(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfWeapon::mModeListPtr, and WsfEW_EA_EP::SetDeltaGainTechnique().

◆ SetEA_DeltaGainTechnique() [2/2]

bool WsfRF_Jammer::SetEA_DeltaGainTechnique ( double aSimTime,
WsfStringId aTechniqueId,
bool aOnOff,
WsfStringId aEffectId,
double aJammingDeltaGain_dB,
WsfStringId aSystemTypeId,
WsfStringId aSystemFunctionId,
double aFrequency,
double aBandwidth,
size_t aBeamNumber,
WsfTrackId aTrackId )
overridevirtual

Set a jamming power(delta gain) technique on an active spot using the supplied criteria.

Note
Assumes current mode.
Parameters
aSimTimeThe current simulation time.
aTechniqueIdThe assigned technique Id to set.
aOnOffThe default state of the technique, 'true' is default on, 'fasle' is default off.
aEffectIdThe assigned effect Id to set.
aJammingDeltaGain_dBThe assigned jamming delta gain value.
aSystemTypeIdThe assigned System Type Id of the target types this technique applies to.
aSystemFunctionIdThe assigned System Function Id of the target types this technique applies to.
aFrequencyThe assigned jammer transmitter frequency. (Hertz)
aBandwidthThe assigned jammer transmitter bandwidth. (Hertz)
aBeamNumberThe assigned jammer transmitter Beam Number. (0 to maximum number of beams)
aTrackIdThe assigned Track Id of the target to be jammed.
Returns
The request was successful.

Reimplemented from WsfWeapon.

References WsfEW_EA_EP::DebugEnabled(), WsfPlatformPart::DebugEnabled(), WsfRF_Jammer::JammerMode::GetActiveBeamSpotIndexes(), WsfEM_XmtrRcvr::GetBandwidth(), WsfEW_EA::GetElectronicAttack(), WsfEM_XmtrRcvr::GetFrequency(), WsfTrackId::GetLocalTrackNumber(), WsfObject::GetName(), WsfTrackId::GetOwningPlatformId(), WsfPlatformPart::GetPlatform(), GetTargetIndex(), WsfUniqueId::GetUniqueId(), WsfRF_Jammer::JammerMode::mActiveBeamPtrs, WsfRF_Jammer::JammerBeam::mActiveSpotPtrs, WsfRF_Jammer::JammerBeam::mBeamNumber, WsfWeapon::mModeListPtr, WsfRF_Jammer::JammerBeam::mSpotTrackIds, SelectEA_Technique(), WsfEW_EA_EP::SetDeltaGainTechnique(), and targetIndex().

◆ SetTargetedLocationWCS()

void WsfRF_Jammer::SetTargetedLocationWCS ( int aId,
const double aTargetedLocationWCS[3] )
overridevirtual

Set the targeted location for the jammer spot.

Parameters
aIdThe Id of the jammer.
aTargetedLocationWCSThe targeted WCS location.
Note
Valid WCS location must be entered.

Reimplemented from WsfWeapon.

Referenced by WsfMilDisInterface::UpdateXmtrFromBeam().

◆ SetTargetIndex()

void WsfRF_Jammer::SetTargetIndex ( int aId,
size_t aTargetIndex )
overridevirtual

Assign target to TargetDataMap.

Reimplemented from WsfWeapon.

Referenced by SetTargetTrackId(), StartJamming(), and UpdateJamming().

◆ SetTargetTrackId()

void WsfRF_Jammer::SetTargetTrackId ( int aId,
const WsfTrackId & aTargetTrackId )

Insert Target track into TargetDataMap, if it doesn't already exist.

References WsfTrackId::IsNull(), and SetTargetIndex().

Referenced by StartJamming(), UpdateJamming(), and ~WsfRF_Jammer().

◆ StartJamming()

bool WsfRF_Jammer::StartJamming ( double aSimTime,
double aFrequency,
double aBandwidth,
size_t aBeamNumber,
WsfStringId aTechniqueId,
WsfTrackId aTrackId,
size_t aTargetIndex )
overridevirtual

Start a jamming assignment using the supplied frequency and bandwidth.

Parameters
aSimTimeThe current simulation time.
aFrequencyThe assigned jammer transmitter frequency. (Hertz)
aBandwidthThe assigned jammer transmitter bandwidth. (Hertz)
aBeamNumberThe assigned jammer transmitter Beam Number. (0 to maximum number of beams)
aTechniqueIdThe assigned technique Id of the EA function to use.
aTrackIdThe assigned Track Id of the target to be jammed.
aTargetIndexThe platform index of the target to be jammed.
Returns
The request was successful.

Reimplemented from WsfWeapon.

References WsfRF_Jammer::JammerMode::AdjustFrequencyBandwidth(), WsfRF_Jammer::JammerMode::AdjustPowerDistribution(), WsfEW_EA_EP::Clone(), WsfEM_Xmtr::Deactivate(), WsfPlatformPart::DebugEnabled(), WsfEM_XmtrRcvr::GetBandwidth(), WsfRF_Jammer::JammerBeam::GetBeamNumber(), WsfEW_EA::GetElectronicAttack(), WsfEM_XmtrRcvr::GetFrequency(), WsfTrackId::GetLocalTrackNumber(), GetMaximumFrequency(), GetMinimumFrequency(), WsfObject::GetName(), WsfRF_Jammer::JammerMode::GetNextAssignableBeam(), WsfTrackId::GetOwningPlatformId(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), WsfObject::GetType(), WsfUniqueId::GetUniqueId(), WsfRF_Jammer::JammerXmtr::Initialize(), WsfPlatformPart::IsTurnedOn(), WsfObserver::JammingRequestInitiated(), WsfRF_Jammer::JammerMode::mActiveBeamPtrs, WsfRF_Jammer::JammerBeam::mActiveSpotPtrs, WsfRF_Jammer::JammerMode::mActiveXmtrSpotPtrs, WsfRF_Jammer::JammerMode::mAvailableBeamPtrs, WsfRF_Jammer::JammerBeam::mAvailableSpotPtrs, WsfRF_Jammer::JammerMode::mBeamAllocationChanged, WsfRF_Jammer::JammerBeam::mBeamNumber, WsfRF_Jammer::JammerMode::mMaximumNumSpots, WsfWeapon::mModeListPtr, WsfRF_Jammer::JammerMode::mRepeater, WsfRF_Jammer::JammerBeam::mSpotTrackIds, WsfRF_Jammer::JammerMode::mUseRepeater, WsfRF_Jammer::JammerMode::mXmtr, WsfRF_Repeater::RegisterTrackId(), WsfRF_Jammer::JammerMode::Select(), WsfEW_EA_EP::SelectTechnique(), WsfEM_Xmtr::SetBandwidth(), WsfEW_EA::SetElectronicAttack(), WsfEM_Xmtr::SetFrequency(), SetTargetIndex(), SetTargetTrackId(), and TurnOn().

Referenced by StartJammingTrack(), and TurnOn().

◆ StartJammingTrack()

bool WsfRF_Jammer::StartJammingTrack ( double aSimTime,
WsfStringId aTechniqueId,
const WsfTrack * aTrackPtr )
overridevirtual

Start a jamming assignment using the supplied frequency and bandwidth.

Parameters
aSimTimeThe current simulation time.
aTechniqueIdThe assigned technique Id of the EA function to use.
aTrackPtrThe assigned Track Pointer of the target to be jammed.
Returns
The request was successful.

Reimplemented from WsfWeapon.

References GetMaximumFrequency(), GetMaximumRequestCount(), GetMinimumFrequency(), GetQuantityRemaining(), WsfTrack::GetSignalCount(), WsfTrack::GetSignalEntry(), WsfTrack::GetTargetIndex(), WsfTrack::GetTrackId(), WsfTrack_Signal::mLowerFrequency, WsfWeapon::mModeListPtr, WsfTrack_Signal::mPulseWidth, WsfRF_Jammer::JammerMode::mRepeater, WsfTrack_Signal::mUpperFrequency, WsfRF_Jammer::JammerMode::mUseRepeater, WsfRF_Repeater::RegisterTrack(), and StartJamming().

◆ StopJamming()

bool WsfRF_Jammer::StopJamming ( double aSimTime,
double aFrequency,
double aBandwidth,
size_t aBeamNumber,
WsfTrackId aTrackId )
overridevirtual

Stop a jamming assignment using the supplied frequency, bandwidth, and track Id.

Note
Assumes current mode.
Parameters
aSimTimeThe current simulation time.
aFrequencyThe assigned jammer transmitter frequency. (Hertz)
aBandwidthThe assigned jammer transmitter bandwidth. (Hertz)
aBeamNumberThe assigned jammer transmitter Beam Number. (0 to maximum number of beams)
aTrackIdThe assigned Track Id of the target to be jammed.
Returns
The request was successful.

Reimplemented from WsfWeapon.

References WsfRF_Jammer::JammerMode::AdjustPowerDistribution(), WsfEM_Xmtr::Deactivate(), WsfPlatformPart::DebugEnabled(), WsfRF_Jammer::JammerMode::Deselect(), WsfRF_Jammer::JammerMode::GetActiveBeamSpotIndexes(), WsfEM_XmtrRcvr::GetBandwidth(), WsfRF_Jammer::JammerBeam::GetBeamNumber(), WsfEM_XmtrRcvr::GetFrequency(), WsfTrackId::GetLocalTrackNumber(), WsfObject::GetName(), WsfTrackId::GetOwningPlatformId(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), GetTargetIndex(), WsfObject::GetType(), WsfUniqueId::GetUniqueId(), WsfPlatformPart::IsTurnedOn(), WsfObserver::JammingRequestCanceled(), WsfRF_Jammer::JammerMode::mActiveBeamPtrs, WsfRF_Jammer::JammerBeam::mActiveSpotPtrs, WsfRF_Jammer::JammerMode::mActiveXmtrSpotPtrs, WsfRF_Jammer::JammerMode::mAvailableBeamPtrs, WsfRF_Jammer::JammerBeam::mAvailableSpotPtrs, WsfRF_Jammer::JammerMode::mBeamAllocationChanged, WsfRF_Jammer::JammerBeam::mBeamNumber, WsfWeapon::mModeListPtr, WsfRF_Jammer::JammerBeam::mSpotTrackIds, WsfRF_Jammer::JammerMode::mUseRepeater, targetIndex(), and TurnOff().

Referenced by TurnOff().

◆ TargetedLocationValid()

bool WsfRF_Jammer::TargetedLocationValid ( int aId) const
overridevirtual

Preform a check of whether aId is in TargetMapData.

Reimplemented from WsfWeapon.

Referenced by WsfMilDisInterface::UpdateXmtrFromBeam().

◆ TurnOff()

void WsfRF_Jammer::TurnOff ( double aSimTime)
overridevirtual

Turn off the platform part (system).

Parameters
aSimTimeThe current simulation time.

Reimplemented from WsfPlatformPart.

References GetEM_XmtrCount(), WsfWeapon::mModeListPtr, StopJamming(), and WsfWeapon::TurnOff().

Referenced by StopJamming().

◆ TurnOn()

void WsfRF_Jammer::TurnOn ( double aSimTime)
overridevirtual

Turn the weapon on or return statement of whether jamming has already started.

Parameters
aSimTimeThe current simulation time.
Note
Jamming assignment will start if the system has been initialized and is turned off.

Reimplemented from WsfPlatformPart.

References GetEM_XmtrCount(), WsfWeapon::mModeListPtr, WsfRF_Jammer::JammerMode::mUseRepeater, WsfRF_Jammer::JammerMode::mXmtr, StartJamming(), and WsfWeapon::TurnOn().

Referenced by Initialize(), and StartJamming().

◆ UpdateJamming()

bool WsfRF_Jammer::UpdateJamming ( double aSimTime,
size_t aXmtrIndex,
double aFrequency,
double aBandwidth,
WsfStringId aTechniqueId,
WsfTrackId aTrackId,
size_t aTargetIndex )
overridevirtual

Update a jamming assignment using the supplied frequency and bandwidth.

Note
This method is primarily used to update a jammer transmitter via DIS or other or other interface that is not going to Stop and Re-Start a jamming assignment to capture changes in the assignment.
Parameters
aSimTimeThe current simulation time.
aXmtrIndexThe assigned jammer transmitter Beam Number. (0 to maximum number of beams)
aFrequencyThe assigned jammer transmitter frequency. (Hertz)
aBandwidthThe assigned jammer transmitter bandwidth. (Hertz)
aTechniqueIdThe assigned technique Id of the EA function to use.
aTrackIdThe assigned Track Id of the target to be jammed.
aTargetIndexThe platform index of the target to be jammed.
Returns
The request was successful.

Reimplemented from WsfWeapon.

References WsfRF_Jammer::JammerMode::AdjustFrequencyBandwidth(), WsfPlatformPart::DebugEnabled(), WsfEM_XmtrRcvr::GetBandwidth(), WsfEW_EA::GetElectronicAttack(), GetEM_Xmtr(), WsfEM_XmtrRcvr::GetFrequency(), WsfEM_XmtrRcvr::GetIndex(), WsfRF_Jammer::JammerMode::GetJammerBeam(), WsfTrackId::GetLocalTrackNumber(), GetMaximumFrequency(), GetMinimumFrequency(), WsfObject::GetName(), WsfTrackId::GetOwningPlatformId(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), GetTargetIndex(), GetTargetTrackId(), WsfObject::GetType(), WsfUniqueId::GetUniqueId(), WsfRF_Jammer::JammerXmtr::Initialize(), WsfObserver::JammingRequestUpdated(), WsfRF_Jammer::JammerBeam::mActiveSpotPtrs, WsfRF_Jammer::JammerBeam::mBeamNumber, WsfRF_Jammer::JammerMode::mMaximumNumSpots, WsfWeapon::mModeListPtr, WsfRF_Jammer::JammerMode::mRepeater, WsfRF_Jammer::JammerBeam::mSpotTrackIds, WsfRF_Jammer::JammerMode::mUseRepeater, pos, WsfRF_Repeater::RegisterTrackId(), WsfEW_EA_EP::SelectTechnique(), WsfEM_Xmtr::SetBandwidth(), WsfEM_Xmtr::SetFrequency(), SetTargetIndex(), SetTargetTrackId(), and WsfEW_EA_EP::TechniqueIsInUse().

◆ WithinFieldOfView() [1/2]

bool WsfRF_Jammer::WithinFieldOfView ( double aSimTime,
WsfPlatform * aPlatformPtr )
overridevirtual

◆ WithinFieldOfView() [2/2]

bool WsfRF_Jammer::WithinFieldOfView ( double aSimTime,
WsfTrack * aTrackPtr )
overridevirtual

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