←
Documentation
ADS-IDAC Engine
5.0.0
AlarmParameter.cpp
Go to the documentation of this file.
1
// AlarmParameter.cpp: implementation of the AlarmParameter class.
2
//
4
5
#include "
AlarmParameter.h
"
6
#include "../Branch/BranchRecord.h"
7
#include <boost/serialization/export.hpp>
8
#include "../Global/SimulationContext.h"
9
#include <boost/archive/binary_oarchive.hpp>
10
#include <boost/archive/binary_iarchive.hpp>
11
BOOST_CLASS_EXPORT_IMPLEMENT(
AlarmParameter
)
12
using namespace
std;
13
14
16
// Construction/Destruction
18
19
AlarmParameter::AlarmParameter
()
20
{
21
this->
setTypeOfAlarm
(
DisplayType::AlarmParameter
);
22
threshold_value_that_activate_the_alarm
= -9999.0;
23
relational_operator_to_activate_the_alarm
=
sim::State::Unknown
;
24
}
25
26
AlarmParameter::~AlarmParameter
()
27
{
28
29
}
30
void
AlarmParameter::readInfoFromFile
(ifstream &fin){
31
string
str;
32
AlarmControlPanelUnit::readInfoFromFile
(fin);
33
fin >> str >>
threshold_value_that_activate_the_alarm
;
34
35
if
(str ==
"GT"
) {
36
relational_operator_to_activate_the_alarm
=
sim::Compare::GT
;
37
}
38
else
if
(str ==
"GE"
){
39
relational_operator_to_activate_the_alarm
=
sim::Compare::GE
;
40
}
41
else
if
(str ==
"EQ"
){
42
relational_operator_to_activate_the_alarm
=
sim::Compare::EQ
;
43
}
44
else
if
(str ==
"LE"
){
45
relational_operator_to_activate_the_alarm
=
sim::Compare::LE
;
46
}
47
else
if
(str ==
"LT"
){
48
relational_operator_to_activate_the_alarm
=
sim::Compare::LT
;
49
}
50
else
{
51
r5pars_
.sim_err =
true
;
52
g_sim
.
Branch_center
.
setTempESMessage
(
"AlarmParameter::readInfoFromFile err"
);
53
g_sim
.
Branch_center
.
setTempTypeOfConsequence
(
Consequence::NoKB
);
54
ofstream fout(
"err messages.txt"
, ios::app);
55
cout <<
"AlarmParameter::readInfoFromFile: Alarm "
<< this->
getAlarmName
() <<
" its relational operator "
56
<< str <<
" can not be recognized!"
<< endl;
57
fout <<
r5pars_
.timesno <<
" AlarmParameter::readInfoFromFile: Alarm "
<< this->
getAlarmName
() <<
" its relational operator "
58
<< str <<
" can not be recognized!\n"
;
59
fout.close();
60
}
61
}
62
void
AlarmParameter::setThresholdValueThatActivateTheAlarm
(
double
x){
threshold_value_that_activate_the_alarm
= x;}
63
void
AlarmParameter::setRelationalOperatorToActivateTheAlarm
(
int
n){
relational_operator_to_activate_the_alarm
= n;}
64
double
AlarmParameter::getThresholdValueThatActivateTheAlarm
(){
return
threshold_value_that_activate_the_alarm
;}
65
int
AlarmParameter::getRelationalOperatorToActivateTheAlarm
(){
return
relational_operator_to_activate_the_alarm
;}
66
int
AlarmParameter::updateDisplayedAlarmState
(
ControlPanelDisplay
&_cp){
67
DisplayParameterValue
*dpv_ptr;
68
SystemDisplay
*d_element;
69
double
parameter_value;
70
int
ctrl_state;
71
d_element = 0;
72
if
(this->
getPtrToCorrespondingIndicator
() == 0){
73
this->
setPtrToCorrespondingIndicator
((
SystemDisplay
*) _cp.
getDisplayFromMap
(this->getCorrespondingIndicatorName()));
74
}
75
if
(this->
getPtrToCorrespondingIndicator
() != 0){
76
ctrl_state = this->
getDisplayedOperatorControlState
();
77
dpv_ptr = (
DisplayParameterValue
*) this->
getPtrToCorrespondingIndicator
();
78
if
(this->
getFuncationalState
() ==
sim::State::Succeed
){
79
parameter_value = dpv_ptr->
getDisplayedParameterValue
();
80
if
(ctrl_state ==
sim::State::Off
){
81
this->
setDisplayedAlarmState
(
sim::State::Off
);
82
}
83
else
if
(ctrl_state ==
sim::State::Auto
){
84
switch
(
relational_operator_to_activate_the_alarm
){
85
case
sim::Compare::GT
:
86
if
(parameter_value >
threshold_value_that_activate_the_alarm
){
87
this->
setDisplayedAlarmState
(
sim::State::On
);
88
this->
setTimeAtWhichThisAlarmIsActivated
(
r5pars_
.timesno);
89
}
90
break
;
91
case
sim::Compare::GE
:
92
if
(parameter_value >=
threshold_value_that_activate_the_alarm
){
93
this->
setDisplayedAlarmState
(
sim::State::On
);
94
this->
setTimeAtWhichThisAlarmIsActivated
(
r5pars_
.timesno);
95
}
96
break
;
97
case
sim::Compare::EQ
:
98
if
(parameter_value ==
threshold_value_that_activate_the_alarm
){
99
this->
setDisplayedAlarmState
(
sim::State::On
);
100
this->
setTimeAtWhichThisAlarmIsActivated
(
r5pars_
.timesno);
101
}
102
break
;
103
case
sim::Compare::LE
:
104
if
(parameter_value <=
threshold_value_that_activate_the_alarm
){
105
this->
setDisplayedAlarmState
(
sim::State::On
);
106
this->
setTimeAtWhichThisAlarmIsActivated
(
r5pars_
.timesno);
107
}
108
break
;
109
case
sim::Compare::LT
:
110
if
(parameter_value <
threshold_value_that_activate_the_alarm
){
111
this->
setDisplayedAlarmState
(
sim::State::On
);
112
this->
setTimeAtWhichThisAlarmIsActivated
(
r5pars_
.timesno);
113
}
114
break
;
115
default
:
116
r5pars_
.sim_err =
true
;
117
g_sim
.
Branch_center
.
setTempESMessage
(
"AlarmParameter::updateDisplayedAlarmState err"
);
118
g_sim
.
Branch_center
.
setTempTypeOfConsequence
(
Consequence::AdsSimErr
);
119
ofstream fout(
"err messages.txt"
, ios::app);
120
cout <<
"AlarmParameter::updateDisplayedAlarmState: Alarm "
<< this->
getAlarmName
() <<
" its relational operator "
121
<<
relational_operator_to_activate_the_alarm
<<
" can not be recognized!"
<< endl;
122
fout <<
r5pars_
.timesno <<
" AlarmParameter::updateDisplayedAlarmState: Alarm "
<< this->
getAlarmName
() <<
" its relational operator "
123
<<
relational_operator_to_activate_the_alarm
<<
" can not be recognized!\n"
;
124
fout.close();
125
break
;
126
}
127
}
128
else
if
(ctrl_state ==
sim::State::Reset
){
129
switch
(
relational_operator_to_activate_the_alarm
){
130
case
sim::Compare::GT
:
131
if
(parameter_value >
threshold_value_that_activate_the_alarm
){
132
this->
setDisplayedAlarmState
(
sim::State::On
);
133
this->
setTimeAtWhichThisAlarmIsActivated
(
r5pars_
.timesno);
134
}
135
// allow alarm reset
136
else
{
137
this->
setDisplayedAlarmState
(
sim::State::Off
);
138
}
139
break
;
140
case
sim::Compare::GE
:
141
if
(parameter_value >=
threshold_value_that_activate_the_alarm
){
142
this->
setDisplayedAlarmState
(
sim::State::On
);
143
this->
setTimeAtWhichThisAlarmIsActivated
(
r5pars_
.timesno);
144
}
145
else
{
146
this->
setDisplayedAlarmState
(
sim::State::Off
);
147
}
148
break
;
149
case
sim::Compare::EQ
:
150
if
(parameter_value ==
threshold_value_that_activate_the_alarm
){
151
this->
setTimeAtWhichThisAlarmIsActivated
(
r5pars_
.timesno);
152
this->
setDisplayedAlarmState
(
sim::State::On
);
153
}
154
else
{
155
this->
setDisplayedAlarmState
(
sim::State::Off
);
156
}
157
break
;
158
case
sim::Compare::LE
:
159
if
(parameter_value <=
threshold_value_that_activate_the_alarm
){
160
this->
setDisplayedAlarmState
(
sim::State::On
);
161
this->
setTimeAtWhichThisAlarmIsActivated
(
r5pars_
.timesno);
162
}
163
else
{
164
this->
setDisplayedAlarmState
(
sim::State::Off
);
165
}
166
break
;
167
case
sim::Compare::LT
:
168
if
(parameter_value <
threshold_value_that_activate_the_alarm
){
169
this->
setDisplayedAlarmState
(
sim::State::On
);
170
this->
setTimeAtWhichThisAlarmIsActivated
(
r5pars_
.timesno);
171
}
172
else
{
173
this->
setDisplayedAlarmState
(
sim::State::Off
);
174
}
175
break
;
176
default
:
177
r5pars_
.sim_err =
true
;
178
g_sim
.
Branch_center
.
setTempESMessage
(
"AlarmParameter::updateDisplayedAlarmState err"
);
179
g_sim
.
Branch_center
.
setTempTypeOfConsequence
(
Consequence::AdsSimErr
);
180
ofstream fout(
"err messages.txt"
, ios::app);
181
cout <<
"AlarmParameter::updateDisplayedAlarmState: Alarm "
<< this->
getAlarmName
() <<
" its relational operator "
182
<<
relational_operator_to_activate_the_alarm
<<
" can not be recognized!"
<< endl;
183
fout <<
r5pars_
.timesno <<
" AlarmParameter::updateDisplayedAlarmState: Alarm "
<< this->
getAlarmName
() <<
" its relational operator "
184
<<
relational_operator_to_activate_the_alarm
<<
" can not be recognized!\n"
;
185
fout.close();
186
break
;
187
}
188
}
189
else
{}
190
}
191
else
{
//alarm fails
192
if
(ctrl_state ==
sim::State::Off
&& this->
getDisplayedAlarmState
() !=
sim::State::Off
){
193
this->
setDisplayedAlarmState
(
sim::State::Off
);
194
}
195
else
{
196
if
(this->
getDisplayedAlarmState
() != this->
getDisplayedAlarmStateWhenFail
()){
197
this->
setDisplayedAlarmState
(this->
getDisplayedAlarmStateWhenFail
());
198
}
199
}
200
}
201
}
202
else
{
203
r5pars_
.sim_err =
true
;
204
g_sim
.
Branch_center
.
setTempESMessage
(
"AlarmParameter::updateDisplayedAlarmState err"
);
205
g_sim
.
Branch_center
.
setTempTypeOfConsequence
(
Consequence::AdsSimErr
);
206
ofstream fout(
"err messages.txt"
, ios::app);
207
cout <<
"AlarmParameter::updateDisplayedAlarmState: Alarm "
<< this->
getAlarmName
() <<
" its corresponding display "
208
<< this->
getCorrespondingIndicatorName
() <<
" can not be found!"
<< endl;
209
fout <<
r5pars_
.timesno <<
" AlarmParameter::updateDisplayedAlarmState: Alarm "
<< this->
getAlarmName
() <<
" its corresponding display "
210
<< this->
getCorrespondingIndicatorName
() <<
" can not be found!\n"
;
211
fout.close();
212
}
213
return
this->
getDisplayedAlarmState
();
214
}
215
void
AlarmParameter::copyAlarmParameter
(
AlarmParameter
&_ap){
216
threshold_value_that_activate_the_alarm
= _ap.
getThresholdValueThatActivateTheAlarm
();
217
relational_operator_to_activate_the_alarm
= _ap.
getRelationalOperatorToActivateTheAlarm
();
218
AlarmControlPanelUnit::copyAlarmControlPanelUnit
(_ap);
219
}
220
void
AlarmParameter::saveAlarmParameterToFile
(ofstream &fout){
221
this->
saveAlarmControlPanelUnitToFile
(fout);
222
fout <<
threshold_value_that_activate_the_alarm
<<
' '
223
<<
relational_operator_to_activate_the_alarm
<<
'\n'
;
224
}
225
void
AlarmParameter::retrieveAlarmParameterFromFile
(ifstream &fin){
226
this->
retrieveAlarmControlPanelUnitFromFile
(fin);
227
fin >>
threshold_value_that_activate_the_alarm
>>
relational_operator_to_activate_the_alarm
;
228
}
AlarmParameter.h
DisplayType::AlarmParameter
@ AlarmParameter
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
AlarmControlPanelUnit::getDisplayedAlarmStateWhenFail
int getDisplayedAlarmStateWhenFail()
Definition:
AlarmControlPanelUnit.cpp:30
AlarmControlPanelUnit::retrieveAlarmControlPanelUnitFromFile
void retrieveAlarmControlPanelUnitFromFile(std::ifstream &)
Definition:
AlarmControlPanelUnit.cpp:47
AlarmControlPanelUnit::setPtrToCorrespondingIndicator
void setPtrToCorrespondingIndicator(SystemDisplay *ptr)
Definition:
AlarmControlPanelUnit.cpp:32
AlarmControlPanelUnit::saveAlarmControlPanelUnitToFile
void saveAlarmControlPanelUnitToFile(std::ofstream &)
Definition:
AlarmControlPanelUnit.cpp:43
AlarmControlPanelUnit::getPtrToCorrespondingIndicator
SystemDisplay * getPtrToCorrespondingIndicator()
Definition:
AlarmControlPanelUnit.cpp:31
AlarmControlPanelUnit::getFuncationalState
int getFuncationalState()
Definition:
AlarmControlPanelUnit.cpp:29
AlarmControlPanelUnit::readInfoFromFile
void readInfoFromFile(std::ifstream &)
Definition:
AlarmControlPanelUnit.cpp:35
AlarmControlPanelUnit::copyAlarmControlPanelUnit
void copyAlarmControlPanelUnit(AlarmControlPanelUnit &)
Definition:
AlarmControlPanelUnit.cpp:38
AlarmElement::setTimeAtWhichThisAlarmIsActivated
void setTimeAtWhichThisAlarmIsActivated(double)
Definition:
AlarmElement.cpp:60
AlarmElement::getCorrespondingIndicatorName
std::string getCorrespondingIndicatorName()
Definition:
AlarmElement.cpp:42
AlarmElement::setDisplayedAlarmState
void setDisplayedAlarmState(int)
Definition:
AlarmElement.cpp:41
AlarmElement::getAlarmName
std::string getAlarmName()
Definition:
AlarmElement.cpp:35
AlarmElement::getDisplayedOperatorControlState
int getDisplayedOperatorControlState()
Definition:
AlarmElement.cpp:57
AlarmElement::getDisplayedAlarmState
int getDisplayedAlarmState()
Definition:
AlarmElement.cpp:43
AlarmParameter
Definition:
AlarmParameter.h:14
AlarmParameter::getThresholdValueThatActivateTheAlarm
double getThresholdValueThatActivateTheAlarm()
Definition:
AlarmParameter.cpp:64
AlarmParameter::threshold_value_that_activate_the_alarm
double threshold_value_that_activate_the_alarm
Definition:
AlarmParameter.h:29
AlarmParameter::readInfoFromFile
void readInfoFromFile(std::ifstream &)
Definition:
AlarmParameter.cpp:30
AlarmParameter::retrieveAlarmParameterFromFile
void retrieveAlarmParameterFromFile(std::ifstream &)
Definition:
AlarmParameter.cpp:225
AlarmParameter::getRelationalOperatorToActivateTheAlarm
int getRelationalOperatorToActivateTheAlarm()
Definition:
AlarmParameter.cpp:65
AlarmParameter::relational_operator_to_activate_the_alarm
int relational_operator_to_activate_the_alarm
Definition:
AlarmParameter.h:30
AlarmParameter::saveAlarmParameterToFile
void saveAlarmParameterToFile(std::ofstream &)
Definition:
AlarmParameter.cpp:220
AlarmParameter::~AlarmParameter
virtual ~AlarmParameter()
Definition:
AlarmParameter.cpp:26
AlarmParameter::setRelationalOperatorToActivateTheAlarm
void setRelationalOperatorToActivateTheAlarm(int)
Definition:
AlarmParameter.cpp:63
AlarmParameter::updateDisplayedAlarmState
int updateDisplayedAlarmState(ControlPanelDisplay &)
Definition:
AlarmParameter.cpp:66
AlarmParameter::AlarmParameter
AlarmParameter()
Definition:
AlarmParameter.cpp:19
AlarmParameter::setThresholdValueThatActivateTheAlarm
void setThresholdValueThatActivateTheAlarm(double)
Definition:
AlarmParameter.cpp:62
AlarmParameter::copyAlarmParameter
void copyAlarmParameter(AlarmParameter &)
Definition:
AlarmParameter.cpp:215
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
ControlPanelDisplay
Definition:
ControlPanelDisplay.h:26
ControlPanelDisplay::getDisplayFromMap
SystemDisplay * getDisplayFromMap(std::string)
Definition:
ControlPanelDisplay.cpp:189
DisplayParameterValue
Definition:
DisplayParameterValue.h:16
DisplayParameterValue::getDisplayedParameterValue
double getDisplayedParameterValue()
Definition:
DisplayParameterValue.cpp:29
SystemAlarm::setTypeOfAlarm
void setTypeOfAlarm(DisplayType type)
Definition:
SystemAlarm.cpp:27
SystemDisplay
Definition:
SystemDisplay.h:12
r5pars_
struct @0 r5pars_
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::EQ
constexpr int EQ
Definition:
SimConstants.h:89
sim::State::On
constexpr int On
Definition:
SimConstants.h:105
sim::State::Off
constexpr int Off
Definition:
SimConstants.h:106
sim::State::Succeed
constexpr int Succeed
Definition:
SimConstants.h:104
sim::State::Auto
constexpr int Auto
Definition:
SimConstants.h:112
sim::State::Reset
constexpr int Reset
Definition:
SimConstants.h:113
sim::State::Unknown
constexpr int Unknown
Definition:
SimConstants.h:120
SimulationContext::Branch_center
BranchRecord Branch_center
Dynamic event tree state.
Definition:
SimulationContext.h:45
src
ADSIDAC
ControlPanel
AlarmParameter.cpp
Generated by
1.9.4