WSF
WsfEW_SLC_DegradeEffect.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_SLC_DEGRADEEFFECT_HPP
13#define WSFEW_SLC_DEGRADEEFFECT_HPP
14
15#include "wsf_mil_export.h"
16
17#include <iosfwd>
18#include <map>
19
20class UtInput;
21
22#include "WsfEM_Interaction.hpp"
23#include "WsfEW_Effect.hpp"
24#include "WsfEW_PowerEffect.hpp"
25#include "WsfEW_Types.hpp"
26
27class WSF_MIL_EXPORT WsfEW_SLC_DegradeEffect : public WsfEW_PowerEffect
28{
29public:
30 // TODO - not too sure I need this enumeration as I can apply all the factors with
31 // default values without any issues or modification to the data if they do not apply
37
40 ~WsfEW_SLC_DegradeEffect() override = default;
41 WsfEW_Effect* Clone() const override;
42 bool Initialize(WsfSimulation& aSimulation) override;
43 bool ProcessInput(UtInput& aInput) override;
44
45 void ApplyUnmitigatedEffect(WsfEW_Effects& aEW_Effects) const override;
46
47 void ApplyMitigatedEffect(WsfEW_Effect* aEW_EffectPtr, WsfEW_Effects& aEW_Effects) const override;
48
50
51
52 double GetSLC_DegradationValue(WsfStringId aSystemTypeId) const;
53
54 int GetSLC_ChannelsSaturated(WsfStringId aSystemTypeId) const;
56
58
59
61
62
63protected:
64 class WSF_MIL_EXPORT SLC_DegradeData : public WsfEW_PowerEffect::PowerData
65 {
66 public:
69 ~SLC_DegradeData() override = default;
70
71 bool ProcessInput(UtInput& aInput) override;
72 bool Initialize(WsfSimulation& aSimulation) override;
73
74 EW_EffectData* Clone() const override;
75
76 void Reset() override;
77
82
83 protected:
84 SLC_DegradeData(const SLC_DegradeData& aSrc) = default;
85 };
86
88
90
91 EffectData* NewEffectData() override;
92 EffectData* PropagateEffectDataPtr(WsfStringId aSystemTypeId) override;
94
95private:
96 using SLC_DegradeDataMap =
97 std::map<WsfStringId, SLC_DegradeData*>;
98
99 // Input variables
100 SLC_DegradeDataMap mSLC_DegradeDataMap;
101};
102
103#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Base effect data used to derive from in inheriting effect classes.
Definition WsfEW_Effect.hpp:317
Definition WsfEW_Effect.hpp:45
ModulationType
Definition WsfEW_Effect.hpp:85
Definition WsfEW_Effects.hpp:41
Definition WsfEW_PowerEffect.hpp:78
EffectData * PropagateEffectDataPtr(WsfStringId aSystemTypeId) override
Definition WsfEW_PowerEffect.cpp:486
void ApplyUnmitigatedEffect(WsfEW_Effects &aEW_Effects) const override
Definition WsfEW_PowerEffect.cpp:72
EffectData * NewEffectData() override
Definition WsfEW_PowerEffect.hpp:112
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
int mSLC_ChannelsSaturated
Number of SLC channels occupied by this effect.
Definition WsfEW_SLC_DegradeEffect.hpp:81
SLC_DegradeEffect mPolModEffect
Effect that the SLC degrade technique exhibits.
Definition WsfEW_SLC_DegradeEffect.hpp:79
SLC_DegradeData & operator=(const SLC_DegradeData &)=delete
void Reset() override
Definition WsfEW_SLC_DegradeEffect.cpp:177
SLC_DegradeData()
Definition WsfEW_SLC_DegradeEffect.cpp:120
double mSLC_DegradationValue
Degradation value of this effect.
Definition WsfEW_SLC_DegradeEffect.hpp:80
SLC_DegradeData(const SLC_DegradeData &aSrc)=default
WsfEW_Effect::ModulationType mModulation
Signal modulation output type.
Definition WsfEW_SLC_DegradeEffect.hpp:78
Definition WsfEW_SLC_DegradeEffect.hpp:28
WsfEW_SLC_DegradeEffect & operator=(const WsfEW_SLC_DegradeEffect &)=delete
double GetSLC_DegradationValue(WsfStringId aSystemTypeId) const
Definition WsfEW_SLC_DegradeEffect.cpp:93
WsfEW_SLC_DegradeEffect()
Definition WsfEW_SLC_DegradeEffect.cpp:29
SLC_DegradeEffect
Definition WsfEW_SLC_DegradeEffect.hpp:33
@ cPME_DEGRADE_SLC
Definition WsfEW_SLC_DegradeEffect.hpp:34
@ cPME_SATURATE_SLC
Definition WsfEW_SLC_DegradeEffect.hpp:35
~WsfEW_SLC_DegradeEffect() override=default
int GetSLC_ChannelsSaturated(WsfStringId aSystemTypeId) const
Definition WsfEW_SLC_DegradeEffect.cpp:103
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Copyrights Multiple, All Rights Reserved