|
WSF
|
#include <WsfEW_Effect.hpp>


Classes | |
| class | EffectData |
| Base effect data used to derive from in inheriting effect classes. More... | |
Public Types | |
| enum | Behavior { cEB_UNDEFINED = 1 , cEB_DROP_TRACK = cEB_UNDEFINED << 1 , cEB_MAINTAIN_TRACK = cEB_UNDEFINED << 2 , cEB_TRACK_ERROR = cEB_UNDEFINED << 3 , cEB_DROP_MESSAGE = cEB_UNDEFINED << 4 , cEB_MAINTAIN_MESSAGE = cEB_UNDEFINED << 5 , cEB_MESSAGE_ERROR = cEB_UNDEFINED << 6 , cEB_JAMMER_POWER_EFFECT = cEB_UNDEFINED << 7 , cEB_SIGNAL_POWER_EFFECT = cEB_UNDEFINED << 8 , cEB_SLC_DEGRADE_EFFECT = cEB_UNDEFINED << 9 , cEB_FALSE_TARGET_EFFECT = cEB_UNDEFINED << 10 , cEB_PULSE_EFFECT = cEB_UNDEFINED << 11 , cEB_AGILITY_EFFECT = cEB_UNDEFINED << 12 , cEB_REPEATER_EFFECT = cEB_UNDEFINED << 13 , cEB_REPEATER_UPDATE = cEB_UNDEFINED << 14 , cEB_FLOODED_BLOCKED = cEB_UNDEFINED << 15 , cEB_FLOODED_MAINTAINED = cEB_UNDEFINED << 16 , cEB_JAM_STROBE_EFFECT = cEB_UNDEFINED << 17 , cEB_TARGET_REJECT_EFFECT = cEB_UNDEFINED << 18 , cEB_NEXT_FREE_MASK = cEB_UNDEFINED << 19 } |
| The behavior the EW effect exhibits. More... | |
| enum | Coherency { cEC_NONE = 1 , cEC_NONCOHERENT = cEC_NONE << 1 , cEC_COHERENT = cEC_NONE << 2 , cEC_NONCOHERENT_PULSE = cEC_NONE << 3 , cEC_COHERENT_PULSE = cEC_NONE << 4 } |
| The signal coherency the EW effect exhibits on the affected system. More... | |
| enum | ModulationType { cEM_NONE = 1 , cEM_CW = cEM_NONE << 1 , cEM_COHPULSE = cEM_NONE << 2 , cEM_NONCOHPULSE = cEM_NONE << 3 , cEM_LINEARFM = cEM_NONE << 4 , cEM_NONLINEARFM = cEM_NONE << 5 , cEM_PHASEKEY = cEM_NONE << 6 , cEM_PHASEMOD = cEM_NONE << 7 , cEM_PHASECODE = cEM_NONE << 8 , cEM_ASK = cEM_NONE << 9 , cEM_FSK = cEM_NONE << 10 , cEM_PSK = cEM_NONE << 11 , cEM_BPSK = cEM_NONE << 12 , cEM_QPSK = cEM_NONE << 13 , cEM_DPSK = cEM_NONE << 14 , cEM_QAM = cEM_NONE << 15 } |
| enum | TargetProtectionType { cTP_ALL , cTP_NON_SELF_PROTECT , cTP_SELF_PROTECT } |
| The target protection type this effect is limited to. More... | |
| enum | SystemFunction { cES_UNDEFINED = 1 , cES_COMM = cES_UNDEFINED << 1 , cES_SENSOR = cES_UNDEFINED << 2 , cES_JAMMER = cES_UNDEFINED << 3 , cES_NEXT_FREE_MASK = cES_UNDEFINED << 4 } |
| The type of system function types the EW effect can affect. More... | |
| Public Types inherited from WsfObject | |
| typedef std::vector< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
Public Member Functions | |
| WsfEW_Effect ()=default | |
| WsfEW_Effect & | operator= (const WsfEW_Effect &)=delete |
| ~WsfEW_Effect () override | |
| 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 TypeList & | GetTypeList () const |
| bool | IsA_TypeOf (WsfStringId aType) const |
| WsfObject & | operator= (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) |
Effect Data methods. | |
| using | EffectDataMap = std::map<WsfStringId, EffectData*> |
| unsigned int | mSystemFunctionMask {cES_UNDEFINED} |
| The system type mask that this EW effect can affect. | |
| Behavior | mBehavior {cEB_UNDEFINED} |
| The behavior that this EW effect exhibits. | |
| unsigned int | mCoherencyMask {cEC_NONE} |
| The coherency of this effect wrt to the affected system. | |
| bool | mDebug {false} |
| The debug flag, 'true' for debug, false otherwise. | |
| WsfStringId | mCurrentTargetId {nullptr} |
| Current target Id. | |
| WsfStringId | mCurrentXmtrPlatformId {nullptr} |
| Current transmitting platform Id. | |
| WsfStringId | mCurrentRcvrPlatformId {nullptr} |
| Current receiving platform Id. | |
| int | mCurrentXmtrUniqueId {0} |
| Current transmitter unique Id. | |
| int | mCurrentRcvrUniqueId {0} |
| Current receiver unique Id. | |
| WsfStringId | mEffectedSystemId {nullptr} |
| The type Id of the system being effected, changes with each call to UpdateEffects(...) or UpdateCurrentIds(...). | |
| WsfStringId | mEffectingSystemId {nullptr} |
| The type Id of the system doing the effecting, changes with each call to UpdateEffects(...) or UpdateCurrentIds(...). | |
| bool | mUpdatingEffect {true} |
| Variable to prevent infinite recursion in UpdateEffect. | |
| EffectDataMap | mEffectDataMap |
| Map of the System Type Id to the data required for this effect. | |
| bool | ProcessEffectDataBlock (UtInputBlock &aInputBlock, WsfStringId aSystemTypeId) |
| virtual EffectData & | GetEffectData (WsfStringId aSystemTypeId) |
| void | ResetEffectData (WsfStringId aSystemTypeId) |
| bool | EffectDataExists (WsfStringId aSystemTypeId) const |
| virtual EffectData * | NewEffectData () |
| void | InsertNewEffectData (WsfStringId aSystemTypeId, WsfEW_Types::EW_EffectData *aEffectPtr) |
| virtual EffectData * | PropagateEffectDataPtr (WsfStringId aSystemTypeId) |
Common infrastructure methods. | |
| WsfEW_Effect * | Clone () const override=0 |
| virtual bool | Initialize (WsfSimulation &aSimulation) |
| bool | ProcessInput (UtInput &aInput) override |
Effect methods. | |
| virtual void | ProcessUnmitigatedEffect (double aSimTime, const WsfEM_Interaction &aTargetInteraction, const WsfEM_Interaction &aJammerToTgtInteraction, const ut::optional< WsfEM_Interaction > &aTgtToJammerInteraction, WsfEW_Effects &aEW_Effects) |
| virtual void | ProcessMitigatedEffect (double aSimTime, const WsfEM_Interaction &aTargetInteraction, const WsfEM_Interaction &aJammerToTgtInteraction, const ut::optional< WsfEM_Interaction > &aTgtToJammerInteraction, WsfEW_Effects &aEW_Effects, WsfEW_Effect *aEW_EffectPtr=nullptr) |
Internal use only effect methods. | |
| virtual void | ApplyUnmitigatedEffect (WsfEW_Effects &aEW_Effects) const =0 |
| virtual void | ApplyMitigatedEffect (WsfEW_Effect *aEW_EffectPtr, WsfEW_Effects &aEW_Effects) const =0 |
| virtual void | UpdateEffects (double aSimTime, const WsfEM_Interaction &aTargetInteraction, const WsfEM_Interaction &aJammerToTgtInteraction, const ut::optional< WsfEM_Interaction > &aTgtToJammerInteraction, WsfEW_Effects &aEW_Effects, WsfEW_Effect *aEW_EffectPtr=nullptr) |
Jammer management methods. | |
| virtual void | RemoveJammerXmtr (unsigned int aXmtrId) |
| virtual void | RemoveJammerXmtr (WsfEM_Xmtr *aJammerXmtrPtr) |
System function methods. | |
| void | SetSystemFunctionMask (SystemFunction aSystemFunction) |
| Set the system type. | |
| void | SetSystemFunctionMask (const std::string &aSystemFunctionId) |
| void | AddSystemFunctionMask (SystemFunction aSystemFunction) |
| Set the system type. | |
| void | AddSystemFunctionMask (const std::string &aSystemFunctionId) |
| unsigned int | GetSystemFunctionMask () const |
| static WsfEW_Effect::SystemFunction | ConvertToEW_SystemFunction (WsfEM_Rcvr::RcvrFunction aRcvrFunction) |
| static WsfEW_Effect::SystemFunction | ConvertToEW_SystemFunction (WsfEM_Xmtr::XmtrFunction aXmtrFunction) |
Coherency Type methods. | |
| void | SetCoherencyMask (Coherency aCoherency) |
| void | AddCoherencyMask (Coherency aCoherency) |
| unsigned int | GetCoherencyMask () const |
| static unsigned int | ConvertCoherencyIdToMask (WsfStringId aCoherencyId) |
Behavior methods. | |
| void | SetBehavior (Behavior aBehavior) |
| Behavior | GetBehavior () const |
Debug methods. | |
| void | SetDebug (bool aDebug) |
| bool | DebugEnabled () const |
Class pointer methods. | |
| void | SetEA_EP_Ptr (WsfEW_EA_EP *aPtr) |
| WsfEW_EA_EP * | GetEA_EP_Ptr () const |
| WsfEW_EA * | GetEA_Ptr () const |
| WsfEW_EP * | GetEP_Ptr () const |
| WsfEW_Technique * | GetTechniquePtr () const |
| void | SetTechniquePtr (WsfEW_Technique *aPtr) |
| virtual double | GetJammingPulseDensity () const |
| virtual double | GetJammingPulseDensity (WsfEM_Xmtr *aXmtrPtr) const |
| virtual bool | AllowTarget (WsfPlatform *aXmtrPlatform, WsfPlatform *aTargetPlatform) const |
Current Id methods. | |
| virtual void | UpdateCurrentIds (WsfEM_Rcvr *aRcvrPtr, WsfEM_Xmtr *aXmtrPtr, WsfPlatform *aTargetPtr) |
| WsfSimulation * | GetSimulation () const |
| ut::Random & | GetRandom () |
| WsfEW_Effect (const WsfEW_Effect &aSrc) | |
| virtual void | PrintUpdateMessage (ut::log::MessageStream &aStream, double aSimTime, WsfEW_Effect *aEW_EffectPtr=nullptr) |
| void | ResetProtectionTypeFlag (WsfEM_Xmtr *aXmtrPtr, const WsfEM_Interaction &aTargetInteraction, WsfEW_Effects &aEW_Effects) |
Additional Inherited Members | |
| WsfObject (const WsfObject &aSrc) | |
| Copy constructor (for Clone()). | |
WsfEW_Effect is an abstract base class that represents an EW (Electronic Warfare) effect. If provides two methods that are used to affect an EW error. The first method, 'ApplyUnmitigatedEffect' is responsible for applying the EW effect to the errors. The second method, 'ApplyMitigatedEffect' is responsible for applying any mitigating effects to the error. WsfEW_Effect works in conjunction with the type list WsfEW_EffectTypes.
|
protected |
The behavior the EW effect exhibits.
The type of system function types the EW effect can affect.
|
default |
Referenced by WsfEW_AgilityEffect::ApplyMitigatedEffect(), WsfEW_CommEffect::ApplyMitigatedEffect(), ApplyMitigatedEffect(), WsfEW_PowerEffect::ApplyMitigatedEffect(), WsfEW_RadiusEffect::ApplyMitigatedEffect(), WsfEW_RepeaterEffect::ApplyMitigatedEffect(), WsfEW_AgilityEffect::Clone(), WsfEW_CommEffect::Clone(), Clone(), WsfEW_PowerEffect::Clone(), WsfEW_RadiusEffect::Clone(), WsfEW_RepeaterEffect::Clone(), WsfEW_Effect::EffectData::GetEffectPtr(), operator=(), PrintUpdateMessage(), ProcessMitigatedEffect(), WsfEW_Effect::EffectData::SetEffectPtr(), WsfEW_AgilityEffect::UpdateEffects(), UpdateEffects(), WsfEW_PowerEffect::UpdateEffects(), WsfEW_RadiusEffect::UpdateEffects(), WsfEW_RepeaterEffect::UpdateEffects(), WsfEW_AgilityEffect::WsfEW_AgilityEffect(), WsfEW_Effect(), WsfEW_RadiusEffect::WsfEW_RadiusEffect(), WsfEW_RadiusEffect::WsfEW_RadiusEffect(), WsfEW_AgilityEffect::~WsfEW_AgilityEffect(), WsfEW_CommEffect::~WsfEW_CommEffect(), WsfEW_PowerEffect::~WsfEW_PowerEffect(), WsfEW_RadiusEffect::~WsfEW_RadiusEffect(), and WsfEW_RepeaterEffect::~WsfEW_RepeaterEffect().
|
override |
References mEffectDataMap.
|
protected |
|
inline |
Add the coherency type of the EW effect.
| aCoherency | The coherency of the EW effect exhibits. |
References mCoherencyMask.
| void WsfEW_Effect::AddSystemFunctionMask | ( | const std::string & | aSystemFunctionId | ) |
References cES_COMM, cES_JAMMER, cES_SENSOR, cES_UNDEFINED, and mSystemFunctionMask.
|
inline |
Set the system type.
References mSystemFunctionMask.
|
virtual |
References cTP_NON_SELF_PROTECT, cTP_SELF_PROTECT, WsfObject::GetNameId(), and WsfObject::GetTypeId().
Referenced by ProcessMitigatedEffect(), ProcessUnmitigatedEffect(), and ResetProtectionTypeFlag().
|
pure virtual |
Implemented in WsfEW_AgilityEffect, WsfEW_CommEffect, WsfEW_CoverPulseEffect, WsfEW_FalseTargetEffect, WsfEW_PolModEffect, WsfEW_PowerEffect, WsfEW_PulseSuppressEffect, WsfEW_RadiusEffect, WsfEW_RepeaterEffect, WsfEW_RPJ_Effect, WsfEW_SimpleFT_Effect, WsfEW_SLB_Effect, WsfEW_SLC_DegradeEffect, WsfEW_SLC_Effect, and WsfEW_TrackEffect.
References RemoveJammerXmtr(), UpdateEffects(), and WsfEW_Effect().
Referenced by WsfEW_FalseTargetEffect::ApplyMitigatedEffect(), WsfEW_PulseSuppressEffect::ApplyMitigatedEffect(), WsfEW_RPJ_Effect::ApplyMitigatedEffect(), WsfEW_SimpleFT_Effect::ApplyMitigatedEffect(), and ProcessMitigatedEffect().
|
pure virtual |
Implemented in WsfEW_AgilityEffect, WsfEW_CommEffect, WsfEW_CoverPulseEffect, WsfEW_FalseTargetEffect, WsfEW_PolModEffect, WsfEW_PowerEffect, WsfEW_PulseSuppressEffect, WsfEW_RadiusEffect, WsfEW_RepeaterEffect, WsfEW_RPJ_Effect, WsfEW_SimpleFT_Effect, WsfEW_SLB_Effect, WsfEW_SLC_DegradeEffect, WsfEW_SLC_Effect, and WsfEW_TrackEffect.
Referenced by WsfEW_CoverPulseEffect::ApplyUnmitigatedEffect(), WsfEW_FalseTargetEffect::ApplyUnmitigatedEffect(), WsfEW_PulseSuppressEffect::ApplyUnmitigatedEffect(), WsfEW_RPJ_Effect::ApplyUnmitigatedEffect(), WsfEW_SimpleFT_Effect::ApplyUnmitigatedEffect(), WsfEW_TrackEffect::ApplyUnmitigatedEffect(), and ProcessUnmitigatedEffect().
|
overridepure virtual |
Clone this object.
Implements WsfObject.
Implemented in WsfEW_AgilityEffect, WsfEW_CommEffect, WsfEW_CoverPulseEffect, WsfEW_FalseTargetEffect, WsfEW_NX_SLB_Effect, WsfEW_PolModEffect, WsfEW_PowerEffect, WsfEW_PulseEffect, WsfEW_PulseSuppressEffect, WsfEW_RadiusEffect, WsfEW_RepeaterEffect, WsfEW_RPJ_Effect, WsfEW_SimpleFT_Effect, WsfEW_SLB_Effect, WsfEW_SLC_DegradeEffect, WsfEW_SLC_Effect, and WsfEW_TrackEffect.
References Initialize(), ProcessMitigatedEffect(), ProcessUnmitigatedEffect(), and WsfEW_Effect().
|
static |
References cEC_COHERENT, cEC_COHERENT_PULSE, cEC_NONCOHERENT, cEC_NONCOHERENT_PULSE, and cEC_NONE.
Referenced by UT_DEFINE_SCRIPT_METHOD().
|
static |
A convenience function that converts a receiver's function to the appropriate system function.
| aRcvrFunction | The receiver's function (i.e. comm, sensor, jammer, etc.). |
References cES_COMM, cES_JAMMER, cES_SENSOR, cES_UNDEFINED, WsfEM_Rcvr::cRF_COMM, WsfEM_Rcvr::cRF_INTERFERER, WsfEM_Rcvr::cRF_PASSIVE_SENSOR, and WsfEM_Rcvr::cRF_SENSOR.
Referenced by WsfEW_Effects::Process(), and WsfEW_SimpleFT_Effect::UpdateEffects().
|
static |
A convenience function that converts a transmitter's function to the appropriate system function.
| aXmtrFunction | The transmitter's function (i.e. comm, sensor, jammer, etc.). |
References cES_COMM, cES_JAMMER, cES_SENSOR, cES_UNDEFINED, WsfEM_Xmtr::cXF_COMM, WsfEM_Xmtr::cXF_INTERFERER, and WsfEM_Xmtr::cXF_SENSOR.
|
inline |
Get the debug flag state.
References mDebug.
Referenced by WsfEW_FalseTargetEffect::FT_Data::Initialize().
|
protected |
References mEffectDataMap.
Referenced by GetEffectData(), WsfEW_FalseTargetEffect::GetFT_Ptr(), Initialize(), ProcessEffectDataBlock(), ProcessInput(), PropagateEffectDataPtr(), WsfEW_TrackEffect::SetAzimuthError(), WsfEW_RepeaterEffect::SetControlMethod(), WsfEW_RepeaterEffect::SetDesiredFT_RCS(), WsfEW_RepeaterEffect::SetDesiredJtoN(), WsfEW_RepeaterEffect::SetDesiredJtoS(), WsfEW_TrackEffect::SetElevationError(), WsfEW_RepeaterEffect::SetGainFactors(), WsfEW_PulseEffect::SetJammerPulseDensity(), WsfEW_PowerEffect::SetJammingPowerGain(), WsfEW_TrackEffect::SetLastUpdateTime(), WsfEW_RepeaterEffect::SetMaskingFactor(), WsfEW_RepeaterEffect::SetMinDetectFactor(), WsfEW_PowerEffect::SetModulationGain(), WsfEW_TrackEffect::SetPreviousJtoS(), WsfEW_TrackEffect::SetPreviousStoN(), WsfEW_TrackEffect::SetRangeError(), WsfEW_TrackEffect::SetRangeWalkoffRate(), WsfEW_PowerEffect::SetRcvrNoiseGain(), WsfEW_TrackEffect::SetRequiredStoN(), WsfEW_PowerEffect::SetSignalPowerGain(), WsfEW_TrackEffect::SetVelocityError(), WsfEW_TrackEffect::UpdateEffects(), WsfEW_CoverPulseEffect::UpdateJammerPulseDensity(), WsfEW_FalseTargetEffect::UpdateJammerPulseDensity(), WsfEW_PulseEffect::UpdateJammerPulseDensity(), and WsfEW_TrackEffect::UpdateJammerPulseDensity().
|
inline |
Get the behavior of the EW Effect.
References mBehavior.
Referenced by WsfEW_CommEffect::ApplyMitigatedEffect(), WsfEW_TrackEffect::ApplyMitigatedEffect(), WsfEW_CommEffect::ApplyUnmitigatedEffect(), WsfEW_TrackEffect::ApplyUnmitigatedEffect(), and WsfEW_TrackEffect::UpdateEffects().
|
inline |
Get the coherency of the EW Effect.
References mCoherencyMask.
Referenced by WsfEW_PowerEffect::ApplyMitigatedEffect(), WsfEW_PulseSuppressEffect::ApplyMitigatedEffect(), WsfEW_RadiusEffect::ApplyMitigatedEffect(), WsfEW_SLB_Effect::ApplyMitigatedEffect(), WsfEW_SLC_Effect::ApplyMitigatedEffect(), WsfEW_PowerEffect::ApplyUnmitigatedEffect(), WsfEW_RadiusEffect::ApplyUnmitigatedEffect(), WsfEW_RepeaterEffect::ApplyUnmitigatedEffect(), WsfEW_Effects::Process(), ResetProtectionTypeFlag(), and WsfEW_RepeaterEffect::UpdateGainFactors().
|
inline |
Get the Electronic Attack / Electronic Protect pointer, returns NULL if not set.
Referenced by WsfEW_SLB_Effect::Initialize(), WsfEW_SLC_Effect::Initialize(), WsfEW_TrackEffect::SensorModeDeactivated(), WsfEW_TrackEffect::SensorTrackDropped(), and WsfEW_TrackEffect::UpdateEffects().
| WsfEW_EA * WsfEW_Effect::GetEA_Ptr | ( | ) | const |
Get the Electronic Attack pointer, returns NULL if not set or if N/A.
Referenced by WsfEW_CommEffect::Initialize(), WsfEW_CoverPulseEffect::Initialize(), WsfEW_PowerEffect::Initialize(), WsfEW_PulseEffect::Initialize(), WsfEW_RadiusEffect::Initialize(), WsfEW_RepeaterEffect::Initialize(), WsfEW_SLC_DegradeEffect::Initialize(), WsfEW_TrackEffect::Initialize(), UpdateCurrentIds(), and WsfEW_PulseEffect::UpdateEffects().
|
protectedvirtual |
References EffectDataExists(), and mEffectDataMap.
Referenced by WsfEW_RPJ_Effect::UpdateEffects(), and WsfEW_SimpleFT_Effect::UpdateEffects().
| WsfEW_EP * WsfEW_Effect::GetEP_Ptr | ( | ) | const |
Get the Electronic Protect pointer, returns NULL if not set or if N/A.
Referenced by Initialize(), PrintUpdateMessage(), WsfEW_TrackEffect::SensorModeDeactivated(), WsfEW_TrackEffect::SensorTrackDropped(), UpdateCurrentIds(), WsfEW_CoverPulseEffect::UpdateEffects(), and WsfEW_TrackEffect::UpdateEffects().
|
inlinevirtual |
Get the current jamming pulse density.
Reimplemented in WsfEW_PulseEffect.
Referenced by WsfEW_SLB_Effect::UpdateEffects(), and WsfEW_SLC_Effect::UpdateEffects().
|
inlinevirtual |
Reimplemented in WsfEW_PulseEffect.
|
inline |
Referenced by WsfEW_TrackEffect::TrackEffectData::WalkoffData::GetDelayTime(), WsfEW_TrackEffect::TrackEffectData::WalkoffData::GetHoldoutTime(), WsfEW_TrackEffect::TrackEffectData::WalkoffData::GetRecycleTime(), WsfEW_CoverPulseEffect::UpdateEffects(), WsfEW_PulseSuppressEffect::UpdateEffects(), WsfEW_RPJ_Effect::UpdateEffects(), and WsfEW_SLB_Effect::UpdateEffects().
| WsfSimulation * WsfEW_Effect::GetSimulation | ( | ) | const |
|
inline |
|
inline |
Set the technique pointer associated with this effect.
Referenced by WsfEW_EP::GetMitigatingEffects().
|
virtual |
Reimplemented in WsfEW_AgilityEffect, WsfEW_CommEffect, WsfEW_CoverPulseEffect, WsfEW_FalseTargetEffect, WsfEW_NX_SLB_Effect, WsfEW_PolModEffect, WsfEW_PowerEffect, WsfEW_PulseEffect, WsfEW_PulseSuppressEffect, WsfEW_RadiusEffect, WsfEW_RepeaterEffect, WsfEW_RPJ_Effect, WsfEW_SimpleFT_Effect, WsfEW_SLB_Effect, WsfEW_SLC_DegradeEffect, WsfEW_SLC_Effect, and WsfEW_TrackEffect.
References cES_JAMMER, cES_UNDEFINED, EffectDataExists(), GetEP_Ptr(), WsfSimulation::LockRandom(), mEffectDataMap, mSystemFunctionMask, mUpdatingEffect, NewEffectData(), ok, PropagateEffectDataPtr(), and WsfSimulation::UnlockRandom().
Referenced by Clone(), WsfEW_AgilityEffect::Initialize(), WsfEW_CommEffect::Initialize(), and WsfEW_RadiusEffect::Initialize().
|
protected |
References mEffectDataMap, and PropagateEffectDataPtr().
Referenced by WsfEW_FalseTargetEffect::GetFT_Ptr(), WsfEW_TrackEffect::SetAzimuthError(), WsfEW_RepeaterEffect::SetControlMethod(), WsfEW_RepeaterEffect::SetDesiredFT_RCS(), WsfEW_RepeaterEffect::SetDesiredJtoN(), WsfEW_RepeaterEffect::SetDesiredJtoS(), WsfEW_TrackEffect::SetElevationError(), WsfEW_RepeaterEffect::SetGainFactors(), WsfEW_PulseEffect::SetJammerPulseDensity(), WsfEW_PowerEffect::SetJammingPowerGain(), WsfEW_TrackEffect::SetLastUpdateTime(), WsfEW_RepeaterEffect::SetMaskingFactor(), WsfEW_RepeaterEffect::SetMinDetectFactor(), WsfEW_PowerEffect::SetModulationGain(), WsfEW_TrackEffect::SetPreviousJtoS(), WsfEW_TrackEffect::SetPreviousStoN(), WsfEW_TrackEffect::SetRangeError(), WsfEW_TrackEffect::SetRangeWalkoffRate(), WsfEW_PowerEffect::SetRcvrNoiseGain(), WsfEW_TrackEffect::SetRequiredStoN(), WsfEW_PowerEffect::SetSignalPowerGain(), WsfEW_TrackEffect::SetVelocityError(), WsfEW_TrackEffect::UpdateEffects(), WsfEW_CoverPulseEffect::UpdateJammerPulseDensity(), WsfEW_FalseTargetEffect::UpdateJammerPulseDensity(), WsfEW_PulseEffect::UpdateJammerPulseDensity(), and WsfEW_TrackEffect::UpdateJammerPulseDensity().
|
inlineprotectedvirtual |
Reimplemented in WsfEW_CoverPulseEffect, WsfEW_FalseTargetEffect, WsfEW_PolModEffect, WsfEW_PowerEffect, WsfEW_PulseEffect, WsfEW_RadiusEffect, WsfEW_RepeaterEffect, WsfEW_RPJ_Effect, WsfEW_SimpleFT_Effect, WsfEW_SLC_DegradeEffect, and WsfEW_TrackEffect.
Referenced by Initialize(), ProcessEffectDataBlock(), and ProcessInput().
|
delete |
References WsfEW_Effect().
|
protectedvirtual |
Print the update message when in debug mode for the given type.
| aStream | Where to write to. |
| aSimTime | Current simulation time. |
| aEW_EffectPtr | Effect pointer for the currently opposing/calculating technique if applicable. |
References GetEP_Ptr(), WsfObject::GetName(), mCurrentRcvrPlatformId, mCurrentTargetId, mCurrentXmtrPlatformId, and WsfEW_Effect().
Referenced by ProcessUnmitigatedEffect(), and UpdateEffects().
|
protected |
References EffectDataExists(), mEffectDataMap, NewEffectData(), and ProcessInput().
Referenced by ProcessInput().
|
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'.
| aInput | a reference to a UtInput object. |
| UtInput::ExceptionBase | (or an object derived from it) if the command was recognized but contains some sort of error. |
Reimplemented from WsfObject.
Reimplemented in WsfEW_FalseTargetEffect, WsfEW_NX_SLB_Effect, WsfEW_PolModEffect, WsfEW_PowerEffect, WsfEW_PulseEffect, WsfEW_PulseSuppressEffect, WsfEW_RadiusEffect, WsfEW_RepeaterEffect, WsfEW_RPJ_Effect, WsfEW_SimpleFT_Effect, WsfEW_SLB_Effect, WsfEW_SLC_DegradeEffect, WsfEW_SLC_Effect, and WsfEW_TrackEffect.
References cTP_ALL, cTP_NON_SELF_PROTECT, cTP_SELF_PROTECT, EffectDataExists(), WsfObject::GetName(), WsfObject::GetNameId(), mDebug, mEffectDataMap, NewEffectData(), ProcessEffectDataBlock(), ProcessInput(), and WsfObject::SetName().
Referenced by ProcessEffectDataBlock(), WsfEW_AgilityEffect::ProcessInput(), WsfEW_CommEffect::ProcessInput(), ProcessInput(), and WsfEW_RadiusEffect::ProcessInput().
|
virtual |
Runs the calculation of an effect if it has been mitigated. This Unmitigated vs Mitigated is based on if there is a Electronic Protect pointer to counter the attack type of the Electronic Attack pointer.
| aSimTime | [input] The current simulation time. |
| aTargetInteraction | [input] The target interaction for the detection attempt. |
| aJammerToTgtInteraction | [input] The jammer interaction for the jammer xmtr to victim Rcvr. |
| aTgtToJammerInteraction | [input] Optional jammer interaction for the Victim Xmtr to jammer Rcvr. This will have no value if the jammer Rcvr doesn't exist. |
| aEW_Effects | [input] The current effect that is being updated. |
| aEW_EffectPtr | [input] The currently processing EW effect pointer to prevent recursion in EW effect processing loops. |
References AllowTarget(), ApplyMitigatedEffect(), WsfEM_XmtrRcvr::GetPlatform(), WsfEM_Interaction::GetTarget(), WsfEM_Interaction::GetTransmitter(), mUpdatingEffect, UpdateEffects(), and WsfEW_Effect().
Referenced by Clone().
|
virtual |
Runs the calculation of an effect if it has been unmitigated. This Unmitigated vs Mitigated is based on if there is a Electronic Protect pointer to counter the attack type of the Electronic Attack pointer.
| aSimTime | [input] The current simulation time. |
| aTargetInteraction | [input] The target interaction for the detection attempt. |
| aJammerToTgtInteraction | [input] The jammer interaction for the jammer xmtr to victim Rcvr. |
| aTgtToJammerInteraction | [input] Optional jammer interaction for the Victim Xmtr to jammer Rcvr. This will have no value if the jammer Rcvr doesn't exist. |
| aEW_Effects | [input] The currently processing EW effect pointer to prevent recursion in EW effect processing loops. |
References AllowTarget(), ApplyUnmitigatedEffect(), WsfEM_XmtrRcvr::GetPlatform(), WsfEM_Interaction::GetReceiver(), WsfEM_Interaction::GetTarget(), WsfEM_Interaction::GetTransmitter(), mDebug, mUpdatingEffect, PrintUpdateMessage(), ResetProtectionTypeFlag(), UpdateCurrentIds(), and UpdateEffects().
Referenced by Clone(), and WsfEW_Effects::Process().
|
protectedvirtual |
Propagate the new effect data pointer to the other classes for local casting.
| aSystemTypeId | The system type id to propagate the pointer for. |
Reimplemented in WsfEW_CoverPulseEffect, WsfEW_FalseTargetEffect, WsfEW_PolModEffect, WsfEW_PowerEffect, WsfEW_PulseEffect, WsfEW_RadiusEffect, WsfEW_RepeaterEffect, WsfEW_RPJ_Effect, WsfEW_SimpleFT_Effect, WsfEW_SLC_DegradeEffect, and WsfEW_TrackEffect.
References EffectDataExists(), WsfObject::GetName(), and mEffectDataMap.
Referenced by Initialize(), InsertNewEffectData(), and WsfEW_RadiusEffect::PropagateEffectDataPtr().
|
virtual |
Remove the specified jammer from the effect and associated classes.
| aXmtrId | The unique Id of the jammer transmitter. |
Reimplemented in WsfEW_SLB_Effect, and WsfEW_SLC_Effect.
Referenced by ApplyMitigatedEffect().
|
virtual |
Remove the specified jammer from the effect and associated classes.
| aJammerXmtrPtr | The pointer to the jammer transmitter. |
Reimplemented in WsfEW_SLB_Effect, and WsfEW_SLC_Effect.
|
inlineprotected |
|
protected |
References AllowTarget(), cEB_TARGET_REJECT_EFFECT, cEC_COHERENT, cEC_COHERENT_PULSE, cEC_NONCOHERENT, cEC_NONCOHERENT_PULSE, cEC_NONE, GetCoherencyMask(), WsfEM_XmtrRcvr::GetPlatform(), WsfEM_Interaction::GetTarget(), WsfEW_Effects::mEW_CoherentJammingEffect, WsfEW_Effects::mEW_NoiseJammingEffect, WsfEW_Effects::mEW_PulseJammingEffect, WsfEW_Effects::mMask, and WsfEW_Effects::EW_JammingEffect::mProtectTarget.
Referenced by ProcessUnmitigatedEffect().
|
inline |
Set the behavior of the EW effect.
| aBehavior | The behavior of the EW effect exhibits. |
References mBehavior.
Referenced by WsfEW_Technique::SetDeltaGainEffect().
|
inline |
Set the coherency type of the EW effect.
| aCoherency | The coherency of the EW effect exhibits. |
References mCoherencyMask.
|
inline |
Set the debug flag state.
| aDebug | The debug flag state, 'true' or 'false'. |
References mDebug.
Referenced by WsfEW_Technique::SetDeltaGainEffect().
|
inline |
Set the Electronic Attack pointer, set to NULL by default.
| aPtr | The pointer to the associated EA class. |
Referenced by WsfEW_Technique::SetDeltaGainEffect().
| void WsfEW_Effect::SetSystemFunctionMask | ( | const std::string & | aSystemFunctionId | ) |
References cES_COMM, cES_JAMMER, cES_SENSOR, cES_UNDEFINED, and mSystemFunctionMask.
|
inline |
Set the system type.
References mSystemFunctionMask.
Referenced by WsfEW_Technique::SetDeltaGainEffect().
|
inline |
Set the technique pointer associated with this effect.
| aPtr | The technique pointer associated with this effect. |
Referenced by WsfEW_Technique::SetDeltaGainEffect().
|
virtual |
References WsfEM_XmtrRcvr::GetArticulatedPart(), GetEA_Ptr(), GetEP_Ptr(), WsfObject::GetNameId(), WsfEM_XmtrRcvr::GetPlatform(), WsfObject::GetTypeId(), WsfUniqueId::GetUniqueId(), mCurrentRcvrPlatformId, mCurrentRcvrUniqueId, mCurrentTargetId, mCurrentXmtrPlatformId, mCurrentXmtrUniqueId, mEffectedSystemId, and mEffectingSystemId.
Referenced by ProcessUnmitigatedEffect(), UpdateEffects(), and WsfEW_PulseEffect::UpdateEffects().
|
virtual |
Allows the effect to update any parameters needed before running an apply effect method.
| aSimTime | [input] The current simulation time. |
| aTargetInteraction | [input] The target interaction for the detection attempt. |
| aJammerToTgtInteraction | [input] The jammer interaction for the jammer Xmtr to victim Rcvr. |
| aTgtToJammerInteraction | [input] Optional jammer interaction for the Victim Xmtr to jammer Rcvr. This will have no value if the jammer Rcvr doesn't exist. |
| aEW_Effects | [input] The current effect that is being updated. |
| aEW_EffectPtr | [input] The currently processing EW effect pointer to prevent recursion in EW effect processing loops. |
Reimplemented in WsfEW_AgilityEffect, WsfEW_CoverPulseEffect, WsfEW_PowerEffect, WsfEW_PulseEffect, WsfEW_PulseSuppressEffect, WsfEW_RadiusEffect, WsfEW_RepeaterEffect, WsfEW_RPJ_Effect, WsfEW_SimpleFT_Effect, WsfEW_SLB_Effect, WsfEW_SLC_Effect, and WsfEW_TrackEffect.
References WsfEM_Interaction::GetReceiver(), WsfEM_Interaction::GetTarget(), WsfEM_Interaction::GetTransmitter(), mDebug, PrintUpdateMessage(), UpdateCurrentIds(), and WsfEW_Effect().
Referenced by ApplyMitigatedEffect(), ProcessMitigatedEffect(), ProcessUnmitigatedEffect(), WsfEW_AgilityEffect::UpdateEffects(), and WsfEW_RadiusEffect::UpdateEffects().
|
protected |
The behavior that this EW effect exhibits.
Referenced by GetBehavior(), WsfEW_CommEffect::ProcessInput(), WsfEW_TrackEffect::ProcessInput(), SetBehavior(), WsfEW_AgilityEffect::WsfEW_AgilityEffect(), WsfEW_CoverPulseEffect::WsfEW_CoverPulseEffect(), WsfEW_Effect(), WsfEW_FalseTargetEffect::WsfEW_FalseTargetEffect(), WsfEW_NX_SLB_Effect::WsfEW_NX_SLB_Effect(), WsfEW_PolModEffect::WsfEW_PolModEffect(), WsfEW_PowerEffect::WsfEW_PowerEffect(), WsfEW_RadiusEffect::WsfEW_RadiusEffect(), WsfEW_RepeaterEffect::WsfEW_RepeaterEffect(), WsfEW_SLB_Effect::WsfEW_SLB_Effect(), WsfEW_SLC_DegradeEffect::WsfEW_SLC_DegradeEffect(), and WsfEW_SLC_Effect::WsfEW_SLC_Effect().
|
protected |
The coherency of this effect wrt to the affected system.
Referenced by AddCoherencyMask(), GetCoherencyMask(), WsfEW_RPJ_Effect::ProcessInput(), SetCoherencyMask(), WsfEW_PowerEffect::UpdateEffects(), WsfEW_AgilityEffect::WsfEW_AgilityEffect(), WsfEW_CoverPulseEffect::WsfEW_CoverPulseEffect(), WsfEW_Effect(), WsfEW_FalseTargetEffect::WsfEW_FalseTargetEffect(), WsfEW_NX_SLB_Effect::WsfEW_NX_SLB_Effect(), WsfEW_PolModEffect::WsfEW_PolModEffect(), WsfEW_PowerEffect::WsfEW_PowerEffect(), WsfEW_PulseEffect::WsfEW_PulseEffect(), WsfEW_RadiusEffect::WsfEW_RadiusEffect(), WsfEW_RepeaterEffect::WsfEW_RepeaterEffect(), WsfEW_RPJ_Effect::WsfEW_RPJ_Effect(), WsfEW_SimpleFT_Effect::WsfEW_SimpleFT_Effect(), WsfEW_SLB_Effect::WsfEW_SLB_Effect(), WsfEW_SLC_DegradeEffect::WsfEW_SLC_DegradeEffect(), WsfEW_SLC_Effect::WsfEW_SLC_Effect(), and WsfEW_TrackEffect::WsfEW_TrackEffect().
|
protected |
Current receiving platform Id.
Referenced by WsfEW_PulseSuppressEffect::ApplyMitigatedEffect(), WsfEW_AgilityEffect::ApplyUnmitigatedEffect(), PrintUpdateMessage(), UpdateCurrentIds(), WsfEW_AgilityEffect::UpdateEffects(), and WsfEW_Effect().
|
protected |
Current receiver unique Id.
Referenced by UpdateCurrentIds(), and WsfEW_Effect().
|
protected |
Current target Id.
Referenced by WsfEW_PulseSuppressEffect::ApplyMitigatedEffect(), WsfEW_SLB_Effect::ApplyMitigatedEffect(), WsfEW_AgilityEffect::ApplyUnmitigatedEffect(), PrintUpdateMessage(), UpdateCurrentIds(), WsfEW_AgilityEffect::UpdateEffects(), WsfEW_FalseTargetEffect::UpdateJammerPulseDensity(), and WsfEW_Effect().
|
protected |
Current transmitting platform Id.
Referenced by WsfEW_PulseSuppressEffect::ApplyMitigatedEffect(), WsfEW_AgilityEffect::ApplyUnmitigatedEffect(), PrintUpdateMessage(), UpdateCurrentIds(), WsfEW_AgilityEffect::UpdateEffects(), and WsfEW_Effect().
|
protected |
Current transmitter unique Id.
Referenced by WsfEW_SLB_Effect::ApplyMitigatedEffect(), WsfEW_SLC_Effect::ApplyMitigatedEffect(), UpdateCurrentIds(), WsfEW_SLB_Effect::UpdateEffects(), WsfEW_SLC_Effect::UpdateEffects(), and WsfEW_Effect().
|
protected |
The debug flag, 'true' for debug, false otherwise.
Referenced by WsfEW_CommEffect::ApplyMitigatedEffect(), WsfEW_PowerEffect::ApplyMitigatedEffect(), WsfEW_PulseSuppressEffect::ApplyMitigatedEffect(), WsfEW_RadiusEffect::ApplyMitigatedEffect(), WsfEW_SLB_Effect::ApplyMitigatedEffect(), WsfEW_SLC_Effect::ApplyMitigatedEffect(), WsfEW_TrackEffect::ApplyMitigatedEffect(), WsfEW_AgilityEffect::ApplyUnmitigatedEffect(), WsfEW_CoverPulseEffect::ApplyUnmitigatedEffect(), WsfEW_PolModEffect::ApplyUnmitigatedEffect(), WsfEW_PowerEffect::ApplyUnmitigatedEffect(), WsfEW_RadiusEffect::ApplyUnmitigatedEffect(), WsfEW_RepeaterEffect::ApplyUnmitigatedEffect(), WsfEW_RPJ_Effect::ApplyUnmitigatedEffect(), WsfEW_SimpleFT_Effect::ApplyUnmitigatedEffect(), WsfEW_SLC_DegradeEffect::ApplyUnmitigatedEffect(), WsfEW_TrackEffect::ApplyUnmitigatedEffect(), DebugEnabled(), ProcessInput(), ProcessUnmitigatedEffect(), WsfEW_SLB_Effect::RemoveJammerXmtr(), WsfEW_SLB_Effect::RemoveJammerXmtr(), WsfEW_SLC_Effect::RemoveJammerXmtr(), WsfEW_SLC_Effect::RemoveJammerXmtr(), SetDebug(), WsfEW_AgilityEffect::UpdateEffects(), WsfEW_CoverPulseEffect::UpdateEffects(), UpdateEffects(), WsfEW_PulseEffect::UpdateEffects(), WsfEW_RadiusEffect::UpdateEffects(), WsfEW_RepeaterEffect::UpdateEffects(), WsfEW_RPJ_Effect::UpdateEffects(), WsfEW_SimpleFT_Effect::UpdateEffects(), WsfEW_SLB_Effect::UpdateEffects(), WsfEW_SLC_Effect::UpdateEffects(), WsfEW_TrackEffect::UpdateEffects(), WsfEW_FalseTargetEffect::UpdateFT(), WsfEW_RepeaterEffect::UpdateGainFactors(), and WsfEW_Effect().
|
protected |
Map of the System Type Id to the data required for this effect.
Referenced by EffectDataExists(), GetEffectData(), WsfEW_FalseTargetEffect::GetFT_Ptr(), Initialize(), InsertNewEffectData(), ProcessEffectDataBlock(), ProcessInput(), PropagateEffectDataPtr(), WsfEW_TrackEffect::SetLastUpdateTime(), WsfEW_TrackEffect::SetPreviousJtoS(), WsfEW_TrackEffect::SetPreviousStoN(), WsfEW_TrackEffect::SetRequiredStoN(), WsfEW_TrackEffect::UpdateEffects(), WsfEW_CoverPulseEffect::UpdateJammerPulseDensity(), WsfEW_FalseTargetEffect::UpdateJammerPulseDensity(), WsfEW_PulseEffect::UpdateJammerPulseDensity(), WsfEW_TrackEffect::UpdateJammerPulseDensity(), WsfEW_Effect(), WsfEW_SimpleFT_Effect::WsfEW_SimpleFT_Effect(), and ~WsfEW_Effect().
|
protected |
The type Id of the system being effected, changes with each call to UpdateEffects(...) or UpdateCurrentIds(...).
Referenced by WsfEW_PowerEffect::ApplyMitigatedEffect(), WsfEW_RadiusEffect::ApplyMitigatedEffect(), WsfEW_TrackEffect::ApplyMitigatedEffect(), WsfEW_CoverPulseEffect::ApplyUnmitigatedEffect(), WsfEW_PowerEffect::ApplyUnmitigatedEffect(), WsfEW_RadiusEffect::ApplyUnmitigatedEffect(), WsfEW_RepeaterEffect::ApplyUnmitigatedEffect(), WsfEW_TrackEffect::ApplyUnmitigatedEffect(), UpdateCurrentIds(), WsfEW_CoverPulseEffect::UpdateEffects(), WsfEW_PowerEffect::UpdateEffects(), WsfEW_PulseEffect::UpdateEffects(), WsfEW_RadiusEffect::UpdateEffects(), WsfEW_RepeaterEffect::UpdateEffects(), WsfEW_RPJ_Effect::UpdateEffects(), WsfEW_SimpleFT_Effect::UpdateEffects(), WsfEW_TrackEffect::UpdateEffects(), WsfEW_RepeaterEffect::UpdateGainFactors(), WsfEW_CoverPulseEffect::UpdateJammerPulseDensity(), WsfEW_FalseTargetEffect::UpdateJammerPulseDensity(), WsfEW_PulseEffect::UpdateJammerPulseDensity(), WsfEW_SimpleFT_Effect::UpdateJammerPulseDensity(), WsfEW_TrackEffect::UpdateJammerPulseDensity(), and WsfEW_Effect().
|
protected |
The type Id of the system doing the effecting, changes with each call to UpdateEffects(...) or UpdateCurrentIds(...).
Referenced by UpdateCurrentIds(), WsfEW_PulseSuppressEffect::UpdateEffects(), WsfEW_SLC_Effect::UpdateEffects(), and WsfEW_Effect().
|
protected |
The system type mask that this EW effect can affect.
Referenced by AddSystemFunctionMask(), AddSystemFunctionMask(), GetSystemFunctionMask(), WsfEW_CommEffect::Initialize(), WsfEW_CoverPulseEffect::Initialize(), Initialize(), WsfEW_PowerEffect::Initialize(), WsfEW_PulseEffect::Initialize(), WsfEW_RadiusEffect::Initialize(), WsfEW_RepeaterEffect::Initialize(), WsfEW_SLC_DegradeEffect::Initialize(), WsfEW_TrackEffect::Initialize(), SetSystemFunctionMask(), SetSystemFunctionMask(), WsfEW_Effect(), WsfEW_FalseTargetEffect::WsfEW_FalseTargetEffect(), and WsfEW_PolModEffect::WsfEW_PolModEffect().
|
protected |
Variable to prevent infinite recursion in UpdateEffect.
Referenced by Initialize(), ProcessMitigatedEffect(), ProcessUnmitigatedEffect(), and WsfEW_Effect().