←
Documentation
ADS-IDAC Engine
5.0.0
InfoChunkMental.cpp
Go to the documentation of this file.
1
// InfoChunkMental.cpp: implementation of the InfoChunkMental class.
2
//
4
5
#include "
InfoChunkMental.h
"
6
#include "../Global/TermConversions.h"
7
#include "../Branch/BranchRecord.h"
8
#include <boost/serialization/export.hpp>
9
#include <boost/archive/binary_oarchive.hpp>
10
#include <boost/archive/binary_iarchive.hpp>
11
#include "../Global/SimulationContext.h"
12
BOOST_CLASS_EXPORT_IMPLEMENT(
InfoChunkMental
)
13
using namespace
std;
14
15
17
// Construction/Destruction
19
20
InfoChunkMental::InfoChunkMental
()
21
{
22
priority
= 0.0;
23
}
24
25
InfoChunkMental::~InfoChunkMental
()
26
{
27
}
28
void
InfoChunkMental::calculatePriority
(){
//NEED MORE WORK
29
priority
= this->
getTotalWeightOfAlarmPerceived
();
30
if
(this->
getStateOfActivation
() ==
sim::State::Done
) {
31
priority
= -100.0;
32
return
;
33
}
34
if
(this->
getStateOfActivation
() ==
sim::State::Active
&& this->
getCurrentGoal
() !=
sim::Goal::NormalOp
) {
35
priority
+= 10.0;
36
}
37
if
(this->
includeActiveDiagnosis
() && this->
getStateOfActivation
() ==
sim::State::Pause
){
38
this->
setStateOfActivation
(
sim::State::Active
);
39
}
40
if
(this->
includeActiveDiagnosis
() && this->
getStateOfActivation
() !=
sim::State::Done
){
41
priority
+= 100.0;
42
}
43
}
44
void
InfoChunkMental::setPriority
(
double
x){
priority
= x;}
45
double
InfoChunkMental::getPriority
(){
return
priority
;}
46
void
InfoChunkMental::clearInfoChunkMental
(){
47
this->
clearInfoChunk
();
48
related_subsystem
.clear();
49
}
50
void
InfoChunkMental::clearInfoChunkMentalPointers
(){
51
InfoChunk::clearInfoChunkPointers
();
52
related_subsystem
.clear();
53
}
54
55
bool
InfoChunkMental::checkWhetherSubSystemIsIncluded
(
int
n){
56
bool
is_included =
false
;
57
list<int>::iterator i_itr;
58
for
(i_itr =
related_subsystem
.begin(); i_itr !=
related_subsystem
.end(); i_itr++){
59
if
(*i_itr == n) is_included =
true
;
60
}
61
return
is_included;
62
}
63
64
int
InfoChunkMental::getRelatedSubSystem
(
int
n){
65
int
n_return = -1;
66
int
i;
67
list<int>::iterator i_itr;
68
i_itr =
related_subsystem
.begin();
69
if
(
related_subsystem
.size() >= n + 1){
70
for
(i = 0; i < n; i++){
71
i_itr++;
72
}
73
n_return = *i_itr;
74
}
75
return
n_return;
76
}
77
78
void
InfoChunkMental::copyInfoChunkMental
(
InfoChunkMental
&_icm){
79
list<int>::iterator rs_itr;
//related_subsystem
80
this->
copyInfoChunk
(_icm);
81
StateOfActivation::copyStateOfActivation
( _icm);
82
for
(rs_itr = _icm.
related_subsystem
.begin(); rs_itr != _icm.
related_subsystem
.end(); rs_itr++){
83
this->
related_subsystem
.push_back(*rs_itr);
84
}
85
priority
= _icm.
getPriority
();
86
}
87
void
InfoChunkMental::saveInfoChunkMentalToFile
(ofstream &fout){
88
list<int>::iterator rs_itr;
89
//
90
fout <<
"InfoChunkMental "
<<
priority
<<
' '
<<
related_subsystem
.size() <<
'\n'
;
91
for
(rs_itr =
related_subsystem
.begin(); rs_itr !=
related_subsystem
.end(); rs_itr++){
92
fout << *rs_itr <<
' '
;
93
}
94
fout <<
'\n'
;
95
this->
saveInfoChunkToFile
(fout);
96
this->
saveStateOfActivationToFile
(fout);
97
}
98
void
InfoChunkMental::retrieveInfoChunkMentalFromFile
(ifstream &fin){
99
int
i, num, i_value;
100
string
str;
101
fin >> str;
102
if
(str !=
"InfoChunkMental"
){
103
ofstream fout(
"err messages.txt"
, ios::app);
104
cout <<
"InfoChunkMental::retrieveInfoChunkMentalFromFile File retrieval error in previous function"
<< endl;
105
fout <<
r5pars_
.timesno <<
" InfoChunkMental::retrieveInfoChunkMentalFromFile File retrieval error in previous function\n"
;
106
fout.close();
107
r5pars_
.sim_err =
true
;
108
g_sim
.
Branch_center
.
setTempESMessage
(
"InfoChunkMental::retrieveInfoChunkMentalFromFile Prior err."
);
109
g_sim
.
Branch_center
.
setTempTypeOfConsequence
(
Consequence::NoKB
);
110
return
;
111
}
112
fin >>
priority
>> num;
113
for
(i = 0; i < num; i++){
114
fin >> i_value;
115
related_subsystem
.push_back(i_value);
116
}
117
this->
retrieveInfoChunkFromFile
(fin);
118
this->
retrieveStateOfActivationFromFile
(fin);
119
}
InfoChunkMental.h
Consequence::NoKB
@ NoKB
g_sim
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
Definition:
SimulationContext.cpp:7
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
InfoChunkMental
Definition:
InfoChunkMental.h:16
InfoChunkMental::clearInfoChunkMental
void clearInfoChunkMental()
Definition:
InfoChunkMental.cpp:46
InfoChunkMental::~InfoChunkMental
virtual ~InfoChunkMental()
Definition:
InfoChunkMental.cpp:25
InfoChunkMental::related_subsystem
std::list< int > related_subsystem
Definition:
InfoChunkMental.h:31
InfoChunkMental::checkWhetherSubSystemIsIncluded
bool checkWhetherSubSystemIsIncluded(int)
Definition:
InfoChunkMental.cpp:55
InfoChunkMental::retrieveInfoChunkMentalFromFile
void retrieveInfoChunkMentalFromFile(std::ifstream &)
Definition:
InfoChunkMental.cpp:98
InfoChunkMental::clearInfoChunkMentalPointers
void clearInfoChunkMentalPointers()
Definition:
InfoChunkMental.cpp:50
InfoChunkMental::calculatePriority
void calculatePriority()
Definition:
InfoChunkMental.cpp:28
InfoChunkMental::saveInfoChunkMentalToFile
void saveInfoChunkMentalToFile(std::ofstream &)
Definition:
InfoChunkMental.cpp:87
InfoChunkMental::setPriority
void setPriority(double)
Definition:
InfoChunkMental.cpp:44
InfoChunkMental::priority
double priority
Definition:
InfoChunkMental.h:47
InfoChunkMental::getPriority
double getPriority()
Definition:
InfoChunkMental.cpp:45
InfoChunkMental::InfoChunkMental
InfoChunkMental()
Definition:
InfoChunkMental.cpp:20
InfoChunkMental::getRelatedSubSystem
int getRelatedSubSystem(int)
Definition:
InfoChunkMental.cpp:64
InfoChunkMental::copyInfoChunkMental
void copyInfoChunkMental(InfoChunkMental &)
Definition:
InfoChunkMental.cpp:78
InfoChunk::getCurrentGoal
int getCurrentGoal()
Definition:
InfoChunk.cpp:82
InfoChunk::clearInfoChunk
void clearInfoChunk()
Definition:
InfoChunk.cpp:24
InfoChunk::clearInfoChunkPointers
void clearInfoChunkPointers()
Definition:
InfoChunk.cpp:41
InfoChunk::includeActiveDiagnosis
bool includeActiveDiagnosis()
Definition:
InfoChunk.cpp:536
InfoChunk::copyInfoChunk
void copyInfoChunk(InfoChunk &)
Definition:
InfoChunk.cpp:1189
InfoChunk::saveInfoChunkToFile
void saveInfoChunkToFile(std::ofstream &)
Definition:
InfoChunk.cpp:1361
InfoChunk::getTotalWeightOfAlarmPerceived
double getTotalWeightOfAlarmPerceived()
Definition:
InfoChunk.cpp:64
InfoChunk::retrieveInfoChunkFromFile
void retrieveInfoChunkFromFile(std::ifstream &)
Definition:
InfoChunk.cpp:1430
StateOfActivation::setStateOfActivation
void setStateOfActivation(int)
Definition:
StateOfActivation.cpp:26
StateOfActivation::saveStateOfActivationToFile
void saveStateOfActivationToFile(std::ofstream &)
Definition:
StateOfActivation.cpp:30
StateOfActivation::getStateOfActivation
int getStateOfActivation()
Definition:
StateOfActivation.cpp:25
StateOfActivation::retrieveStateOfActivationFromFile
void retrieveStateOfActivationFromFile(std::ifstream &)
Definition:
StateOfActivation.cpp:33
StateOfActivation::copyStateOfActivation
void copyStateOfActivation(StateOfActivation &)
Definition:
StateOfActivation.cpp:27
r5pars_
struct @0 r5pars_
sim::Goal::NormalOp
constexpr int NormalOp
Definition:
SimConstants.h:158
sim::State::Done
constexpr int Done
Definition:
SimConstants.h:123
sim::State::Active
constexpr int Active
Definition:
SimConstants.h:118
sim::State::Pause
constexpr int Pause
Definition:
SimConstants.h:119
SimulationContext::Branch_center
BranchRecord Branch_center
Dynamic event tree state.
Definition:
SimulationContext.h:45
src
ADSIDAC
Crew
InfoChunkMental.cpp
Generated by
1.9.4