6#include "../Global/SharedConfig.h"
9#include <boost/serialization/export.hpp>
12#include "../ControlPanel/ControlPanel.h"
13#include "../Procedure/Procedures.h"
14#include "../Global/SimulationContext.h"
15#include <boost/archive/binary_oarchive.hpp>
16#include <boost/archive/binary_iarchive.hpp>
17BOOST_CLASS_EXPORT_IMPLEMENT(
Operator)
86 string str, str1, str_base;
87 double alarm_t_min, alarm_alpha, alarm_beta;
88 double comp_t_min, comp_alpha, comp_beta;
89 double ss_t_min, ss_alpha, ss_beta;
90 double param_t_min, param_alpha, param_beta;
91 double low_info_load_limit, upper_info_load_limit;
98 str +=
"DecisionMaker.txt";
99 fin.open(str.c_str(), ios::in);
100 if (!fin.is_open()) {
101 cout <<
"File: " << str <<
" cound not be found" << endl;
102 ofstream fout(
"err messages.txt", ios::app);
103 fout <<
r5pars_.timesno <<
" File: " << str <<
" cound not be found\n";
114 >> str1 >> low_info_load_limit
115 >> str1 >> upper_info_load_limit
116 >> str1 >> alarm_t_min >> alarm_alpha >> alarm_beta
117 >> str1 >> comp_t_min >> comp_alpha >> comp_beta
118 >> str1 >> ss_t_min >> ss_alpha >> ss_beta
119 >> str1 >> param_t_min >> param_alpha >> param_beta
146 str = str_base +
"KB_ODM_Event_Matrix.txt";
150 str = str_base +
"KB_ODM_Time_Constrained_Input.txt";
154 str = str_base +
"KB_ODM_Scanned_Parameters.txt";
157 str = str_base +
"KB_ODM_Safety_Parameters.txt";
160 str = str_base +
"KB_ODM_Diagnosis_Actions.txt";
166 str +=
"ActionTaker.txt";
167 fin.open(str.c_str(), ios::in);
168 if (!fin.is_open()) {
169 cout <<
"File: " << str <<
" cound not be found" << endl;
170 ofstream fout(
"err messages.txt", ios::app);
171 fout <<
r5pars_.timesno <<
" File: " << str <<
" cound not be found\n";
182 >> str1 >> low_info_load_limit
183 >> str1 >> upper_info_load_limit
184 >> str1 >> alarm_t_min >> alarm_alpha >> alarm_beta
185 >> str1 >> comp_t_min >> comp_alpha >> comp_beta
186 >> str1 >> ss_t_min >> ss_alpha >> ss_beta
187 >> str1 >> param_t_min >> param_alpha >> param_beta
214 str = str_base +
"KB_OAT_Event_Matrix.txt";
218 str = str_base +
"KB_OAT_Time_Constrained_Input.txt";
222 str = str_base +
"KB_OAT_Scanned_Parameters.txt";
225 str = str_base +
"KB_OAT_Safety_Parameters.txt";
228 str = str_base +
"KB_OAT_Diagnosis_Actions.txt";
235 str +=
"Consultant.txt";
236 fin.open(str.c_str(), ios::in);
237 if (!fin.is_open()) {
238 cout <<
"File: " << str <<
" cound not be found" << endl;
239 ofstream fout(
"err messages.txt", ios::app);
240 fout <<
r5pars_.timesno <<
" File: " << str <<
" cound not be found\n";
272 this->
m_RM = make_unique<ReasonMachine>();
274 this->
m_RM->InitiationOfReasonMachineFromInputFile();
276 ofstream fout(
"RMI.txt", ios::out);
277 fout <<
"Reasoning Module Information" <<
'\n';
280 ofstream fout1(
"AuxInfo.txt", ios::out);
281 fout1 <<
"Aux Information" <<
'\n';
284 ofstream fout2(
"Semantic_Base.txt", ios::out);
285 fout2 <<
"ODM's Semantic Pool" <<
'\n';
290 bool found_indicator =
false;
293 if (bf_ptr->getTotalTimeRequired() <
r5pars_.timesno) {
297 if (bf_ptr->getInfoName() == parameter_value_elem->getInfoName()
299 switch (bf_ptr->getTypeOfBias()) {
301 biased_value = parameter_value_elem->getObservedParameterValue() + bf_ptr->getBiasFactor();
302 parameter_value_elem->setObservedParameterValue(biased_value);
305 biased_value = parameter_value_elem->getObservedParameterValue() * bf_ptr->getBiasFactor();
306 parameter_value_elem->setObservedParameterValue(biased_value);
309 parameter_value_elem->setObservedParameterValue(biased_value);
312 if (parameter_value_elem->getObservedParameterValue() <= biased_value) {
313 parameter_value_elem->setObservedParameterValue(biased_value);
317 if (parameter_value_elem->getObservedParameterValue() <= biased_value) {
318 parameter_value_elem->setObservedParameterValue(biased_value);
322 if (parameter_value_elem->getObservedParameterValue() >= biased_value) {
323 parameter_value_elem->setObservedParameterValue(biased_value);
327 if (parameter_value_elem->getObservedParameterValue() >= biased_value) {
328 parameter_value_elem->setObservedParameterValue(biased_value);
339 if (bf_ptr->getInfoName() == parameter_difference_elem->first_indicator.getInfoName()
341 switch (bf_ptr->getTypeOfBias()) {
343 biased_value = parameter_difference_elem->first_mental_parameter.getObservedParameterValue()
344 + bf_ptr->getBiasFactor();
345 parameter_difference_elem->first_mental_parameter.setObservedParameterValue(biased_value);
348 biased_value = parameter_difference_elem->first_mental_parameter.getObservedParameterValue()
349 * bf_ptr->getBiasFactor();
350 parameter_difference_elem->first_mental_parameter.setObservedParameterValue(biased_value);
353 parameter_difference_elem->first_mental_parameter.setObservedParameterValue(biased_value);
356 if (parameter_difference_elem->first_mental_parameter.getObservedParameterValue() <= biased_value) {
357 parameter_difference_elem->first_mental_parameter.setObservedParameterValue(biased_value);
361 if (parameter_difference_elem->first_mental_parameter.getObservedParameterValue() <= biased_value) {
362 parameter_difference_elem->first_mental_parameter.setObservedParameterValue(biased_value);
366 if (parameter_difference_elem->first_mental_parameter.getObservedParameterValue() >= biased_value) {
367 parameter_difference_elem->first_mental_parameter.setObservedParameterValue(biased_value);
371 if (parameter_difference_elem->first_mental_parameter.getObservedParameterValue() >= biased_value) {
372 parameter_difference_elem->first_mental_parameter.setObservedParameterValue(biased_value);
378 if (bf_ptr->getInfoName() == parameter_difference_elem->second_indicator.getInfoName()
380 switch (bf_ptr->getTypeOfBias()) {
382 biased_value = parameter_difference_elem->second_mental_parameter.getObservedParameterValue()
383 + bf_ptr->getBiasFactor();
384 parameter_difference_elem->second_mental_parameter.setObservedParameterValue(biased_value);
387 biased_value = parameter_difference_elem->second_mental_parameter.getObservedParameterValue()
388 * bf_ptr->getBiasFactor();
389 parameter_difference_elem->second_mental_parameter.setObservedParameterValue(biased_value);
392 parameter_difference_elem->second_mental_parameter.setObservedParameterValue(biased_value);
395 if (parameter_difference_elem->second_mental_parameter.getObservedParameterValue() <= biased_value) {
396 parameter_difference_elem->second_mental_parameter.setObservedParameterValue(biased_value);
400 if (parameter_difference_elem->second_mental_parameter.getObservedParameterValue() <= biased_value) {
401 parameter_difference_elem->second_mental_parameter.setObservedParameterValue(biased_value);
405 if (parameter_difference_elem->second_mental_parameter.getObservedParameterValue() >= biased_value) {
406 parameter_difference_elem->second_mental_parameter.setObservedParameterValue(biased_value);
410 if (parameter_difference_elem->second_mental_parameter.getObservedParameterValue() >= biased_value) {
411 parameter_difference_elem->second_mental_parameter.setObservedParameterValue(biased_value);
433 double dynamic_queue_limit;
441 vector<string> decayed;
446 item->setDecision(item->getDecision() + 1);
447 if (item->getDecision() > priority_limit) {
448 decayed.push_back(item->getDisplayName());
450 item->setT_Minimum(
r5pars_.timesno);
461 item->setDecision(item->getDecision() + 1);
462 if (item->getDecision() > priority_limit) {
463 decayed.push_back(item->getDisplayName());
465 item->setT_Minimum(
r5pars_.timesno);
476 item->setDecision(item->getDecision() + 1);
477 if (item->getDecision() > priority_limit) {
478 decayed.push_back(item->getDisplayName());
480 item->setT_Minimum(
r5pars_.timesno);
491 item->setDecision(item->getDecision() + 1);
492 if (item->getDecision() > priority_limit) {
493 decayed.push_back(item->getAlarmName());
495 item->setT_Minimum(
r5pars_.timesno);
507 dynamic_queue_limit *=
510 dynamic_queue_limit *=
515 if (dynamic_queue_limit < 0) { dynamic_queue_limit = 0; }
523 if ((*alarm_itr)->getDecision() >= priority_limit) {
526 reduce_limit =
false;
535 if ((*component_itr)->getDecision() >= priority_limit) {
538 reduce_limit =
false;
547 if ((*support_system_itr)->getDecision() >= priority_limit) {
550 reduce_limit =
false;
553 support_system_itr++;
559 if ((*parameter_itr)->getDecision() >= priority_limit) {
562 reduce_limit =
false;
570 priority_limit = priority_limit - 1;
571 priority_limit = fmax(1, priority_limit);
642 this->
m_RM = make_unique<ReasonMachine>();
643 this->
m_RM->CopyReasonMachineFromAnotherRM(_op.
m_RM.get());
644 this->
m_RM->BuildTheConnectionsWithinRM();
685 this->
m_RM = make_unique<ReasonMachine>();
686 this->
m_RM->CopyReasonMachineFromAnotherRM(_op.
m_RM.get());
687 this->
m_RM->BuildTheConnectionsWithinRM();
688 }
else if (this->
m_RM !=
nullptr) {
689 this->
m_RM->ClearTBIListsForRestart();
731 this->
m_RM->ClearTBIListsForRestart();
801 double active_probability, time_delay, activation_time;
802 double cdf_lower, cdf_upper, delta_cdf, activation_branch_probability;
803 int i, number_of_branches;
804 bool branch_generated =
false;
812 if ((*hwd_itr)->dormancy_time.getTotalTimeRequired() <
r5pars_.timesno) {
813 (*hwd_itr)->setStateOfActivation(
sim::None);
825 if ((*hwd_itr)->getConfidenceLevel() >= (*hwd_itr)->activation_probability.getProbability()
826 && (*hwd_itr)->getStateOfActivation() ==
sim::None) {
829 time_delay = (*hwd_itr)->dormancy_time.calculateMeanRequiredTime() +
r5pars_.timesno;
830 (*hwd_itr)->dormancy_time.setBothTotalTimeRequiredAndRemainingTime(time_delay);
835 (*hwd_itr)->getProcedureName());
836 if (bmp_atu_pt != 0) {
839 number_of_branches = 1;
841 activation_branch_probability = 1.0 / ((double) number_of_branches);
842 delta_cdf = 1.0 / ((double) number_of_branches);
843 for (i = 0; i != number_of_branches; i++) {
845 cdf_lower = delta_cdf * ((double) i);
846 cdf_upper = delta_cdf * ((double) (i + 1));
848 (*hwd_itr)->activation_delay.calculateMeanRequiredTime(cdf_lower, cdf_upper) +
r5pars_.timesno;
849 if ((*hwd_itr)->branch_probability.getProbability()
867 branch_generated =
true;
868 }
else if ((*hwd_itr)->branch_probability.getProbability()
871 active_probability = (*hwd_itr)->branch_probability.getProbability();
883 if (i == (number_of_branches - 1))
886 mb_not_active->
setInfoName((*hwd_itr)->getInfoName());
895 branch_generated =
true;
904 return branch_generated;
965 int i_pause_activity, i_pause_mental_procedure, i_abnormal_signal_perceived;
966 int i_skip_procedure_step, i_skip_instinctive_response_step;
967 int i_info_gather_mode_branch_generated, i_block_troubleshooting, i_block_procedures;
968 int i_new_branch_generated;
969 i_pause_activity = 0;
970 i_pause_mental_procedure = 0;
971 i_new_branch_generated = 0;
972 i_abnormal_signal_perceived = 0;
973 i_skip_procedure_step = 0;
974 i_skip_instinctive_response_step = 0;
975 i_info_gather_mode_branch_generated = 0;
976 i_block_troubleshooting = 0;
977 i_block_procedures = 0;
988 << i_pause_activity <<
' '
989 << i_pause_mental_procedure <<
' '
990 << i_new_branch_generated <<
' '
991 << i_abnormal_signal_perceived <<
' '
993 << i_skip_procedure_step <<
' '
994 << i_skip_instinctive_response_step <<
' '
997 << i_info_gather_mode_branch_generated <<
' '
998 << i_block_troubleshooting <<
' '
999 << i_block_procedures <<
' '
1021 int i_pause_activity, i_pause_mental_procedure, i_abnormal_signal_perceived;
1022 int i_skip_procedure_step, i_skip_instinctive_response_step;
1023 int i_info_gather_mode_branch_generated, i_block_troubleshooting, i_block_procedures;
1024 int i_new_branch_generated;
1036 if (str !=
"Operator") {
1037 ofstream fout(
"err messages.txt", ios::app);
1038 cout <<
"Operator::retrieveOperatorFromFile File retrieval error in previous function" << endl;
1039 fout <<
r5pars_.timesno <<
" Operator::retrieveOperatorFromFile File retrieval error in previous function\n";
1046 fin >> i_pause_activity
1047 >> i_pause_mental_procedure
1048 >> i_new_branch_generated
1049 >> i_abnormal_signal_perceived
1051 >> i_skip_procedure_step
1052 >> i_skip_instinctive_response_step
1055 >> i_info_gather_mode_branch_generated
1056 >> i_block_troubleshooting
1057 >> i_block_procedures
1088 vector<unique_ptr<AlarmParameter>>::iterator ap_itr;
1089 vector<unique_ptr<AlarmComponent>>::iterator ac_itr;
1090 vector<unique_ptr<AlarmTwoParameterDifference>>::iterator atpd_itr;
1091 vector<unique_ptr<ControlState>>::iterator cs_itr;
1092 vector<unique_ptr<ControlValue>>::iterator cv_itr;
1093 vector<unique_ptr<DisplayComponentState>>::iterator dcs_itr;
1094 vector<unique_ptr<DisplaySupportSystemState>>::iterator dsss_itr;
1095 vector<unique_ptr<DisplayParameterValue>>::iterator dpv_itr;
1096 vector<unique_ptr<DisplayHeatStructure>>::iterator dhs_itr;
1097 vector<unique_ptr<DisplayParameterValueRate>>::iterator dpvr_itr;
1098 vector<StringContainer *> not_found_item;
1099 string name_list =
"";
1100 bool found_mismatch =
false;
1101 map<string, KBSystemDecompositionUnit *>::const_iterator map_itr;
1107 found_mismatch =
true;
1108 name_list += (*ap_itr)->getAlarmName();
1116 found_mismatch =
true;
1117 name_list += (*ac_itr)->getAlarmName();
1125 found_mismatch =
true;
1126 name_list += (*atpd_itr)->getAlarmName();
1134 found_mismatch =
true;
1135 name_list += (*cs_itr)->getDisplayName();
1143 found_mismatch =
true;
1144 name_list += (*cv_itr)->getDisplayName();
1152 found_mismatch =
true;
1153 name_list += (*dcs_itr)->getDisplayName();
1161 found_mismatch =
true;
1162 name_list += (*dsss_itr)->getDisplayName();
1170 found_mismatch =
true;
1171 name_list += (*dpv_itr)->getDisplayName();
1179 found_mismatch =
true;
1180 name_list += (*dhs_itr)->getDisplayName();
1188 found_mismatch =
true;
1189 name_list += (*dpvr_itr)->getDisplayName();
1194 if (found_mismatch) {
1195 cout <<
"Operator " << _operator
1196 <<
" The following ControlPanel elements do not exist in teh operators KB_OYY_System_Decomposition.txt file\n"
1197 << name_list << endl;
1198 ofstream fout(
"err messages.txt", ios::app);
1199 fout <<
r5pars_.timesno <<
" Operator " << _operator
1200 <<
" The following ControlPanel elements do not exist in teh operators KB_OYY_System_Decomposition.txt file\n"
1210 map<string, KBSystemDecompositionUnit *>::const_iterator map_itr;
1212 int number_of_functions, function_id, i;
1213 string function_name;
1214 double relevance = 0.0;
1215 if (_str ==
"Procedure") {
1221 sdu_pt = map_itr->second;
1223 for (i = 0; i < number_of_functions; i++) {
1234 string _procedure_name, _step_name, diagnosis, str, str1;
1237 int state_of_activation;
1239 map<string, ProcedureStep *>::iterator procedure_map_itr;
1241 bool branch_generated =
false;
1244 if (procedure_pt == 0) {
1246 str =
"OperatorDM::performAMentalProcedure: No mental procedure is found.";
1247 str1 =
"OperatorDM::performAMentalProcedure err.";
1249 str =
"OperatorAT::performAMentalProcedure: No mental procedure is found.";
1250 str1 =
"OperatorAT::performAMentalProcedure err.";
1252 str =
"OperatorCT::performAMentalProcedure: No mental procedure is found.";
1253 str1 =
"OperatorCT::performAMentalProcedure err.";
1255 ofstream fout(
"err messages.txt", ios::app);
1256 cout << str << endl;
1257 fout <<
r5pars_.timesno <<
" " << str <<
'\n';
1275 branch_generated =
true;
1279 _procedure_name += _step_name;
1282 _procedure_step_pt = procedure_map_itr->second;
1305 return branch_generated;
1309 bool branch_generated =
false;
1312 return branch_generated;
1316 string action_name, sub_action_name;
1317 int sender, receiver;
1318 bool is_a_maneuver_action =
false;
1321 action_name = action_elem->getActionName();
1322 if (action_name.size() > 9) {
1323 sub_action_name = action_name.substr(0, 9);
1324 sender = action_elem->getSender();
1325 receiver = action_elem->getIntendedReceiver();
1326 if (sub_action_name ==
"MANEUVER_" && receiver == this->
type_of_operator) {
1338 map<string, ProcedureStep *>::iterator procedure_map_itr;
1339 vector<unique_ptr<ProcedureStepUnit>>::iterator ps_unit_itr;
1340 string last_procedure_name, last_step_name, combined_name;
1342 int non_response_status, non_response_type;
1344 bool found_ps_unit =
false;
1345 bool next_is_a_functional_recovery_guideline =
false;
1346 bool last_is_a_mental_procedure =
false;
1347 bool next_is_a_mental_procedure =
false;
1350 combined_name = last_procedure_name + last_step_name;
1353 pps_pt = procedure_map_itr->second;
1355 while (ps_unit_itr != (*pps_pt).procedure_step_unit.end() && !found_ps_unit) {
1356 non_response_status = (*ps_unit_itr)->getStateOfExpectation();
1357 non_response_type = (*ps_unit_itr)->getTypeOfNonResponseAction();
1359 found_ps_unit =
true;
1367 if (sub_str ==
"FRG_") {
1368 next_is_a_functional_recovery_guideline =
true;
1373 if (sub_str ==
"MPBG_") {
1374 next_is_a_mental_procedure =
true;
1377 if (last_procedure_name.size() > 5) {
1378 sub_str = last_procedure_name.substr(0, 5);
1379 if (sub_str ==
"MPBG_") {
1380 last_is_a_mental_procedure =
true;
1383 if (last_is_a_mental_procedure && !next_is_a_mental_procedure && !next_is_a_functional_recovery_guideline) {
1400 map<string, ProcedureStep *>::iterator procedure_map_itr;
1401 string procedure_name, step_name;
1406 procedure_name = mp_elem->getProcedureName();
1407 step_name = mp_elem->getStepName();
1408 procedure_name += step_name;
1411 procedure_step_ptr = procedure_map_itr->second;
1423 map<string, ProcedureStep *>::iterator procedure_map_itr;
1424 string procedure_name, step_name;
1425 string active_procedure, active_step;
1430 && mp_elem->getPriority() > this->getMentalProcedurePriorityThreshold()) {
1433 procedure_name = mp_elem->getProcedureName();
1434 step_name = mp_elem->getStepName();
1435 if (procedure_name == active_procedure && step_name == active_step) {
1440 procedure_name += step_name;
1443 procedure_step_ptr = procedure_map_itr->second;
1452 if (this->
m_RM) this->
m_RM->AddDeltaToCognitiveLoad(0.12);
1467 if (this->
m_RM) this->
m_RM->AddDeltaToCognitiveLoad(0.12);
1481 if (this->
m_RM) this->
m_RM->AddDeltaToCognitiveLoad(0.12);
1495 if (this->
m_RM) this->
m_RM->AddDeltaToCognitiveLoad(0.12);
1509 cout <<
" " <<
r5pars_.timesno <<
" " << str <<
'\n';
1512 ofstream fout(
"RMI.txt", ios::app);
1513 fout <<
"Time: " <<
r5pars_.timesno <<
" " << str <<
'\n';
Base class for all crew members — cognitive processing loops, mental model, and knowledge base.
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
void setAlarmName(std::string)
void setTimeRequiredToCheckThisAlarm(double)
void setActivationTime(double)
void setMentalPriority(int)
void setInfoGatherMode(int)
int getNumberOfBranches()
BranchMentalProcedureActivationTimeUnit * checkToGenerateActivationTimeBranches(std::string, std::string)
void addInfoGatherMode(int, BranchInfoGatherMode *)
void setTempTypeOfConsequence(Consequence)
Stores the consequence of the end state the running sequence will get.
void addComponentState(int, BranchExpectedComponentState *)
void addInstinctiveResponseProcedure(int, BranchProcedureStep *)
void addParameterValue(int, BranchExpectedParameterValue *)
BranchMentalProcedureActivationTime mental_procedure_activation_branches
void addSupportSystemState(int, BranchExpectedSupportSystemState *)
void addMentalBelief(int, BranchExpectedMentalBelief *)
Crew fork registration for a mental belief; same contract as addGoal().
void setTempESMessage(std::string)
Stores the description of the end state the running sequence will get if it is terminated (set by mod...
void addAlarmState(int, BranchExpectedAlarmState *)
std::vector< std::shared_ptr< BranchExpectedParameterDifference > > parameter_difference
std::vector< std::shared_ptr< BranchExpectedParameterValue > > parameter_value
std::vector< std::shared_ptr< BranchAction > > action
void setSenderAndReceiver(int, int)
void setIntendedReceiver(int)
void setTypeOfPauseActivity(int)
std::vector< std::unique_ptr< AlarmTwoParameterDifference > > alarm_value_difference_array
std::vector< std::unique_ptr< AlarmComponent > > alarm_component_state_array
std::vector< std::unique_ptr< AlarmParameter > > alarm_parameter_value_array
std::vector< std::unique_ptr< ControlValue > > control_value_array
std::vector< std::unique_ptr< ControlState > > control_state_array
std::vector< std::unique_ptr< DisplayComponentState > > component_state_array
std::vector< std::unique_ptr< DisplayParameterValueRate > > parameter_trend_array
std::vector< std::unique_ptr< DisplayParameterValue > > parameter_value_array
std::vector< std::unique_ptr< DisplayHeatStructure > > heat_structure_array
std::vector< std::unique_ptr< DisplaySupportSystemState > > support_systems_state_array
ControlPanelDisplay indicators
ControlPanelControl controls
std::string getProcedureName()
std::string getLastProcedureName()
std::string getLastStepName()
void setStepName(std::string)
void setProcedureName(std::string)
std::string getStepName()
void retreiveDiagnosisActionModuleFromFile(std::ifstream &)
void copyDiagnosisActionModule(DiagnosisActionModule &)
void saveDiagnosisActionModuleToFile(std::ofstream &)
void clearDiagnosisActionModule()
void readDiagnosisActionModuleInfoFromFile(std::string)
bool onceThroughProcessForReasoningStrategy(Operator &, ShortTermMemory &, EventSymptomMatrix &)
void setTimeRequiredForCheckingThisDisplay(double)
void setDisplayName(std::string)
void copyEventSymptomMatrix(EventSymptomMatrix &)
double getEventRationalConfidence(std::string)
void clearEventSymptomMatrix()
void readInfoFromFile(std::string)
void saveEventSymptomMatrixToFile(std::ofstream &)
void retrieveEventSymptomMatrixFromFile(std::ifstream &)
void setSystemCriticality(double system_criticality)
void setTimeConstraintLoad(double time_constraint_load)
void copyHumanFailureEventsBBN(HumanFailureEventsBBN &)
double getMentalProcedureFailureProbability()
void setInformationLoad(double information_load)
double getGatherInfoModeFailureProbability()
double getGatherStateInfoFailureProbability()
DecisionProcedureStep * identifyTheMentalProcedureToBePerformed(std::string, std::string)
std::string getCurrentInstinctiveResponseProceduralStepName()
std::vector< std::shared_ptr< DecisionProcedureStep > > instinctive_response_procedure
std::vector< std::shared_ptr< DecisionProcedureStep > > procedure_step
void setStateOfAProcedureStep(std::string, std::string, int)
ExpectedMentalBelief * checkExistanceOfMentalBelief(std::string)
std::string getCurrentInstinctiveResponseProcedureName()
void setInfoName(std::string)
std::string getInfoName()
void removeScannedParameter(std::string)
void removeScannedSupportSystem(std::string)
std::vector< std::shared_ptr< BranchExpectedParameterValue > > parameter_scan_list
void clearScannedParameters()
std::vector< std::shared_ptr< BranchExpectedSupportSystemState > > support_system_scan_list
double getPriorityDecayTime()
void saveKBSCannedParameterToFile(std::ofstream &)
void readInfoFromFile(std::string)
std::vector< std::shared_ptr< BranchExpectedAlarmState > > alarm_scan_list
double getSystemCriticalitySensitivity()
double getPriorityLimit()
void removeScannedComponent(std::string)
void retrieveKBSCannedParameterFromFile(std::ifstream &)
std::vector< std::shared_ptr< BranchExpectedComponentState > > component_scan_list
void copyScannedParameters(KBScannedParameters &)
double getRelevanceLimit()
void removeScannedAlarm(std::string)
double getInfoLoadSensitivity()
int getRelatedSubsystem(int)
int getNumberOfRelatedSubsystem()
void initiationForSimulation(int, InfoChunk &)
void retrieveKBFromFile(std::ifstream &)
std::map< std::string, KBSystemDecompositionUnit * > system_decomposition_map
std::string getAssociatedFunctionalDecompositionName(int)
void copyKBForRestart(KB &)
void saveKBToFile(std::ofstream &)
std::vector< std::unique_ptr< KBBiasFactorUnit > > indicator_bias_factors
std::vector< std::unique_ptr< KBHardWiredUnit > > hard_wired_diagnosis
void KBcheckHardWiredMatchForMentalBelief(std::string, int)
void activateManeuverUnit(std::string)
void readInfoFromFile(int)
void clearManeuverAction()
void retrieveManeuverActionFromFile(std::ifstream &)
void saveManeuverActionToFile(std::ofstream &)
void copyManeuverAction(ManeuverAction &)
void checkAndExecuteManeuverUnit(Operator &)
int getMentalProcedurePriorityThreshold()
void setInfoGatherModeBranchGenerated(bool)
bool getSkipInstinctiveResponseStep()
void setProcedureUseProbability(double)
double use_of_old_info_probability
void setSkipProcedureStep(bool)
int generateInfoGatherModeBranch()
void updateEvidenceForAllPSFs()
void retrieveOperatorFromFile(std::ifstream &)
std::unique_ptr< ReasonMachine > m_RM
void interruptLowPriorityMentalProcedures()
bool getBlockTroubleshooting()
bool getSkipProcedureStep()
void setPauseActivity(bool)
void setAbnormalSignalThreshold(double)
bool getInfoGatherModeBranchGenerated()
void checkAndExecuteManeuverAction()
void setTypeOfOperator(int)
void copyOperatorFromRestartInfo(Operator &)
double nominal_communication_time
int mental_procedure_priority_threshold
void quantificationFilter()
double getSkipActionThreshold()
void clearOperatorFromRestartNodeInfoMultiProcessors()
void clearOperatorFinal()
void clearOperatorForRestart()
DiagnosisActionModule event_actions
bool new_branch_generated
void setSkipActionThreshold(double)
bool checkAndActivateHWKB()
bool block_troubleshooting
bool skip_instinctive_response_step
bool abnormal_signal_perceived
double procedure_use_probability
TimeConstrainedModule time_constrained_load
void copyOperatorFromRestartInfoMultiProcessor(Operator &)
void setScanQueueLimit(int)
double getUseOfOldInfoProbabiility()
double getNominalCommunicationTime()
double getTroubleshootingProbability()
double troubleshooting_probability
void ActiveFetchAlarmStateInfo(std::string, int)
ManeuverAction maneuver_action
double abnormal_signal_threshold
double getProcedureUseProbability()
void ActiveFetchSupportSystemStateInfo(std::string, int)
double action_time_multiplier
double getSkipNonResponseThreshold()
double skip_action_threshold
void setBlockProcedureUse(bool)
void setTroubleshootingProbability(double)
void interruptAllMentalProcedures()
void setMentalProcedurePriorityThreshold(int)
bool performAMentalProcedure(int, std::string, std::string)
bool getBlockProcedureUse()
void setActionTimeMultiplier(double)
double threshold_value_for_HWKB_confidence
void copyOperatorToRestartInfo(Operator &)
void checkAndResetProcedureStep(BranchProcedureStep *)
void PrintMessage(std::string)
bool performReasoningStrategy()
void ActiveFetchParameterValueInfo(std::string, int)
void seedKnowledgeBaseFromMaster()
double skip_non_response_threshold
bool getNewBranchGenerated()
double getActionTimeMultiplier()
void setUseOfOldInfoProbability(double)
void setAbnormalSignalPerceived(bool)
void setNominalCommunicationTime(double)
void setPauseMentalProcedure(bool)
InformationLoadModule information_load
void clearOperatorFromRestartInfo()
double getAbnormalSignalThreshold()
bool pause_mental_procedure
HumanFailureEventsBBN hfe_bbn
bool getAbnormalSignalPerceived()
void checkCompletenessOfSystemDecomposition(int)
void setNewBranchGenerated(bool)
EventSymptomMatrix diagnosis_matrix
KBScannedParameters scanned_indicators
void ActiveFetchComponentStateInfo(std::string, int)
bool getPauseMentalProcedure()
double checkItemRelevanceToCurrentDiagnosis(std::string)
double getThresholdValueForHWKBConfidence()
void setBlockTroubleshooting(bool)
void initiationForSimulation()
void setSkipNonResponseThreshold(double)
void setSkipInstinctiveResponseStep(bool)
void saveOperatorToFile(std::ofstream &)
bool info_gather_mode_branch_generated
void seedDiagnosisMatrixFromMaster()
void setThresholdValueForHWKBConfidence(double)
void setProbability(double)
std::vector< std::unique_ptr< ProcedureStepUnit > > procedure_step_unit
bool oneThroughProcessForInstinctiveResponseProcedure(Operator &, double, double, bool, ShortTermMemory &)
void resetStateOfActivation()
std::map< std::string, ProcedureStep * > procedure_map
void retrieveSPDSFromFile(std::ifstream &)
void saveSPDSToFile(std::ofstream &)
void initiationForSimulation(std::string)
std::string getOATDirectory()
void setODMActionTimeMultiplier(double)
std::string getOCTDirectory()
void setOATActionTimeMultiplier(double)
void setOCTActionTimeMultiplier(double)
std::string getODMDirectory()
Timer support_system_update_time
void clearShortTermMemoryFromRestartNodeInfoMultiProcessors()
void retrieveShortTermMemoryFromFile(std::ifstream &)
Timer parameter_update_time
void copyShortTermMemoryFromRestartInfo(ShortTermMemory &)
CommunicationPlace new_info
void clearShortTermMemoryFromRestartInfo()
void saveShortTermMemoryToFile(std::ofstream &)
void clearShortTermMemoryForRestart()
void copyShortTermMemoryToRestartInfo(ShortTermMemory &)
void setInfoGatherMode(int)
void initiationForSimulation()
Timer component_update_time
void setStateOfActivation(int)
int getStateOfActivation()
void retrieveTimeConstrainedModuleFromFile(std::ifstream &)
void copyTimeConstrainedData(TimeConstrainedModule &)
double getTimeConstrainedPIFValue()
void initiationForSimulation(std::string)
void clearTimeConstrainedData()
void saveTimeConstrainedModuleToFile(std::ofstream &)
void setTimerAndProbability(double, double)
void setBothTotalTimeRequiredAndRemainingTime(double)
void setT_Minimum(double)
void setBeta_Weibull(double)
void setAlpha_Weibull(double)
const KB * shared_kb(int operator_type)
const EventSymptomMatrix * shared_diagnosis_matrix(int operator_type)
constexpr int InfoGatherMode
constexpr int Proportional
constexpr int Interrupted
constexpr int InstinctiveResponse
bool rm_cycle_enabled
–enable-rm-cycle: ReasonMachine snapshot/restore/serialize/tbi machinery (see docs/developer/internal...
Scheduler SScheduler
Simulation scheduling, parses CLI options.
Procedures All_procedure
Emergency operating procedures.
ControlPanel Indicator
Control room panel state.
CommunicationPlace Communication_place
Inter-module communication.
BranchRecord Branch_center
Dynamic event tree state.