←
Documentation
ADS-IDAC Engine
5.0.0
AlarmComponent.cpp
Go to the documentation of this file.
1
// AlarmComponent.cpp: implementation of the AlarmComponent class.
2
//
4
5
#include "
AlarmComponent.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(
AlarmComponent
)
12
using namespace
std;
13
14
16
// Construction/Destruction
18
19
AlarmComponent::AlarmComponent
()
20
{
21
this->
setTypeOfAlarm
(
DisplayType::AlarmComponent
);
22
component_state_that_activate_the_alarm
=
sim::State::Unknown
;
23
}
24
25
AlarmComponent::~AlarmComponent
()
26
{
27
28
}
29
void
AlarmComponent::setComponentStateThatActivateTheAlarm
(
int
n){
component_state_that_activate_the_alarm
= n;}
30
int
AlarmComponent::getComponentStateThatActivateTheAlarm
(){
return
component_state_that_activate_the_alarm
;}
31
void
AlarmComponent::readInfoFromFile
(ifstream &fin){
32
string
str, str1;
33
AlarmControlPanelUnit::readInfoFromFile
(fin);
34
fin >> str;
35
if
(str ==
"ON"
){
36
component_state_that_activate_the_alarm
=
sim::State::On
;}
37
else
if
(str ==
"OFF"
){
38
component_state_that_activate_the_alarm
=
sim::State::Off
;}
39
else
if
(str ==
"OPEN"
){
40
component_state_that_activate_the_alarm
=
sim::State::Open
;}
41
else
if
(str ==
"CLOSE"
){
42
component_state_that_activate_the_alarm
=
sim::State::Close
;}
43
else
{
44
ofstream fout(
"err messages.txt"
, ios::app);
45
cout <<
" AlarmComponent::readInfoFromFile Alarm "
<< this->
getAlarmName
() <<
" whose component_state_that_activate_the_alarm "
46
<<
component_state_that_activate_the_alarm
<<
" can not be recognized."
<< endl;
47
fout <<
r5pars_
.timesno <<
" AlarmComponent::readInfoFromFile Alarm "
<< this->
getAlarmName
() <<
" whose component_state_that_activate_the_alarm "
48
<<
component_state_that_activate_the_alarm
<<
" can not be recognized.\n"
;
49
fout.close();
50
r5pars_
.sim_err =
true
;
51
str1 = this->
getAlarmName
();
52
g_sim
.
Branch_center
.
setTempESMessage
(
"AlarmComponent::readInfoFromFile err"
);
53
g_sim
.
Branch_center
.
setTempTypeOfConsequence
(
Consequence::NoKB
);
54
}
55
}
56
//**********************************************
57
// updateDisplayedAlarmState dtermines the final alarm display state with
58
// consideration of alarm functional state, alarm activation state from the system, and the operator control state
59
//**********************************************
60
int
AlarmComponent::updateDisplayedAlarmState
(
ControlPanelDisplay
&_cpd){
61
DisplayComponentState
*dcs_ptr;
62
int
ctrl_state;
63
if
(this->
getPtrToCorrespondingIndicator
() == 0){
64
this->
setPtrToCorrespondingIndicator
((
SystemDisplay
*) _cpd.
getDisplayFromMap
(this->getCorrespondingIndicatorName()));
65
}
66
if
(this->
getPtrToCorrespondingIndicator
() != 0){
67
ctrl_state = this->
getDisplayedOperatorControlState
();
68
dcs_ptr = (
DisplayComponentState
*) this->
getPtrToCorrespondingIndicator
();
69
if
(this->
getFuncationalState
() ==
sim::State::Succeed
){
70
switch
(ctrl_state){
71
case
sim::State::Off
:
72
this->
setDisplayedAlarmState
(
sim::State::Off
);
73
break
;
74
case
sim::State::Auto
:
75
if
(dcs_ptr->
getDisplayedComponentOperationalState
() ==
component_state_that_activate_the_alarm
){
76
this->
setDisplayedAlarmState
(
sim::State::On
);
77
this->
setTimeAtWhichThisAlarmIsActivated
(
r5pars_
.timesno);
78
}
79
break
;
80
case
sim::State::Reset
:
81
if
(dcs_ptr->
getDisplayedComponentOperationalState
() ==
component_state_that_activate_the_alarm
){
82
this->
setDisplayedAlarmState
(
sim::State::On
);
83
this->
setTimeAtWhichThisAlarmIsActivated
(
r5pars_
.timesno);
84
}
85
else
{
86
this->
setDisplayedAlarmState
(
sim::State::Off
);
87
}
88
break
;
89
default
:
90
r5pars_
.sim_err =
true
;
91
ofstream fout(
"err messages.txt"
, ios::app);
92
cout <<
"AlarmComponent::updateDisplayedAlarmState "
<< this->
getAlarmName
() <<
" its control state "
93
<< ctrl_state <<
" can not be recognized!"
<< endl;
94
fout <<
r5pars_
.timesno <<
" AlarmComponent::updateDisplayedAlarmState "
<< this->
getAlarmName
() <<
" its control state "
95
<< ctrl_state <<
" can not be recognized!\n"
;
96
fout.close();
97
g_sim
.
Branch_center
.
setTempESMessage
(
"AlarmComponent::updateDisplayedAlarmState err"
);
98
g_sim
.
Branch_center
.
setTempTypeOfConsequence
(
Consequence::AdsSimErr
);
99
break
;
100
}
101
}
102
else
{
//alarm fails
103
if
(ctrl_state ==
sim::State::Off
&& this->
getDisplayedAlarmState
() !=
sim::State::Off
){
104
this->
setDisplayedAlarmState
(
sim::State::Off
);
105
}
106
else
{
107
if
(this->
getDisplayedAlarmState
() != this->
getDisplayedAlarmStateWhenFail
()){
108
this->
setDisplayedAlarmState
(this->
getDisplayedAlarmStateWhenFail
());
109
}
110
}
111
}
112
}
113
else
{
114
r5pars_
.sim_err =
true
;
115
g_sim
.
Branch_center
.
setTempESMessage
(
"AlarmComponent::updateDisplayedAlarmState err"
);
116
g_sim
.
Branch_center
.
setTempTypeOfConsequence
(
Consequence::AdsSimErr
);
117
ofstream fout(
"err messages.txt"
, ios::app);
118
cout <<
"AlarmComponent::updateDisplayedAlarmState: Alarm "
<< this->
getAlarmName
() <<
" its corresponding display "
119
<< this->
getCorrespondingIndicatorName
() <<
" can not be found!"
<< endl;
120
fout <<
r5pars_
.timesno <<
" AlarmComponent::updateDisplayedAlarmState: Alarm "
<< this->
getAlarmName
() <<
" its corresponding display "
121
<< this->
getCorrespondingIndicatorName
() <<
" can not be found!\n"
;
122
fout.close();
123
}
124
return
this->
getDisplayedAlarmState
();
125
}
126
void
AlarmComponent::copyAlarmComponent
(
AlarmComponent
&_ac){
127
component_state_that_activate_the_alarm
= _ac.
getComponentStateThatActivateTheAlarm
();
128
this->
copyAlarmControlPanelUnit
(_ac);
129
}
130
void
AlarmComponent::saveAlarmComponentToFile
(ofstream &fout){
131
this->
saveAlarmControlPanelUnitToFile
(fout);
132
fout <<
component_state_that_activate_the_alarm
<<
'\n'
;
133
}
134
void
AlarmComponent::retrieveAlarmComponentFromFile
(ifstream &fin){
135
this->
retrieveAlarmControlPanelUnitFromFile
(fin);
136
fin >>
component_state_that_activate_the_alarm
;
137
}
AlarmComponent.h
DisplayType::AlarmComponent
@ AlarmComponent
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
AlarmComponent
Definition:
AlarmComponent.h:15
AlarmComponent::~AlarmComponent
virtual ~AlarmComponent()
Definition:
AlarmComponent.cpp:25
AlarmComponent::AlarmComponent
AlarmComponent()
Definition:
AlarmComponent.cpp:19
AlarmComponent::copyAlarmComponent
void copyAlarmComponent(AlarmComponent &)
Definition:
AlarmComponent.cpp:126
AlarmComponent::retrieveAlarmComponentFromFile
void retrieveAlarmComponentFromFile(std::ifstream &)
Definition:
AlarmComponent.cpp:134
AlarmComponent::getComponentStateThatActivateTheAlarm
int getComponentStateThatActivateTheAlarm()
Definition:
AlarmComponent.cpp:30
AlarmComponent::saveAlarmComponentToFile
void saveAlarmComponentToFile(std::ofstream &)
Definition:
AlarmComponent.cpp:130
AlarmComponent::setComponentStateThatActivateTheAlarm
void setComponentStateThatActivateTheAlarm(int state)
Definition:
AlarmComponent.cpp:29
AlarmComponent::updateDisplayedAlarmState
int updateDisplayedAlarmState(ControlPanelDisplay &)
Definition:
AlarmComponent.cpp:60
AlarmComponent::readInfoFromFile
void readInfoFromFile(std::ifstream &)
Definition:
AlarmComponent.cpp:31
AlarmComponent::component_state_that_activate_the_alarm
int component_state_that_activate_the_alarm
Definition:
AlarmComponent.h:28
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
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
DisplayComponentState
Definition:
DisplayComponentState.h:13
DisplayComponentState::getDisplayedComponentOperationalState
int getDisplayedComponentOperationalState()
Definition:
DisplayComponentState.cpp:87
SystemAlarm::setTypeOfAlarm
void setTypeOfAlarm(DisplayType type)
Definition:
SystemAlarm.cpp:27
SystemDisplay
Definition:
SystemDisplay.h:12
r5pars_
struct @0 r5pars_
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::Open
constexpr int Open
Definition:
SimConstants.h:116
sim::State::Auto
constexpr int Auto
Definition:
SimConstants.h:112
sim::State::Close
constexpr int Close
Definition:
SimConstants.h:117
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
AlarmComponent.cpp
Generated by
1.9.4