WSF
WsfEW_Technique.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_TECHNIQUE_HPP
13#define WSFEW_TECHNIQUE_HPP
14
15#include "wsf_mil_export.h"
16
17#include <map>
18#include <vector>
19
20class UtInput;
21class UtInputBlock;
22class WsfEW_EA;
23class WsfEW_EP;
24class WsfEW_EA_EP;
25#include "WsfEW_Effect.hpp"
26#include "WsfEW_Types.hpp"
27#include "WsfObject.hpp"
28
35
36class WSF_MIL_EXPORT WsfEW_Technique : public WsfObject
37{
38public:
40 using EffectPtrVec = std::vector<WsfEW_Effect*>;
41
44 ~WsfEW_Technique() override;
45
47
48
51 WsfEW_Technique* Clone() const override;
52
53 virtual bool Initialize(WsfSimulation& aSimulation);
54 bool ProcessInput(UtInput& aInput) override;
56
57
59
60
61 virtual void RemoveJammerXmtr(unsigned int aXmtrId);
62 virtual void RemoveJammerXmtr(WsfEM_Xmtr* aXmtrPtr);
64
66
67
70 void SetEA_EP_Ptr(WsfEW_EA_EP* aEA_Ptr) { mEA_EP_Ptr = aEA_Ptr; }
71
74 WsfEW_EA_EP* GetEA_EP_Ptr() const { return mEA_EP_Ptr; }
75
78 WsfEW_EA* GetEA_Ptr() const;
79
82 WsfEW_EP* GetEP_Ptr() const;
84
86
87
90 void SetDefaultOn(bool aDefaultOn) { mDefaultOn = aDefaultOn; }
91
93 bool IsDefaultOn() const { return mDefaultOn; }
94
97 virtual bool IsExternallyControlled() const { return false; }
98
101 void SetDebug(bool aDebug) { mDebug = aDebug; }
102
105 bool DebugEnabled() const { return mDebug; }
107
109
110
111 bool AddEffect(WsfEW_Effect* aEffectPtr);
112
113 bool EffectIsAvailable(WsfStringId aEffectNameId) const;
114
115 unsigned int GetEffectCount() { return static_cast<unsigned int>(mEffects.size()); }
116
117 WsfEW_Effect* GetEffect(unsigned int aIndex) const;
118 WsfEW_Effect* GetEffect(WsfStringId aEffectNameId) const;
119
120 const EffectPtrVec& GetEffects() const { return mEffects; }
121
122 WsfEW_Effect* SelectUnmitigatedEffect(unsigned int aSystemFunctionMask);
123 WsfEW_Effect* SelectUnmitigatedEffect(unsigned int aIndex, unsigned int aSystemFunctionMask);
124
125 bool SetDeltaGainEffect(double aSimTime,
126 WsfStringId aEffectId,
127 bool aDebug,
128 double aJammingPowerGain,
129 WsfStringId aSystemTypeId,
130 WsfStringId aSystemFunctionID);
131
132 bool HasFrequencyAgilityEffect() const;
133
135
137
138 bool CanApplyTechnique(unsigned int aSystemFunctionMask) const;
139
141 virtual std::vector<WsfEW_Types::TechniqueId>* GetMitigatedTechniqueIds() { return nullptr; }
142
144 virtual std::vector<WsfEW_Types::TechniqueId>* GetMitigatedTechniqueClassIds() { return nullptr; }
145
148 virtual WsfStringId GetMitigationClassId() const { return WsfStringId(); }
150
151protected:
152 WsfEW_Technique(const WsfEW_Technique& aSrc);
153
154 bool FindEffectIndex(WsfStringId aEffectNameId, unsigned int& aIndex) const;
155
156private:
157 void SelectDefaultUnmitigatedEffects(EffectPtrVec aEffectList, unsigned int aSystemFunctionMask);
158
159 bool mDebug;
160 EffectPtrVec mEffects;
161 bool mDefaultOn;
162 WsfEW_EA_EP* mEA_EP_Ptr;
163};
164
165#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfEM_Xmtr.hpp:55
Definition WsfEW_EA_EP.hpp:38
Definition WsfEW_EA.hpp:37
Definition WsfEW_EP.hpp:36
Definition WsfEW_Effect.hpp:45
Definition WsfEW_Technique.hpp:37
const EffectPtrVec & GetEffects() const
Definition WsfEW_Technique.hpp:120
void SetDebug(bool aDebug)
Definition WsfEW_Technique.hpp:101
WsfEW_Technique()
Definition WsfEW_Technique.cpp:33
void SetEA_EP_Ptr(WsfEW_EA_EP *aEA_Ptr)
Definition WsfEW_Technique.hpp:70
virtual bool Initialize(WsfSimulation &aSimulation)
Definition WsfEW_Technique.cpp:71
bool DebugEnabled() const
Definition WsfEW_Technique.hpp:105
virtual bool IsExternallyControlled() const
Definition WsfEW_Technique.hpp:97
void SetDefaultOn(bool aDefaultOn)
Definition WsfEW_Technique.hpp:90
bool IsDefaultOn() const
Get the default 'on' state.
Definition WsfEW_Technique.hpp:93
WsfEW_Technique & operator=(const WsfEW_Technique &)=delete
virtual void RemoveJammerXmtr(unsigned int aXmtrId)
Definition WsfEW_Technique.cpp:122
virtual WsfStringId GetMitigationClassId() const
Definition WsfEW_Technique.hpp:148
virtual std::vector< WsfEW_Types::TechniqueId > * GetMitigatedTechniqueIds()
Returns a pointer to the mitigated techniques list for this technique.
Definition WsfEW_Technique.hpp:141
virtual std::vector< WsfEW_Types::TechniqueId > * GetMitigatedTechniqueClassIds()
Returns a pointer to the mitigated techniques list for this technique.
Definition WsfEW_Technique.hpp:144
std::vector< WsfEW_Effect * > EffectPtrVec
A vector type to hold list of effects.
Definition WsfEW_Technique.hpp:40
WsfEW_EA_EP * GetEA_EP_Ptr() const
Definition WsfEW_Technique.hpp:74
unsigned int GetEffectCount()
Definition WsfEW_Technique.hpp:115
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
virtual WsfObject * Clone() const =0
virtual bool ProcessInput(UtInput &aInput)
Definition WsfObject.cpp:140
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Copyrights Multiple, All Rights Reserved