WSF
WsfEW_Effects.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFEW_EFFECTS_HPP
13#define WSFEW_EFFECTS_HPP
14
15#include "wsf_mil_export.h"
16
17#include <memory>
18#include <string>
19
20#include "UtLog.hpp"
21#include "UtOptional.hpp"
22
23class UtScriptClass;
24class UtScriptTypes;
26class WsfEM_Rcvr;
27class WsfEM_Xmtr;
28class WsfEW_Effect;
30
39
40class WSF_MIL_EXPORT WsfEW_Effects
41{
42public:
44 {
45 public:
46 void Reset();
47
48 double mAzimuth{0.0};
49 double mElevation{0.0};
50 double mRange{0.0};
51 double mVelocity{0.0};
52 double mBitErrorRate{0.0};
53 };
54
56 {
57 public:
58 void Reset();
59 void Zeroize();
60
61 double mBlanking{1.0};
62 double mCancelation{1.0};
63 double mModulationGain{1.0};
64 double mJammingPowerGain{1.0};
65 double mJtoXGain{1.0};
66 int mProtectTarget{-1}; // -1=undefined, 0=false, 1=true
67 double mPulseSuppression{1.0};
68 double mRadiusFactor{1.0};
69 double mRepeaterFactor{1.0};
70 double mRPJ_Gain{1.0};
71 };
72
74 {
75 public:
76 void Reset();
77 void Zeroize();
78
79 double mSignalPowerGain{1.0};
80 double mRcvrNoiseGain{1.0};
81 };
82
84 {
85 public:
86 void Reset();
87
88 double mMinGain{-1.0};
89 double mGain{-1.0};
90 double mPeakGain{-1.0};
91 };
92
93 virtual ~WsfEW_Effects() = default;
94
95 // =================================================================================================
99 // static
100 static std::unique_ptr<UtScriptClass> CreateScriptClass(const std::string& aClassName, UtScriptTypes* aScriptTypesPtr);
101
102 // =================================================================================================
112 void Process(double aSimTime,
113 const WsfEM_Interaction& aTargetInteraction,
114 const WsfEM_Interaction& aJammerToTgtInteraction,
115 const ut::optional<WsfEM_Interaction>& aTgtToJammerInteraction,
116 bool aProcessOnlyEA_Effects);
117
118 // =================================================================================================
120 void Print(ut::log::MessageStream& aStream) const;
121 void Reset();
122
123 unsigned int mMask{0};
124 unsigned int mEA_CoherencyMask{0};
131};
132
133#endif
Definition WsfEM_Interaction.hpp:68
Definition WsfEM_Rcvr.hpp:68
Definition WsfEM_Xmtr.hpp:55
Definition WsfEW_Effect.hpp:45
Definition WsfEW_Effects.hpp:44
double mVelocity
Definition WsfEW_Effects.hpp:51
double mRange
Definition WsfEW_Effects.hpp:50
double mAzimuth
Definition WsfEW_Effects.hpp:48
double mElevation
Definition WsfEW_Effects.hpp:49
void Reset()
Definition WsfEW_Effects.cpp:174
double mBitErrorRate
Definition WsfEW_Effects.hpp:52
Definition WsfEW_Effects.hpp:56
double mJammingPowerGain
Definition WsfEW_Effects.hpp:64
double mModulationGain
Definition WsfEW_Effects.hpp:63
double mRPJ_Gain
Definition WsfEW_Effects.hpp:70
int mProtectTarget
Definition WsfEW_Effects.hpp:66
double mRadiusFactor
Definition WsfEW_Effects.hpp:68
double mRepeaterFactor
Definition WsfEW_Effects.hpp:69
double mCancelation
Definition WsfEW_Effects.hpp:62
void Zeroize()
Definition WsfEW_Effects.cpp:203
double mBlanking
Definition WsfEW_Effects.hpp:61
void Reset()
Definition WsfEW_Effects.cpp:188
double mJtoXGain
Definition WsfEW_Effects.hpp:65
double mPulseSuppression
Definition WsfEW_Effects.hpp:67
Definition WsfEW_Effects.hpp:74
void Reset()
Definition WsfEW_Effects.cpp:222
double mSignalPowerGain
Definition WsfEW_Effects.hpp:79
double mRcvrNoiseGain
Definition WsfEW_Effects.hpp:80
void Zeroize()
Definition WsfEW_Effects.cpp:229
Definition WsfEW_Effects.hpp:84
double mMinGain
Definition WsfEW_Effects.hpp:88
void Reset()
Definition WsfEW_Effects.cpp:240
double mGain
Definition WsfEW_Effects.hpp:89
double mPeakGain
Definition WsfEW_Effects.hpp:90
Definition WsfEW_Effects.hpp:41
void Process(double aSimTime, const WsfEM_Interaction &aTargetInteraction, const WsfEM_Interaction &aJammerToTgtInteraction, const ut::optional< WsfEM_Interaction > &aTgtToJammerInteraction, bool aProcessOnlyEA_Effects)
Definition WsfEW_Effects.cpp:31
EW_JammingEffect mEW_CoherentJammingEffect
Definition WsfEW_Effects.hpp:128
static std::unique_ptr< UtScriptClass > CreateScriptClass(const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)
Definition WsfEW_Effects.cpp:266
void Print(ut::log::MessageStream &aStream) const
Print the interaction data to standard output.
Definition WsfEW_Effects.cpp:120
RepeaterData mCurrentRepeaterData
Definition WsfEW_Effects.hpp:130
EW_SignalEffect mEW_SignalEffect
Definition WsfEW_Effects.hpp:129
unsigned int mMask
Definition WsfEW_Effects.hpp:123
virtual ~WsfEW_Effects()=default
EW_JammingEffect mEW_PulseJammingEffect
Definition WsfEW_Effects.hpp:127
EW_Error mEW_Error
Definition WsfEW_Effects.hpp:125
EW_JammingEffect mEW_NoiseJammingEffect
Definition WsfEW_Effects.hpp:126
void Reset()
Definition WsfEW_Effects.cpp:157
unsigned int mEA_CoherencyMask
Definition WsfEW_Effects.hpp:124
Copyrights Multiple, All Rights Reserved