WSF
WsfEW_SLB_Effect.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_SLB_EFFECT_HPP
13#define WSFEW_SLB_EFFECT_HPP
14
15#include "wsf_mil_export.h"
16
17#include <iosfwd>
18#include <map>
19#include <vector>
20
21class UtInput;
22class UtInputBlock;
23
25class WsfEM_Antenna;
26#include "WsfEM_Interaction.hpp"
27class WsfEM_Rcvr;
28class WsfEW_EA;
29class WsfEW_EP;
30#include "WsfEW_PowerEffect.hpp"
31
33
34class WSF_MIL_EXPORT WsfEW_SLB_Effect : public WsfEW_PowerEffect
35{
36public:
37 using BlankingMap = std::map<unsigned int, double>;
38 using TargetBlankingTable = std::vector<std::pair<double, double>>;
39
45
54
55
64
67 ~WsfEW_SLB_Effect() override;
68 WsfEW_Effect* Clone() const override;
69 bool Initialize(WsfSimulation& aSimulation) override;
70 bool ProcessInput(UtInput& aInput) override;
71
72 virtual bool ProcessTargetBlankingBlock(UtInputBlock& aInputBlock);
73 virtual bool ProcessTargetBlankingInput(UtInput& aInput);
74
75 void ApplyUnmitigatedEffect(WsfEW_Effects& aEW_Effects) const override;
76
77 void ApplyMitigatedEffect(WsfEW_Effect* aEW_EffectPtr, WsfEW_Effects& aEW_Effects) const override;
78
79 void UpdateEffects(double aSimTime,
80 const WsfEM_Interaction& aTargetInteraction,
81 const WsfEM_Interaction& aJammerToTgtInteraction,
82 const ut::optional<WsfEM_Interaction>& aTgtToJammerInteraction,
83 WsfEW_Effects& aEW_Effects,
84 WsfEW_Effect* aEW_EffectPtr = nullptr) override;
85
86 void RemoveJammerXmtr(unsigned int aXmtrId) override;
87 void RemoveJammerXmtr(WsfEM_Xmtr* aJammerXmtrPtr) override;
88
90
91 virtual double GetBlankingThreshold() const { return mBlankingThreshold; }
92 virtual WsfEM_Rcvr* GetAuxRcvrPtr() { return mAuxRcvrPtr; }
94
95protected:
97 bool AddTargetBlankingProbability(double aDutyCycle, double aProbability);
98
101
102private:
103 double GetTargetBlankingProbability(double aDutyCycle) const;
104
105 // Input data variables
106 WsfEM_Rcvr* mAuxRcvrPtr;
107 WsfEM_Antenna* mAuxAntennaPtr;
108 WsfAntennaPattern* mAuxAntennaPatternPtr;
109
110 double mAuxBeamTilt;
111 bool mExplicitAuxBeamTilt;
112
113 double mAuxThresholds[2];
114 double mMainThresholds[2];
115
116 BlankingMap mBlankingMap;
117 double mBlankingThreshold;
118
119 double mSaturationDutyCycle;
120 SaturationEffect mSaturationEffect;
121
122 // Current/Updated data variables
123 BlankerState mBlankerState;
124 // double mAuxChannelJammerPower;
125 bool mTargetBlanked;
126};
127
128#endif
Definition WsfAntennaPattern.hpp:35
Definition WsfEM_Antenna.hpp:49
Definition WsfEM_Interaction.hpp:68
Definition WsfEM_Rcvr.hpp:68
Definition WsfEM_Xmtr.hpp:55
Definition WsfEW_EA.hpp:37
Definition WsfEW_EP.hpp:36
Definition WsfEW_Effect.hpp:45
virtual void RemoveJammerXmtr(unsigned int aXmtrId)
Definition WsfEW_Effect.cpp:399
Definition WsfEW_Effects.hpp:41
void ApplyUnmitigatedEffect(WsfEW_Effects &aEW_Effects) const override
Definition WsfEW_PowerEffect.cpp:72
bool Initialize(WsfSimulation &aSimulation) override
Definition WsfEW_PowerEffect.cpp:53
bool ProcessInput(UtInput &aInput) override
Definition WsfEW_PowerEffect.cpp:66
WsfEW_Effect * Clone() const override
Definition WsfEW_PowerEffect.cpp:47
WsfEW_PowerEffect()
Definition WsfEW_PowerEffect.cpp:30
void ApplyMitigatedEffect(WsfEW_Effect *aEW_EffectPtr, WsfEW_Effects &aEW_Effects) const override
Definition WsfEW_PowerEffect.cpp:233
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) override
Definition WsfEW_PowerEffect.cpp:393
WsfEW_SLB_Effect models and applies Sidelobe Blanker (SLB) effects.
Definition WsfEW_SLB_Effect.hpp:35
virtual WsfEM_Rcvr * GetAuxRcvrPtr()
Definition WsfEW_SLB_Effect.hpp:92
WsfEW_SLB_Effect & operator=(const WsfEW_SLB_Effect &)=delete
virtual double GetBlankingThreshold() const
Definition WsfEW_SLB_Effect.hpp:91
TargetBlankingTable mTargetBlankingTable
Definition WsfEW_SLB_Effect.hpp:100
virtual bool ProcessTargetBlankingBlock(UtInputBlock &aInputBlock)
Definition WsfEW_SLB_Effect.cpp:277
std::map< unsigned int, double > BlankingMap
Definition WsfEW_SLB_Effect.hpp:37
SaturationEffect
Definition WsfEW_SLB_Effect.hpp:41
@ cSE_DUTYCYCLELIMITEFFECT
Apply saturation at a specified duty cycle.
Definition WsfEW_SLB_Effect.hpp:42
@ cSE_NOSATURATIONEFFECT
Don't care about saturation effects.
Definition WsfEW_SLB_Effect.hpp:43
std::vector< std::pair< double, double > > TargetBlankingTable
Definition WsfEW_SLB_Effect.hpp:38
TargetBlankingEffect
Definition WsfEW_SLB_Effect.hpp:47
@ cTB_DUTYCYCLEPROBABILITY
Apply target blanking via a uniform probability comparison with the duty-cycle.
Definition WsfEW_SLB_Effect.hpp:50
@ cTB_DUTYCYCLETABLE
Apply target blanking via an input table and a uniform random number draw.
Definition WsfEW_SLB_Effect.hpp:51
@ cTB_NOTARGETBLANKING
Don't care about target blanking effects.
Definition WsfEW_SLB_Effect.hpp:52
@ cTB_DUTYCYCLEALGORITHM
Definition WsfEW_SLB_Effect.hpp:48
BlankerState
Definition WsfEW_SLB_Effect.hpp:57
@ cPOWERLIMITED
Jammer signal is outside the operating power region.
Definition WsfEW_SLB_Effect.hpp:62
@ cOFF
Blanker off.
Definition WsfEW_SLB_Effect.hpp:59
@ cBLANKING
Blanker functioning.
Definition WsfEW_SLB_Effect.hpp:58
@ cSTALLED
Blanker stalled, no longer blanking.
Definition WsfEW_SLB_Effect.hpp:60
@ cMAINLOBE
Jammer signal in mainlobe or power in Aux is less than main.
Definition WsfEW_SLB_Effect.hpp:61
virtual bool ProcessTargetBlankingInput(UtInput &aInput)
Definition WsfEW_SLB_Effect.cpp:291
TargetBlankingEffect mTargetBlankingEffect
Definition WsfEW_SLB_Effect.hpp:99
WsfEW_SLB_Effect()
Definition WsfEW_SLB_Effect.cpp:42
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Copyrights Multiple, All Rights Reserved