←
Documentation
ADS-IDAC Engine
5.0.0
KBExpectedParameterValueUnit.cpp
Go to the documentation of this file.
1
// KBExpectedParameterValueUnit.cpp: implementation of the KBExpectedParameterValueUnit class.
2
//
4
5
#include "
KBExpectedParameterValueUnit.h
"
6
#include "../Branch/BranchRecord.h"
7
#include "../CalculationAid/CalculationAid.h"
//Y.L.
8
#include <boost/serialization/export.hpp>
9
#include "../Global/SimulationContext.h"
10
#include <boost/archive/binary_oarchive.hpp>
11
#include <boost/archive/binary_iarchive.hpp>
12
BOOST_CLASS_EXPORT_IMPLEMENT(
KBExpectedParameterValueUnit
)
13
using namespace
std;
14
15
17
// Construction/Destruction
19
20
KBExpectedParameterValueUnit::KBExpectedParameterValueUnit
()
21
{
22
this->
setTypeOfExpectation
(
sim::Comm::ParameterValue
);
23
logical_relation
=
sim::None
;
24
expected_value1
= 0.0;
25
expected_value2
= 0.0;
26
}
27
28
KBExpectedParameterValueUnit::~KBExpectedParameterValueUnit
()
29
{
30
31
}
32
void
KBExpectedParameterValueUnit::setLogicalRelation
(
int
n){
logical_relation
= n;}
33
void
KBExpectedParameterValueUnit::setExpectedValue1
(
double
x){
expected_value1
= x;}
34
void
KBExpectedParameterValueUnit::setExpectedValue2
(
double
x){
expected_value2
= x;}
35
void
KBExpectedParameterValueUnit::readInfoFromFile
(ifstream &fin){
36
KBElement::readInfoFromFile
(fin);
37
//each expected value is either a number or "ModeV <polynomial name>" (value taken from a polynomial curve)
38
string
str1, str2;
39
fin >>
logical_relation
;
40
fin >> str1;
41
if
(str1==
"ModeV"
){
42
value1_mode
= 1;
43
fin >>
value1_poly_name
;
44
}
45
else
46
{
47
value1_mode
= 0;
48
expected_value1
= atof(str1.c_str());
49
}
50
fin >> str2;
51
if
(str2 ==
"ModeV"
){
52
value2_mode
= 1;
53
fin >>
value2_poly_name
;
54
}
55
else
{
56
value2_mode
= 0;
57
expected_value2
= atof(str2.c_str());
58
}
59
poly1_pt
= 0;
60
poly2_pt
= 0;
61
}
62
int
KBExpectedParameterValueUnit::getLogicalRelation
(){
return
logical_relation
;}
63
double
KBExpectedParameterValueUnit::getExpectedValue1
(){
return
expected_value1
;}
64
double
KBExpectedParameterValueUnit::getExpectedValue2
(){
return
expected_value2
;}
65
int
KBExpectedParameterValueUnit::checkForMatch
(
string
_par_name,
double
_par_value,
int
_operator){
66
string
str =
KBElement::getInfoName
();
67
int
n_return = 0;
68
bool
found =
true
;
69
BiResult
BiResult1, BiResult2;
70
if
(_par_name.compare(
KBElement::getInfoName
()) == 0){
71
//polynomial mode: refresh the expected values from their curves
72
if
(
value1_mode
== 1)
73
{
74
if
(
poly1_pt
== 0){
//Problem is here
75
poly1_pt
=
g_sim
.
All_polynomial
.
checkExistanceOfPolynomial
(
value1_poly_name
);}
76
BiResult1 =
poly1_pt
->
GetCurveValue
(_operator);
77
if
(BiResult1.
bool_result
==
false
){
78
found =
false
;}
79
else
{
80
expected_value1
= BiResult1.
float_result
;
81
}
82
}
83
if
(
value2_mode
== 1)
84
{
85
if
(
poly2_pt
== 0){
86
poly2_pt
=
g_sim
.
All_polynomial
.
checkExistanceOfPolynomial
(
value2_poly_name
);}
87
BiResult2 =
poly2_pt
->
GetCurveValue
(_operator);
88
if
(BiResult2.
bool_result
==
false
){
89
found =
false
;}
90
else
{
expected_value2
= BiResult2.
float_result
;}
91
}
92
if
(found ==
true
)
93
{
94
switch
(
logical_relation
){
95
case
sim::Compare::GT
:
96
if
(_par_value >
expected_value1
){
97
n_return =
ExpectationElement::updateExpectation
(
sim::State::Succeed
);
98
}
99
else
{
100
n_return =
ExpectationElement::updateExpectation
(
sim::State::Failed
);
101
}
102
break
;
103
case
sim::Compare::GE
:
104
if
(_par_value >=
expected_value1
){
105
n_return =
ExpectationElement::updateExpectation
(
sim::State::Succeed
);
106
}
107
else
{
108
n_return =
ExpectationElement::updateExpectation
(
sim::State::Failed
);
109
}
110
break
;
111
case
sim::Compare::EQ
:
112
if
(_par_value ==
expected_value1
){
113
n_return =
ExpectationElement::updateExpectation
(
sim::State::Succeed
);
114
}
115
else
{
116
n_return =
ExpectationElement::updateExpectation
(
sim::State::Failed
);
117
}
118
break
;
119
case
sim::Compare::LE
:
120
if
(_par_value <=
expected_value1
){
121
n_return =
ExpectationElement::updateExpectation
(
sim::State::Succeed
);
122
}
123
else
{
124
n_return =
ExpectationElement::updateExpectation
(
sim::State::Failed
);
125
}
126
break
;
127
case
sim::Compare::LT
:
128
if
(_par_value <
expected_value1
){
129
n_return =
ExpectationElement::updateExpectation
(
sim::State::Succeed
);
130
}
131
else
{
132
n_return =
ExpectationElement::updateExpectation
(
sim::State::Failed
);
133
}
134
break
;
135
case
sim::Compare::Between
:
136
if
(_par_value >=
expected_value1
&& _par_value <=
expected_value2
){
137
n_return =
ExpectationElement::updateExpectation
(
sim::State::Succeed
);
138
}
139
else
{
140
n_return =
ExpectationElement::updateExpectation
(
sim::State::Failed
);
141
}
142
break
;
143
default
:
144
ofstream fout(
"err messages.txt"
, ios::app);
145
cout <<
"KBExpectedParameterTrendUnit::checkForMatch par_name: "
<< _par_name <<
" whose logical relation: "
<<
logical_relation
<<
" can not be recognized."
<< endl;
146
fout <<
r5pars_
.timesno <<
" KBExpectedParameterTrendUnit::checkForMatch par_name: "
<< _par_name <<
" whose logical relation: "
<<
logical_relation
<<
" can not be recognized.\n"
;
147
fout.close();
148
r5pars_
.sim_err =
true
;
149
g_sim
.
Branch_center
.
setTempESMessage
(
"KBExpectedParameterValueUnit::checkForMatch err."
);
150
g_sim
.
Branch_center
.
setTempTypeOfConsequence
(
Consequence::AdsSimErr
);
151
break
;
152
}
153
}
154
else
{n_return = 0;}
155
}
156
else
{
157
n_return = 0;
158
}
159
return
n_return;
160
}
161
162
void
KBExpectedParameterValueUnit::copyKBExpectedParameterValueUnit
(
KBExpectedParameterValueUnit
&_epp){
163
KBElement::copyKBElement
((
KBElement
&) _epp);
164
ExpectationElement::copyExpectationElement
((
ExpectationElement
&) _epp);
165
logical_relation
= _epp.
getLogicalRelation
();
166
expected_value1
= _epp.
getExpectedValue1
();
167
expected_value2
= _epp.
getExpectedValue2
();
168
value1_mode
= _epp.
value1_mode
;
169
value2_mode
= _epp.
value2_mode
;
170
value1_poly_name
= _epp.
value1_poly_name
;
171
value2_poly_name
= _epp.
value2_poly_name
;
172
poly1_pt
= 0;
173
poly2_pt
= 0;
174
}
175
void
KBExpectedParameterValueUnit::saveKBExpectedParameterValueUnitToFile
(ofstream &fout){
176
fout <<
"KBExpectedParameterValueUnit "
<<
logical_relation
<<
' '
<<
expected_value1
<<
' '
<<
expected_value2
<<
'\n'
;
177
this->
saveExpectationElementToFile
(fout);
178
this->
saveKBElementToFile
(fout);
179
}
180
void
KBExpectedParameterValueUnit::retrieveKBExpectedParameterValueUnitFromFile
(ifstream &fin){
181
string
str;
182
fin >> str >>
logical_relation
>>
expected_value1
>>
expected_value2
;
183
if
(str !=
"KBExpectedParameterValueUnit"
){
184
ofstream fout(
"err messages.txt"
, ios::app);
185
cout <<
"KBExpectedParameterValueUnit::retrieveKBExpectedParameterValueUnitFromFile in previous function"
<< endl;
186
fout <<
r5pars_
.timesno <<
" KBExpectedParameterValueUnit::retrieveKBExpectedParameterValueUnitFromFile in previous function\n"
;
187
fout.close();
188
r5pars_
.sim_err =
true
;
189
g_sim
.
Branch_center
.
setTempESMessage
(
"KBExpectedParameterTrendUnit::retrieveKBExpectedParameterTrendUnitFromFile Prior err."
);
190
g_sim
.
Branch_center
.
setTempTypeOfConsequence
(
Consequence::NoKB
);
191
return
;
192
}
193
this->
retrieveExpectationElementFromFile
(fin);
194
this->
retrieveKBElementFromFile
(fin);
195
}
KBExpectedParameterValueUnit.h
Consequence::NoKB
@ NoKB
Consequence::AdsSimErr
@ AdsSimErr
g_sim
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
Definition:
SimulationContext.cpp:7
BiResult
Definition:
BiResult.h:8
BiResult::float_result
float float_result
Definition:
BiResult.h:10
BiResult::bool_result
bool bool_result
Definition:
BiResult.h:11
BranchRecord::setTempTypeOfConsequence
void setTempTypeOfConsequence(Consequence)
Stores the consequence of the end state the running sequence will get.
Definition:
BranchRecord.cpp:1641
BranchRecord::setTempESMessage
void setTempESMessage(std::string)
Stores the description of the end state the running sequence will get if it is terminated (set by mod...
Definition:
BranchRecord.cpp:1640
CalculationAid::checkExistanceOfPolynomial
polynomial * checkExistanceOfPolynomial(std::string)
Definition:
CalculationAid.cpp:62
ExpectationElement
Definition:
ExpectationElement.h:20
ExpectationElement::saveExpectationElementToFile
void saveExpectationElementToFile(std::ofstream &)
Definition:
ExpectationElement.cpp:75
ExpectationElement::retrieveExpectationElementFromFile
void retrieveExpectationElementFromFile(std::ifstream &)
Definition:
ExpectationElement.cpp:78
ExpectationElement::setTypeOfExpectation
void setTypeOfExpectation(int)
Definition:
ExpectationElement.cpp:73
ExpectationElement::updateExpectation
int updateExpectation(int)
Definition:
ExpectationElement.cpp:29
ExpectationElement::copyExpectationElement
void copyExpectationElement(ExpectationElement &)
Definition:
ExpectationElement.cpp:69
KBElement
Definition:
KBElement.h:16
KBElement::readInfoFromFile
void readInfoFromFile(std::ifstream &)
Definition:
KBElement.cpp:27
KBElement::retrieveKBElementFromFile
void retrieveKBElementFromFile(std::ifstream &)
Definition:
KBElement.cpp:36
KBElement::saveKBElementToFile
void saveKBElementToFile(std::ofstream &)
Definition:
KBElement.cpp:33
KBElement::copyKBElement
void copyKBElement(KBElement &)
Definition:
KBElement.cpp:30
KBElement::getInfoName
std::string getInfoName()
Definition:
KBElement.cpp:26
KBExpectedParameterValueUnit
Definition:
KBExpectedParameterValueUnit.h:21
KBExpectedParameterValueUnit::copyKBExpectedParameterValueUnit
void copyKBExpectedParameterValueUnit(KBExpectedParameterValueUnit &)
Definition:
KBExpectedParameterValueUnit.cpp:162
KBExpectedParameterValueUnit::setLogicalRelation
void setLogicalRelation(int)
Definition:
KBExpectedParameterValueUnit.cpp:32
KBExpectedParameterValueUnit::logical_relation
int logical_relation
Definition:
KBExpectedParameterValueUnit.h:60
KBExpectedParameterValueUnit::value2_poly_name
std::string value2_poly_name
Definition:
KBExpectedParameterValueUnit.h:25
KBExpectedParameterValueUnit::KBExpectedParameterValueUnit
KBExpectedParameterValueUnit()
Definition:
KBExpectedParameterValueUnit.cpp:20
KBExpectedParameterValueUnit::poly1_pt
polynomial * poly1_pt
Definition:
KBExpectedParameterValueUnit.h:23
KBExpectedParameterValueUnit::value1_poly_name
std::string value1_poly_name
Definition:
KBExpectedParameterValueUnit.h:26
KBExpectedParameterValueUnit::setExpectedValue2
void setExpectedValue2(double)
Definition:
KBExpectedParameterValueUnit.cpp:34
KBExpectedParameterValueUnit::expected_value1
double expected_value1
Definition:
KBExpectedParameterValueUnit.h:61
KBExpectedParameterValueUnit::checkForMatch
int checkForMatch(std::string, double, int)
Definition:
KBExpectedParameterValueUnit.cpp:65
KBExpectedParameterValueUnit::expected_value2
double expected_value2
Definition:
KBExpectedParameterValueUnit.h:62
KBExpectedParameterValueUnit::saveKBExpectedParameterValueUnitToFile
void saveKBExpectedParameterValueUnitToFile(std::ofstream &)
Definition:
KBExpectedParameterValueUnit.cpp:175
KBExpectedParameterValueUnit::readInfoFromFile
void readInfoFromFile(std::ifstream &)
Definition:
KBExpectedParameterValueUnit.cpp:35
KBExpectedParameterValueUnit::getExpectedValue2
double getExpectedValue2()
Definition:
KBExpectedParameterValueUnit.cpp:64
KBExpectedParameterValueUnit::retrieveKBExpectedParameterValueUnitFromFile
void retrieveKBExpectedParameterValueUnitFromFile(std::ifstream &)
Definition:
KBExpectedParameterValueUnit.cpp:180
KBExpectedParameterValueUnit::setExpectedValue1
void setExpectedValue1(double)
Definition:
KBExpectedParameterValueUnit.cpp:33
KBExpectedParameterValueUnit::~KBExpectedParameterValueUnit
virtual ~KBExpectedParameterValueUnit()
Definition:
KBExpectedParameterValueUnit.cpp:28
KBExpectedParameterValueUnit::value2_mode
bool value2_mode
Definition:
KBExpectedParameterValueUnit.h:27
KBExpectedParameterValueUnit::getExpectedValue1
double getExpectedValue1()
Definition:
KBExpectedParameterValueUnit.cpp:63
KBExpectedParameterValueUnit::getLogicalRelation
int getLogicalRelation()
Definition:
KBExpectedParameterValueUnit.cpp:62
KBExpectedParameterValueUnit::value1_mode
bool value1_mode
Definition:
KBExpectedParameterValueUnit.h:28
KBExpectedParameterValueUnit::poly2_pt
polynomial * poly2_pt
Definition:
KBExpectedParameterValueUnit.h:24
polynomial::GetCurveValue
BiResult GetCurveValue(int)
Definition:
Polynomial.cpp:51
r5pars_
struct @0 r5pars_
sim::Comm::ParameterValue
constexpr int ParameterValue
Definition:
SimConstants.h:286
sim::Compare::GE
constexpr int GE
Definition:
SimConstants.h:88
sim::Compare::GT
constexpr int GT
Definition:
SimConstants.h:87
sim::Compare::LE
constexpr int LE
Definition:
SimConstants.h:90
sim::Compare::LT
constexpr int LT
Definition:
SimConstants.h:91
sim::Compare::Between
constexpr int Between
Definition:
SimConstants.h:92
sim::Compare::EQ
constexpr int EQ
Definition:
SimConstants.h:89
sim::State::Failed
constexpr int Failed
Definition:
SimConstants.h:103
sim::State::Succeed
constexpr int Succeed
Definition:
SimConstants.h:104
sim::None
constexpr int None
Definition:
SimConstants.h:75
SimulationContext::Branch_center
BranchRecord Branch_center
Dynamic event tree state.
Definition:
SimulationContext.h:45
SimulationContext::All_polynomial
CalculationAid All_polynomial
Polynomial calculations.
Definition:
SimulationContext.h:51
src
ADSIDAC
Crew
KBExpectedParameterValueUnit.cpp
Generated by
1.9.4