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>
68 x += (*alarm_itr)->getImportanceOfTheAlarm();
77 for (
auto diagnosis_itr =
diagnosis.begin(); diagnosis_itr !=
diagnosis.end(); diagnosis_itr++) {
83 bool found_goal =
false;
85 auto goal_itr = this->
goal.rbegin();
86 while (goal_itr != this->
goal.rend() && !found_goal) {
88 current_goal = (*goal_itr)->getDecision();
98 bool found_strategy =
false;
100 auto strategy_itr =
strategy.rbegin();
101 while (strategy_itr !=
strategy.rend() && !found_strategy) {
103 current_strategy = (*strategy_itr)->getDecision();
104 found_strategy =
true;
109 return current_strategy;
112 bool found_subgoal =
false;
114 auto subgoal_itr =
subgoal.rbegin();
115 while (subgoal_itr !=
subgoal.rend() && !found_subgoal) {
117 current_subgoal = (*subgoal_itr)->getDecision();
118 found_subgoal =
true;
123 return current_subgoal;
126 bool found_diagnosis =
false;
127 string current_diagnosis =
"NONE";
130 while (diagnosis_itr !=
diagnosis.rend() && !found_diagnosis) {
132 current_diagnosis = (*diagnosis_itr)->getDiagnosis();
133 found_diagnosis =
true;
138 return current_diagnosis;
141 string str =
"NO_PROCEDURE";
148 str = (*procedure_step_ritr)->getProcedureName();
150 procedure_step_ritr++;
156 string str =
"NO_STEP";
163 str = (*procedure_step_ritr)->getStepName();
165 procedure_step_ritr++;
171 string str =
"NO_PROCEDURE";
178 str = (*procedure_step_ritr)->getProcedureName();
180 procedure_step_ritr++;
186 string str =
"NO_STEP";
193 str = (*procedure_step_ritr)->getStepName();
195 procedure_step_ritr++;
208 r_ptr = procedure_step_ritr->get();
210 procedure_step_ritr++;
213 if (r_ptr ==
nullptr) {
219 r_ptr = procedure_step_ritr->get();
221 procedure_step_ritr++;
233 r_ptr = procedure_step_ritr->get();
235 procedure_step_ritr++;
241 auto goal_pt = make_shared<DecisionGoal>();
242 goal_pt->setDecision(_goal);
243 goal_pt->setStateOfActivation(_active_state);
244 goal.push_back(goal_pt);
247 auto strategy_pt = make_shared<DecisionStrategy>();
248 strategy_pt->setDecision(_strategy);
249 strategy_pt->setStateOfActivation(_active_state);
254 auto diagnosis_pt = make_shared<DecisionDiagnosis>();
255 diagnosis_pt->setDiagnosis(_diagnosis);
256 diagnosis_pt->setStateOfActivation(_active_state);
260 auto subgoal_pt = make_shared<DecisionSubGoal>();
261 subgoal_pt->setDecision(_subgoal);
262 subgoal_pt->setStateOfActivation(_active_state);
266 auto ps = make_shared<DecisionProcedureStep>();
267 ps->setProcedureName(_procedure);
268 ps->setStepName(_step);
269 ps->setStateOfActivation(_active_state);
276 double _activation_time) {
279 if (mental_procedure_pt ==
nullptr) {
280 auto ps = make_shared<DecisionProcedureStep>();
281 ps->setProcedureName(_procedure);
282 ps->setStepName(_step);
283 ps->setStateOfActivation(_active_state);
284 ps->setActivationTime(_activation_time);
285 ps->setPriority(_priority);
290 bool found_goal =
false;
293 auto goal_itr =
goal.rbegin();
294 while (goal_itr !=
goal.rend() && !found_goal) {
302 goal_itr =
goal.rbegin();
303 while (goal_itr !=
goal.rend() && !found_goal) {
307 current_goal = (*goal_itr)->getDecision();
313 ofstream fout(
"err messages.txt", ios::app);
314 cout <<
"InfoChunk::doneWithCurrentGoalAndGoForPreviousOne: no goal exist" << endl;
315 fout <<
r5pars_.timesno <<
" InfoChunk::doneWithCurrentGoalAndGoForPreviousOne: no goal exist\n";
320 }
else if (goal_itr ==
goal.rend()) {
321 ofstream fout(
"err messages.txt", ios::app);
322 cout <<
"InfoChunk::doneWithCurrentGoalAndGoForPreviousOne: could not find previousely paused goal" << endl;
324 <<
" InfoChunk::doneWithCurrentGoalAndGoForPreviousOne: could not find previousely paused goal\n";
334 bool found_strategy =
false;
337 auto strategy_itr =
strategy.rbegin();
338 while (strategy_itr !=
strategy.rend() && !found_strategy) {
341 found_strategy =
true;
345 found_strategy =
false;
347 while (strategy_itr !=
strategy.rend() && !found_strategy) {
350 found_strategy =
true;
351 current_strategy = (*strategy_itr)->getDecision();
357 ofstream fout(
"err messages.txt", ios::app);
358 cout <<
"InfoChunk::doneWithCurrentStrategyAndGoForPreviousOne: no strategy exist" << endl;
359 fout <<
r5pars_.timesno <<
" InfoChunk::doneWithCurrentStrategyAndGoForPreviousOne: no strategy exist\n";
364 }
else if (strategy_itr ==
strategy.rend()) {
365 ofstream fout(
"err messages.txt", ios::app);
366 cout <<
"InfoChunk::doneWithCurrentStrategyAndGoForPreviousOne: could not find previousely paused strategy" << endl;
368 <<
" InfoChunk::doneWithCurrentStrategyAndGoForPreviousOne: could not find previousely paused strategy\n";
375 return current_strategy;
378 bool found_diagnosis =
false;
379 string current_diagnosis =
"UNKNOWN";
382 while (diagnosis_itr !=
diagnosis.rend() && !found_diagnosis) {
385 found_diagnosis =
true;
389 found_diagnosis =
false;
391 while (diagnosis_itr !=
diagnosis.rend() && !found_diagnosis) {
394 found_diagnosis =
true;
395 current_diagnosis = (*diagnosis_itr)->getDiagnosis();
401 ofstream fout(
"err messages.txt", ios::app);
402 cout <<
"InfoChunk::doneWithCurrentDiagnosisAndGoForPreviousOne: no diagnosis exist" << endl;
403 fout <<
r5pars_.timesno <<
" InfoChunk::doneWithCurrentDiagnosisAndGoForPreviousOne: no diagnosis exist\n";
408 }
else if (diagnosis_itr ==
diagnosis.rend()) {
409 ofstream fout(
"err messages.txt", ios::app);
410 cout <<
"InfoChunk::doneWithCurrentDiagnosisAndGoForPreviousOne: could not find previousely paused diagnosis"
413 <<
" InfoChunk::doneWithCurrentDiagnosisAndGoForPreviousOne: could not find previousely paused diagnosis\n";
420 return current_diagnosis;
423 bool found_subgoal =
false;
426 auto subgoal_itr =
subgoal.rbegin();
427 while (subgoal_itr !=
subgoal.rend() && !found_subgoal) {
430 found_subgoal =
true;
434 found_subgoal =
false;
435 subgoal_itr =
subgoal.rbegin();
436 while (subgoal_itr !=
subgoal.rend() && !found_subgoal) {
439 found_subgoal =
true;
440 current_subgoal = (*subgoal_itr)->getDecision();
446 ofstream fout(
"err messages.txt", ios::app);
447 cout <<
"InfoChunk::doneWithCurrentSubgoalAndGoForPreviousOne: no subgoal exist" << endl;
448 fout <<
r5pars_.timesno <<
" InfoChunk::doneWithCurrentSubgoalAndGoForPreviousOne: no subgoal exist\n";
453 }
else if (subgoal_itr ==
subgoal.rend()) {
454 ofstream fout(
"err messages.txt", ios::app);
455 cout <<
"InfoChunk::doneWithCurrentSubgoalAndGoForPreviousOne: could not find previousely paused subgoal" << endl;
457 <<
" InfoChunk::doneWithCurrentSubgoalAndGoForPreviousOne: could not find previousely paused subgoal\n";
464 return current_subgoal;
468 bool found_goal =
false;
469 auto goal_itr =
goal.rbegin();
470 while (goal_itr !=
goal.rend() && !found_goal) {
480 bool found_strategy =
false;
481 auto strategy_itr =
strategy.rbegin();
482 while (strategy_itr !=
strategy.rend() && !found_strategy) {
485 found_strategy =
true;
492 bool found_subgoal =
false;
493 auto subgoal_itr =
subgoal.rbegin();
494 while (subgoal_itr !=
subgoal.rend() && !found_subgoal) {
497 found_subgoal =
true;
504 bool found_diagnosis =
false;
506 while (diagnosis_itr !=
diagnosis.rend() && !found_diagnosis) {
509 found_diagnosis =
true;
516 bool found_diagnosis =
false;
519 while (diagnosis_itr !=
diagnosis.rend() && !found_diagnosis) {
520 if ((*diagnosis_itr)->getDiagnosis() == _diagnosis) {
521 found_diagnosis =
true;
522 diagnosis_pt = diagnosis_itr->get();
526 if (found_diagnosis) {
527 for (diagnosis_itr =
diagnosis.rbegin(); diagnosis_itr !=
diagnosis.rend(); diagnosis_itr++) {
534 return found_diagnosis;
537 bool found_diagnosis =
false;
539 while (diagnosis_itr !=
diagnosis.rend() && !found_diagnosis) {
541 found_diagnosis =
true;
545 return found_diagnosis;
548 string _in_use_step_name) {
549 bool found_mental_procedure =
false;
550 bool procedure_in_use;
552 int highest_priority = 999;
556 procedure_in_use =
false;
557 state_of_activation = (*instinctive_response_procedure_itr)->getStateOfActivation();
558 if ((*instinctive_response_procedure_itr)->getProcedureName() == _in_use_procedure_name
559 && (*instinctive_response_procedure_itr)->getStepName() == _in_use_step_name) {
560 procedure_in_use =
true;
563 found_mental_procedure =
true;
564 dds_pt = instinctive_response_procedure_itr->get();
566 instinctive_response_procedure_itr++;
569 if (!found_mental_procedure) {
573 procedure_in_use =
false;
574 state_of_activation = (*instinctive_response_procedure_itr)->getStateOfActivation();
575 if ((*instinctive_response_procedure_itr)->getProcedureName() == _in_use_procedure_name
576 && (*instinctive_response_procedure_itr)->getStepName() == _in_use_step_name) {
577 procedure_in_use =
true;
580 found_mental_procedure =
true;
581 dds_pt = instinctive_response_procedure_itr->get();
583 instinctive_response_procedure_itr++;
587 if (!found_mental_procedure) {
591 procedure_in_use =
false;
592 state_of_activation = (*instinctive_response_procedure_itr)->getStateOfActivation();
593 if ((*instinctive_response_procedure_itr)->getProcedureName() == _in_use_procedure_name
594 && (*instinctive_response_procedure_itr)->getStepName() == _in_use_step_name) {
595 procedure_in_use =
true;
597 if (state_of_activation ==
sim::None && !procedure_in_use
598 && (*instinctive_response_procedure_itr)->getPriority() < highest_priority) {
599 highest_priority = (*instinctive_response_procedure_itr)->getPriority();
600 found_mental_procedure =
true;
601 dds_pt = instinctive_response_procedure_itr->get();
603 instinctive_response_procedure_itr++;
609 bool found_mental_procedure =
false;
610 bool procedure_in_use;
611 bool procedure_waiting;
612 int state_of_activation;
615 procedure_in_use =
false;
616 procedure_waiting =
false;
617 state_of_activation = (*instinctive_response_procedure_itr)->getStateOfActivation();
620 if ((*instinctive_response_procedure_itr)->getProcedureName() == _procedure_name
621 && (*instinctive_response_procedure_itr)->getStepName() == _step_name) {
622 procedure_in_use =
true;
626 if ((*instinctive_response_procedure_itr)->getActivationTime() <
r5pars_.timesno
629 (*instinctive_response_procedure_itr)->setStateOfActivation(state_of_activation);
633 procedure_waiting =
true;
635 if (procedure_waiting && !procedure_in_use) {
636 found_mental_procedure =
true;
638 instinctive_response_procedure_itr++;
641 return found_mental_procedure;
647 for (
auto ritr = _perceived_info.
goal.rbegin(); ritr != _perceived_info.
goal.rend(); ritr++) {
649 this->
goal.push_back(*ritr);
655 ofstream fout(
"err messages.txt", ios::app);
656 cout <<
"InfoChunk::pointToAvtiveGoalAndStrategy: No active goal exists." << endl;
657 fout <<
r5pars_.timesno <<
" InfoChunk::pointToAvtiveGoalAndStrategy: No active goal exists.\n";
666 for (
auto ritr = _perceived_info.
strategy.rbegin(); ritr != _perceived_info.
strategy.rend(); ritr++) {
674 ofstream fout(
"err messages.txt", ios::app);
675 cout <<
"InfoChunk::pointToAvtiveGoalAndStrategy: No active strategy exists." << endl;
676 fout <<
r5pars_.timesno <<
" InfoChunk::pointToAvtiveGoalAndStrategy: No active strategy exists.\n";
688 auto ritr =
goal.rbegin();
689 while (ritr !=
goal.rend() && !found) {
703 while (ritr !=
strategy.rend() && !found) {
717 while (ritr !=
subgoal.rend() && !found) {
731 while (ritr !=
diagnosis.rend() && !found) {
772 auto ritr =
action.rbegin();
773 while (ritr !=
action.rend() && !found) {
785 string _pt_procedure_name, ritr_procedure_name;
791 ritr_procedure_name = (*ritr)->getProcedureName();
792 ritr_procedure_name += (*ritr)->getStepName();
793 if (_pt_procedure_name == ritr_procedure_name) {
824 auto ritr =
action.rbegin();
825 while (ritr !=
action.rend() && !found) {
826 if (_action_name == (*ritr)->getActionName()) {
828 (*ritr)->setStateOfActivation(_new_state);
837 auto ritr =
action.rbegin();
838 while (ritr !=
action.rend() && !found) {
839 if ((*ritr)->getActionName() == str) {
852 if ((*ritr)->getAlarmName() == str) {
866 if ((*ritr)->getProcedureName() == _procedure_name && (*ritr)->getStepName() == _step_name &&
870 pds_pt = ritr->get();
883 if ((*ritr)->getProcedureName() == _procedure_name && (*ritr)->getStepName() == _step_name &&
887 pds_pt = ritr->get();
900 if ((*ritr)->getDisplayName() == str) {
913 if ((*ritr)->getDisplayName() == str) {
926 if ((*ritr)->getDisplayName() == str) {
938 while (mental_belief_ritr !=
mental_belief.rend() && !found) {
939 if ((*mental_belief_ritr)->getInfoName() == str) {
941 mp_pt = mental_belief_ritr->get();
943 mental_belief_ritr++;
952 if ((*ritr)->getDisplayName() == str) {
962 auto r_itr =
goal.rbegin();
963 while (r_itr !=
goal.rend() && !found) {
974 while (r_itr !=
strategy.rend() && !found) {
985 while (r_itr !=
subgoal.rend() && !found) {
996 while (r_itr !=
diagnosis.rend() && !found) {
1028 auto r_itr =
action.rbegin();
1029 while (r_itr !=
action.rend() && !found) {
1044 (*r_itr)->setLastProcedureName(
"NONE");
1045 (*r_itr)->setLastStepName(
"NONE");
1057 if ((*ritr)->getAlarmName() == _exp->
getInfoName()) {
1075 if ((*ritr)->getDisplayName() == _exp->
getInfoName()) {
1093 if ((*ritr)->getDisplayName() == _exp->
getInfoName()) {
1095 if ((*ritr)->getObservedSupportSystemState() == _exp->
getExpectedState()) {
1108 double observed_value, par1, par2;
1112 if ((*ritr)->getDisplayName() == _exp->
getInfoName()) {
1115 observed_value = (*ritr)->getObservedParameterValue();
1131 default: ofstream fout(
"err messages.txt", ios::app);
1132 cout <<
"InfoChunk::checkWhetherExpectedParameterValueMatchObservation: KBExpectation: "
1133 << (*ritr)->getDisplayName()
1134 <<
" whose logical relation: " << _exp->
getLogicalRelation() <<
" could not be recognized" << endl;
1135 fout <<
r5pars_.timesno <<
" InfoChunk::checkWhetherExpectedParameterValueMatchObservation: KBExpectation: "
1136 << (*ritr)->getDisplayName()
1137 <<
" whose logical relation: " << _exp->
getLogicalRelation() <<
" could not be recognized.\n";
1151 bool found1 =
false;
1152 bool found2 =
false;
1154 double observed_value1, observed_value2;
1161 observed_value1 = (*ritr)->getObservedParameterValue();
1170 observed_value2 = (*ritr)->getObservedParameterValue();
1174 if (found1 ==
true && found2 ==
true) {
1190 for (
auto goal_itr = _ic.
goal.begin(); goal_itr != _ic.
goal.end(); goal_itr++) {
1191 auto goal_sp = make_shared<DecisionGoal>();
1192 goal_sp->copyDecisionGoal(**goal_itr);
1193 this->
goal.push_back(goal_sp);
1195 for (
auto strategy_itr = _ic.
strategy.begin(); strategy_itr != _ic.
strategy.end(); strategy_itr++) {
1196 auto strategy_sp = make_shared<DecisionStrategy>();
1197 strategy_sp->copyDecisionStrategy(**strategy_itr);
1198 this->
strategy.push_back(strategy_sp);
1200 for (
auto subgoal_itr = _ic.
subgoal.begin(); subgoal_itr != _ic.
subgoal.end(); subgoal_itr++) {
1201 auto subgoal_sp = make_shared<DecisionSubGoal>();
1202 subgoal_sp->copyDecisionSubGoal(**subgoal_itr);
1203 this->
subgoal.push_back(subgoal_sp);
1205 for (
auto diagnosis_itr = _ic.
diagnosis.begin(); diagnosis_itr != _ic.
diagnosis.end(); diagnosis_itr++) {
1206 auto diagnosis_sp = make_shared<DecisionDiagnosis>();
1207 diagnosis_sp->copyDecisionDiagnosis(**diagnosis_itr);
1208 this->
diagnosis.push_back(diagnosis_sp);
1211 action_objective_itr++) {
1212 auto action_objective_sp = make_shared<DecisionActionObjective>();
1213 action_objective_sp->copyDecisionActionObjective(**action_objective_itr);
1216 for (
auto action_pack_itr = _ic.
action_pack.begin(); action_pack_itr != _ic.
action_pack.end(); action_pack_itr++) {
1217 auto action_pack_sp = make_shared<DecisionActionPack>();
1218 action_pack_sp->copyDecisionActionPack(**action_pack_itr);
1221 for (
auto action_itr = _ic.
action.begin(); action_itr != _ic.
action.end(); action_itr++) {
1222 auto action_sp = make_shared<DecisionAction>();
1223 action_sp->copyDecisionAction(**action_itr);
1224 this->
action.push_back(action_sp);
1227 procedure_step_itr++) {
1228 auto procedure_step_sp = make_shared<DecisionProcedureStep>();
1229 procedure_step_sp->copyDecisionProcedureStep(**procedure_step_itr);
1234 auto procedure_step_sp = make_shared<DecisionProcedureStep>();
1235 procedure_step_sp->copyDecisionProcedureStep(**procedure_step_itr);
1239 perceived_alarms_itr++) {
1240 auto perceived_alarms_sp = make_shared<MentalAlarm>();
1241 perceived_alarms_sp->copyMentalAlarm(**perceived_alarms_itr);
1246 auto perceived_component_state_sp = make_shared<MentalComponentState>();
1247 perceived_component_state_sp->copyMentalComponentState(**perceived_component_state_itr);
1252 auto perceived_support_system_state_sp = make_shared<MentalSupportSystemState>();
1253 perceived_support_system_state_sp->copyMentalSupportSystemState(**perceived_support_system_state_itr);
1258 auto perceived_parameter_value_sp = make_shared<MentalParameterValue>();
1259 perceived_parameter_value_sp->copyMentalParameterValue(**perceived_parameter_value_itr);
1264 auto perceived_parameter_trend_sp = make_shared<MentalParameterTrend>();
1265 perceived_parameter_trend_sp->copyMentalParameterTrend(**perceived_parameter_trend_itr);
1269 mental_belief_itr++) {
1270 auto mental_belief_sp = make_shared<ExpectedMentalBelief>();
1271 mental_belief_sp->copyExpectedMentalBelief(**mental_belief_itr);
1276 bool is_included =
false;
1278 while (diagnosis_itr !=
diagnosis.end() && !is_included) {
1279 if ((*diagnosis_itr)->getDiagnosis() == _diagnosis) {
1292 if ((*ritr)->getProcedureName() == _procedure_name && (*ritr)->getStepName() == _step_name) {
1294 (*ritr)->setStateOfActivation(_state);
1301 if ((*ritr)->getProcedureName() == _procedure_name && (*ritr)->getStepName() == _step_name) {
1303 (*ritr)->setStateOfActivation(_state);
1316 if ((*ritr)->getProcedureName() == _procedure_name && (*ritr)->getStepName() == _step_name) {
1318 state = (*ritr)->getStateOfActivation();
1325 if ((*ritr)->getProcedureName() == _procedure_name && (*ritr)->getStepName() == _step_name) {
1327 state = (*ritr)->getStateOfActivation();
1342 if ((*ritr)->getProcedureName() == _procedure_name && (*ritr)->getStepName() == _step_name) {
1344 state = (*ritr)->getPriority();
1351 if ((*ritr)->getProcedureName() == _procedure_name && (*ritr)->getStepName() == _step_name) {
1353 state = (*ritr)->getPriority();
1362 fout <<
"GOAL " << this->
goal.size() <<
'\n';
1363 for (
auto goal_itr =
goal.begin(); goal_itr !=
goal.end(); goal_itr++) {
1364 (*goal_itr)->saveDecisionGoalToFile(fout);
1366 fout <<
"STRATEGY " << this->
strategy.size() <<
'\n';
1367 for (
auto strategy_itr =
strategy.begin(); strategy_itr !=
strategy.end(); strategy_itr++) {
1368 (*strategy_itr)->saveDecisionStrategyToFile(fout);
1370 fout <<
"SUBGOAL " << this->
subgoal.size() <<
'\n';
1371 for (
auto subgoal_itr =
subgoal.begin(); subgoal_itr !=
subgoal.end(); subgoal_itr++) {
1372 (*subgoal_itr)->saveDecisionSubGoalToFile(fout);
1374 fout <<
"DIAGNOSIS " << this->
diagnosis.size() <<
'\n';
1375 for (
auto diagnosis_itr =
diagnosis.begin(); diagnosis_itr !=
diagnosis.end(); diagnosis_itr++) {
1376 (*diagnosis_itr)->saveDecisionDiagnosisToFile(fout);
1380 action_objective_itr++) {
1381 (*action_objective_itr)->saveDecisionActionObjectiveToFile(fout);
1383 fout <<
"ACTION_PACK " << this->
action_pack.size() <<
'\n';
1384 for (
auto action_pack_itr =
action_pack.begin(); action_pack_itr !=
action_pack.end(); action_pack_itr++) {
1385 (*action_pack_itr)->saveDecisionActionPackToFile(fout);
1387 fout <<
"ACTION " << this->
action.size() <<
'\n';
1388 for (
auto action_itr =
action.begin(); action_itr !=
action.end(); action_itr++) {
1389 (*action_itr)->saveDecisionActionToFile(fout);
1391 fout <<
"PROCEDURE_STEP " << this->
procedure_step.size() <<
'\n';
1393 (*procedure_step_itr)->saveDecisionProcedureStepToFile(fout);
1398 (*procedure_step_itr)->saveDecisionProcedureStepToFile(fout);
1402 perceived_alarms_itr++) {
1403 (*perceived_alarms_itr)->saveMentalAlarmToFile(fout);
1408 (*perceived_component_state_itr)->saveMentalComponentStateToFile(fout);
1413 (*perceived_support_system_state_itr)->saveMentalSupportSystemStateToFile(fout);
1418 (*perceived_parameter_value_itr)->saveMentalParameterValueToFile(fout);
1423 (*perceived_parameter_trend_itr)->saveMentalParameterTrendToFile(fout);
1425 fout <<
"MENTAL_BELIEF " << this->
mental_belief.size() <<
'\n';
1427 (*mental_belief_itr)->saveExpectedMentalBeliefToFile(fout);
1434 if (str !=
"GOAL") {
1438 for (i = 0; i < num; i++) {
1439 auto goal_sp = make_shared<DecisionGoal>();
1440 goal_sp->retrieveDecisionGoalFromFile(fin);
1441 this->
goal.push_back(goal_sp);
1446 if (str !=
"STRATEGY") {
1450 for (i = 0; i < num; i++) {
1451 auto strategy_sp = make_shared<DecisionStrategy>();
1452 strategy_sp->retrieveDecisionStrategyFromFile(fin);
1453 this->
strategy.push_back(strategy_sp);
1458 if (str !=
"SUBGOAL") {
1462 for (i = 0; i < num; i++) {
1463 auto subgoal_sp = make_shared<DecisionSubGoal>();
1464 subgoal_sp->retrieveDecisionSubGoalFromFile(fin);
1465 this->
subgoal.push_back(subgoal_sp);
1470 if (str !=
"DIAGNOSIS") {
1474 for (i = 0; i < num; i++) {
1475 auto diagnosis_sp = make_shared<DecisionDiagnosis>();
1476 diagnosis_sp->retrieveDecisionDiagnosisFromFile(fin);
1477 this->
diagnosis.push_back(diagnosis_sp);
1482 if (str !=
"ACTION_OBJECTIVE") {
1486 for (i = 0; i < num; i++) {
1487 auto action_objective_sp = make_shared<DecisionActionObjective>();
1488 action_objective_sp->retrieveDecisionActionObjectiveFromFile(fin);
1494 if (str !=
"ACTION_PACK") {
1498 for (i = 0; i < num; i++) {
1499 auto action_pack_sp = make_shared<DecisionActionPack>();
1500 action_pack_sp->retrieveDecisionActionPackFromFile(fin);
1506 if (str !=
"ACTION") {
1510 for (i = 0; i < num; i++) {
1511 auto action_sp = make_shared<DecisionAction>();
1512 action_sp->retrieveDecisionActionFromFile(fin);
1513 this->
action.push_back(action_sp);
1518 if (str !=
"PROCEDURE_STEP") {
1522 for (i = 0; i < num; i++) {
1523 auto procedure_step_sp = make_shared<DecisionProcedureStep>();
1524 procedure_step_sp->retrieveDecisionProcedureStepFromFile(fin);
1530 if (str !=
"INSTINCTIVE_RESPONSE") {
1534 for (i = 0; i < num; i++) {
1535 auto procedure_step_sp = make_shared<DecisionProcedureStep>();
1536 procedure_step_sp->retrieveDecisionProcedureStepFromFile(fin);
1542 if (str !=
"PERCEIVED_ALARM") {
1546 for (i = 0; i < num; i++) {
1547 auto perceived_alarms_sp = make_shared<MentalAlarm>();
1548 perceived_alarms_sp->retrieveMentalAlarmFromFile(fin);
1554 if (str !=
"PERCEIVED_COMPONENT_STATE") {
1558 for (i = 0; i < num; i++) {
1559 auto perceived_component_state_sp = make_shared<MentalComponentState>();
1560 perceived_component_state_sp->retrieveMentalComponentStateFromFile(fin);
1566 if (str !=
"PERCEIVED_SUPPORT_SYSTEM_STATE") {
1570 for (i = 0; i < num; i++) {
1571 auto perceived_support_system_state_sp = make_shared<MentalSupportSystemState>();
1572 perceived_support_system_state_sp->retrieveMentalSupportSystemStateFromFile(fin);
1578 if (str !=
"PERCEIVED_PARAMETER_VALUE") {
1582 for (i = 0; i < num; i++) {
1583 auto perceived_parameter_value_sp = make_shared<MentalParameterValue>();
1584 perceived_parameter_value_sp->retrieveMentalParameterValueFromFile(fin);
1590 if (str !=
"PERCEIVER_PARAMETER_TREND") {
1594 for (i = 0; i < num; i++) {
1595 auto perceived_parameter_trend_sp = make_shared<MentalParameterTrend>();
1596 perceived_parameter_trend_sp->retrieveMentalParameterTrendFromFile(fin);
1602 if (str !=
"MENTAL_BELIEF") {
1606 for (i = 0; i < num; i++) {
1607 auto mental_belief_sp = make_shared<ExpectedMentalBelief>();
1608 mental_belief_sp->retrieveExpectedMentalBeliefFromFile(fin);
1633 if (
goal.size() == 0)
return;
1634 for (
auto goal_itr =
goal.begin(); goal_itr !=
goal.end();
1636 auto goal_itr1 = _ic.
goal.begin();
1637 auto goal_end = _ic.
goal.end();
1639 while (goal_itr1 != goal_end && !found) {
1640 found = (*goal_itr)->checkIfIsIdenticalDecisionGoal(**goal_itr1);
1642 *goal_itr = *goal_itr1;
1648 cout <<
"Goal in ShortTermMemory::grouped_info " << (*goal_itr)->getDecision() <<
" generated at "
1649 << (*goal_itr)->getTimeAtWhichThisInfoIsPerceived()
1650 <<
" cound not find corresponding goal in the ShortTermMemory::perceived_info" << endl;
1651 ofstream fout(
"err messages.txt", ios::app);
1652 fout <<
r5pars_.timesno <<
" Goal in ShortTermMemory::grouped_info " << (*goal_itr)->getDecision()
1654 << (*goal_itr)->getTimeAtWhichThisInfoIsPerceived()
1655 <<
" cound not find corresponding goal in the ShortTermMemory::perceived_info\n";
1670 auto strategy_itr1 = _ic.
strategy.begin();
1671 auto strategy_end = _ic.
strategy.end();
1673 while (strategy_itr1 != strategy_end && !found) {
1674 found = (*strategy_itr)->checkIfIsIdenticalDecisionStrategy(**strategy_itr1);
1676 *strategy_itr = *strategy_itr1;
1682 cout <<
"Strategy in ShortTermMemory::grouped_info " << (*strategy_itr)->getDecision() <<
" generated at "
1683 << (*strategy_itr)->getTimeAtWhichThisInfoIsPerceived()
1684 <<
" cound not find corresponding strategy in the ShortTermMemory::perceived_info" << endl;
1685 ofstream fout(
"err messages.txt", ios::app);
1686 fout <<
r5pars_.timesno <<
" Strategy in ShortTermMemory::grouped_info " << (*strategy_itr)->getDecision()
1688 << (*strategy_itr)->getTimeAtWhichThisInfoIsPerceived()
1689 <<
" cound not find corresponding strategy in the ShortTermMemory::perceived_info\n";
1694 strategy_itr->reset();
1701 if (
subgoal.size() == 0)
return;
1702 for (
auto subgoal_itr =
subgoal.begin(); subgoal_itr !=
subgoal.end();
1704 auto subgoal_itr1 = _ic.
subgoal.begin();
1705 auto subgoal_end = _ic.
subgoal.end();
1707 while (subgoal_itr1 != subgoal_end && !found) {
1708 found = (*subgoal_itr)->checkIfIsIdenticalDecisionSubGoal(**subgoal_itr1);
1710 *subgoal_itr = *subgoal_itr1;
1716 cout <<
"Subgoal in ShortTermMemory::grouped_info " << (*subgoal_itr)->getDecision() <<
" generated at "
1717 << (*subgoal_itr)->getTimeAtWhichThisInfoIsPerceived()
1718 <<
" cound not find corresponding subgoal in the ShortTermMemory::perceived_info" << endl;
1719 ofstream fout(
"err messages.txt", ios::app);
1720 fout <<
r5pars_.timesno <<
" Subgoal in ShortTermMemory::grouped_info " << (*subgoal_itr)->getDecision()
1722 << (*subgoal_itr)->getTimeAtWhichThisInfoIsPerceived()
1723 <<
" cound not find corresponding subgoal in the ShortTermMemory::perceived_info\n";
1728 subgoal_itr->reset();
1738 auto diagnosis_itr1 = _ic.
diagnosis.begin();
1739 auto diagnosis_end = _ic.
diagnosis.end();
1741 while (diagnosis_itr1 != diagnosis_end && !found) {
1742 found = (*diagnosis_itr)->checkIfIsIdenticalDecisionDiagnosis(**diagnosis_itr1);
1744 *diagnosis_itr = *diagnosis_itr1;
1750 cout <<
"Diagnosis in ShortTermMemory::grouped_info " << (*diagnosis_itr)->getDecision() <<
" generated at "
1751 << (*diagnosis_itr)->getTimeAtWhichThisInfoIsPerceived()
1752 <<
" cound not find corresponding diagnosis in the ShortTermMemory::perceived_info" << endl;
1753 ofstream fout(
"err messages.txt", ios::app);
1754 fout <<
r5pars_.timesno <<
" Diagnosis in ShortTermMemory::grouped_info " << (*diagnosis_itr)->getDecision()
1756 << (*diagnosis_itr)->getTimeAtWhichThisInfoIsPerceived()
1757 <<
" cound not find corresponding diagnosis in the ShortTermMemory::perceived_info\n";
1762 diagnosis_itr->reset();
1770 action_objective_itr++) {
1774 while (action_objective_itr1 != action_objective_end && !found) {
1775 found = (*action_objective_itr)->checkIfIsIdenticalDecisionActionObjective(**action_objective_itr1);
1777 *action_objective_itr = *action_objective_itr1;
1779 action_objective_itr1++;
1783 cout <<
"ActionObjective in ShortTermMemory::grouped_info " << (*action_objective_itr)->getDecision()
1785 << (*action_objective_itr)->getTimeAtWhichThisInfoIsPerceived()
1786 <<
" cound not find corresponding action_objective in the ShortTermMemory::perceived_info" << endl;
1787 ofstream fout(
"err messages.txt", ios::app);
1788 fout <<
r5pars_.timesno <<
" ActionObjective in ShortTermMemory::grouped_info "
1789 << (*action_objective_itr)->getDecision() <<
" generated at "
1790 << (*action_objective_itr)->getTimeAtWhichThisInfoIsPerceived()
1791 <<
" cound not find corresponding action_objective in the ShortTermMemory::perceived_info\n";
1796 action_objective_itr->reset();
1805 action_pack_itr++) {
1809 while (action_pack_itr1 != action_pack_end && !found) {
1810 found = (*action_pack_itr)->checkIfIsIdenticalDecisionActionPack(**action_pack_itr1);
1812 *action_pack_itr = *action_pack_itr1;
1818 cout <<
"ActionPack in ShortTermMemory::grouped_info " << (*action_pack_itr)->getActionPackName()
1820 << (*action_pack_itr)->getTimeAtWhichThisInfoIsPerceived()
1821 <<
" cound not find corresponding action_pack in the ShortTermMemory::perceived_info" << endl;
1822 ofstream fout(
"err messages.txt", ios::app);
1823 fout <<
r5pars_.timesno <<
" ActionPack in ShortTermMemory::grouped_info "
1824 << (*action_pack_itr)->getActionPackName() <<
" generated at "
1825 << (*action_pack_itr)->getTimeAtWhichThisInfoIsPerceived()
1826 <<
" cound not find corresponding action_pack in the ShortTermMemory::perceived_info\n";
1831 action_pack_itr->reset();
1837 if (
action.size() == 0)
return;
1838 for (
auto action_itr =
action.begin(); action_itr !=
action.end();
1840 auto action_itr1 = _ic.
action.begin();
1841 auto action_end = _ic.
action.end();
1843 while (action_itr1 != action_end && !found) {
1844 found = (*action_itr)->checkIfIsIdenticalDecisionAction(**action_itr1);
1846 *action_itr = *action_itr1;
1852 cout <<
"Action in ShortTermMemory::grouped_info " << (*action_itr)->getActionName() <<
" generated at "
1853 << (*action_itr)->getTimeAtWhichThisInfoIsPerceived()
1854 <<
" cound not find corresponding action in the ShortTermMemory::perceived_info" << endl;
1855 ofstream fout(
"err messages.txt", ios::app);
1856 fout <<
r5pars_.timesno <<
" Action in ShortTermMemory::grouped_info " << (*action_itr)->getActionName()
1858 << (*action_itr)->getTimeAtWhichThisInfoIsPerceived()
1859 <<
" cound not find corresponding action in the ShortTermMemory::perceived_info\n";
1864 action_itr->reset();
1872 procedure_step_itr++) {
1876 while (procedure_step_itr1 != procedure_step_end && !found) {
1877 found = (*procedure_step_itr)->checkIfIsIdenticalDecisionProcedureStep(**procedure_step_itr1);
1879 *procedure_step_itr = *procedure_step_itr1;
1881 procedure_step_itr1++;
1885 cout <<
"ProcedureStep in ShortTermMemory::grouped_info " << (*procedure_step_itr)->getProcedureName() <<
' '
1886 << (*procedure_step_itr)->getStepName()
1887 <<
" cound not find corresponding procedure_step in the ShortTermMemory::perceived_info" << endl;
1888 ofstream fout(
"err messages.txt", ios::app);
1889 fout <<
r5pars_.timesno <<
" ProcedureStep in ShortTermMemory::grouped_info "
1890 << (*procedure_step_itr)->getProcedureName() <<
' '
1891 << (*procedure_step_itr)->getStepName()
1892 <<
" cound not find corresponding procedure_step in the ShortTermMemory::perceived_info\n";
1897 procedure_step_itr->reset();
1906 instinctive_response_procedure_itr++) {
1910 while (instinctive_response_procedure_itr1 != instinctive_response_procedure_end && !found) {
1912 (*instinctive_response_procedure_itr)->checkIfIsIdenticalDecisionProcedureStep(**instinctive_response_procedure_itr1);
1914 *instinctive_response_procedure_itr = *instinctive_response_procedure_itr1;
1916 instinctive_response_procedure_itr1++;
1920 cout <<
"InstinctiveResponseProcedure in ShortTermMemory::grouped_info "
1921 << (*instinctive_response_procedure_itr)->getProcedureName() <<
' '
1922 << (*instinctive_response_procedure_itr)->getStepName()
1923 <<
" cound not find corresponding instinctive_response_procedure in the ShortTermMemory::perceived_info"
1925 ofstream fout(
"err messages.txt", ios::app);
1926 fout <<
r5pars_.timesno <<
" InstinctiveResponseProcedure in ShortTermMemory::grouped_info "
1927 << (*instinctive_response_procedure_itr)->getProcedureName() <<
' '
1928 << (*instinctive_response_procedure_itr)->getStepName()
1929 <<
" cound not find corresponding instinctive_response_procedure in the ShortTermMemory::perceived_info\n";
1934 instinctive_response_procedure_itr->reset();
1942 perceived_alarms_itr++) {
1946 while (perceived_alarms_itr1 != perceived_alarms_end && !found) {
1947 found = (*perceived_alarms_itr)->checkIfIsIdenticalMentalAlarm(**perceived_alarms_itr1);
1949 *perceived_alarms_itr = *perceived_alarms_itr1;
1951 perceived_alarms_itr1++;
1955 cout <<
"Alarm in ShortTermMemory::grouped_info " << (*perceived_alarms_itr)->getAlarmName()
1956 <<
" cound not find corresponding perceived_alarms in the ShortTermMemory::perceived_info" << endl;
1957 ofstream fout(
"err messages.txt", ios::app);
1958 fout <<
r5pars_.timesno <<
" Alarm in ShortTermMemory::grouped_info " << (*perceived_alarms_itr)->getAlarmName()
1959 <<
" cound not find corresponding perceived_alarms in the ShortTermMemory::perceived_info\n";
1964 perceived_alarms_itr->reset();
1973 perceived_component_state_itr++) {
1977 while (perceived_component_state_itr1 != perceived_component_state_end && !found) {
1979 (*perceived_component_state_itr)->checkIfIsIdenticalMentalComponentState(**perceived_component_state_itr1);
1981 *perceived_component_state_itr = *perceived_component_state_itr1;
1983 perceived_component_state_itr1++;
1987 cout <<
"ComponentState in ShortTermMemory::grouped_info " << (*perceived_component_state_itr)->getDisplayName()
1988 <<
" cound not find corresponding perceived_component_state in the ShortTermMemory::perceived_info" << endl;
1989 ofstream fout(
"err messages.txt", ios::app);
1990 fout <<
r5pars_.timesno <<
" ComponentState in ShortTermMemory::grouped_info "
1991 << (*perceived_component_state_itr)->getDisplayName()
1992 <<
" cound not find corresponding perceived_component_state in the ShortTermMemory::perceived_info\n";
1997 perceived_component_state_itr->reset();
2006 perceived_support_system_state_itr++) {
2010 while (perceived_support_system_state_itr1 != perceived_support_system_state_end && !found) {
2012 (*perceived_support_system_state_itr)->checkIfIsIdenticalMentalSupportSystemState(**perceived_support_system_state_itr1);
2014 *perceived_support_system_state_itr = *perceived_support_system_state_itr1;
2016 perceived_support_system_state_itr1++;
2020 cout <<
"SupportSystemState in ShortTermMemory::grouped_info " << (*perceived_support_system_state_itr)->getDisplayName()
2021 <<
" cound not find corresponding perceived_support_system_state in the ShortTermMemory::perceived_info" << endl;
2022 ofstream fout(
"err messages.txt", ios::app);
2023 fout <<
r5pars_.timesno <<
" SupportSystemState in ShortTermMemory::grouped_info "
2024 << (*perceived_support_system_state_itr)->getDisplayName()
2025 <<
" cound not find corresponding perceived_support_system_state in the ShortTermMemory::perceived_info\n";
2030 perceived_support_system_state_itr->reset();
2039 perceived_parameter_value_itr++) {
2043 while (perceived_parameter_value_itr1 != perceived_parameter_value_end && !found) {
2045 (*perceived_parameter_value_itr)->checkIfIsIdenticalMentalParameterValue(**perceived_parameter_value_itr1);
2047 *perceived_parameter_value_itr = *perceived_parameter_value_itr1;
2049 perceived_parameter_value_itr1++;
2053 cout <<
"ParameterValue in ShortTermMemory::grouped_info " << (*perceived_parameter_value_itr)->getDisplayName()
2054 <<
" cound not find corresponding perceived_parameter_value in the ShortTermMemory::perceived_info" << endl;
2055 ofstream fout(
"err messages.txt", ios::app);
2056 fout <<
r5pars_.timesno <<
" ParameterValue in ShortTermMemory::grouped_info "
2057 << (*perceived_parameter_value_itr)->getDisplayName()
2058 <<
" cound not find corresponding perceived_parameter_value in the ShortTermMemory::perceived_info\n";
2063 perceived_parameter_value_itr->reset();
2072 perceived_parameter_trend_itr++) {
2076 while (perceived_parameter_trend_itr1 != perceived_parameter_trend_end && !found) {
2078 (*perceived_parameter_trend_itr)->checkIfIsIdenticalMentalParameterTrend(**perceived_parameter_trend_itr1);
2080 *perceived_parameter_trend_itr = *perceived_parameter_trend_itr1;
2082 perceived_parameter_trend_itr1++;
2086 cout <<
"ParameterTrend in ShortTermMemory::grouped_info " << (*perceived_parameter_trend_itr)->getDisplayName()
2087 <<
" cound not find corresponding perceived_parameter_trend in the ShortTermMemory::perceived_info" << endl;
2088 ofstream fout(
"err messages.txt", ios::app);
2089 fout <<
r5pars_.timesno <<
" ParameterTrend in ShortTermMemory::grouped_info "
2090 << (*perceived_parameter_trend_itr)->getDisplayName()
2091 <<
" cound not find corresponding perceived_parameter_trend in the ShortTermMemory::perceived_info\n";
2096 perceived_parameter_trend_itr->reset();
2104 mental_belief_itr++) {
2108 while (mental_belief_itr1 != mental_belief_end && !found) {
2109 found = (*mental_belief_itr)->checkIfIsIdenticalExpectedMentalBelief(**mental_belief_itr1);
2111 *mental_belief_itr = *mental_belief_itr1;
2113 mental_belief_itr1++;
2117 cout <<
"MentalBelief in ShortTermMemory::grouped_info " << (*mental_belief_itr)->getInfoName()
2118 <<
" cound not find corresponding mental_belief in the ShortTermMemory::perceived_info" << endl;
2119 ofstream fout(
"err messages.txt", ios::app);
2120 fout <<
r5pars_.timesno <<
" MentalBelief in ShortTermMemory::grouped_info "
2121 << (*mental_belief_itr)->getInfoName()
2122 <<
" cound not find corresponding mental_belief in the ShortTermMemory::perceived_info\n";
2127 mental_belief_itr->reset();
2133 bool found_goal =
false;
2134 auto goal_itr = this->
goal.rbegin();
2135 auto goal_itr_end = this->
goal.rend();
2136 while (goal_itr != goal_itr_end && !found_goal) {
2138 goal_pt = goal_itr->get();
2148 bool found_strategy =
false;
2149 auto strategy_itr = this->
strategy.rbegin();
2150 auto strategy_itr_end = this->
strategy.rend();
2151 while (strategy_itr != strategy_itr_end && !found_strategy) {
2153 strategy_pt = strategy_itr->get();
2154 found_strategy =
true;
2163 bool found_subgoal =
false;
2164 auto subgoal_itr = this->
subgoal.rbegin();
2165 auto subgoal_itr_end = this->
subgoal.rend();
2166 while (subgoal_itr != subgoal_itr_end && !found_subgoal) {
2168 subgoal_pt = subgoal_itr->get();
2169 found_subgoal =
true;
2178 str =
"InfoChunk::retrieveInfoChunkFromFile File retrieval error in a function prior to ";
2179 str += _err_message;
2180 ofstream fout(
"err messages.txt", ios::app);
2181 cout <<
" " <<
r5pars_.timesno <<
" " << str << endl;
2182 fout << str <<
'\n';
2193 if (i < 0) {
return i; }
2196 mc_ritr != this->perceived_component_state.rend() && found ==
false; mc_ritr++) {
2197 if (mc_ritr->get() == _mc_pt) {
2210 if (i < 0) {
return i; }
2213 mss_ritr != this->perceived_support_system_state.rend() && found ==
false; mss_ritr++) {
2214 if (mss_ritr->get() == _mss_pt) {
2227 if (i < 0) {
return i; }
2231 if (mp_ritr->get() == _mp_pt) {
2244 if (i < 0) {
return i; }
2246 for (
auto ma_ritr = this->
perceived_alarms.rbegin(); ma_ritr != this->perceived_alarms.rend(); ma_ritr++) {
2247 if (ma_ritr->get() == _ma_pt) {
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
void setTempTypeOfConsequence(Consequence)
Stores the consequence of the end state the running sequence will get.
void setTempESMessage(std::string)
Stores the description of the end state the running sequence will get if it is terminated (set by mod...
std::string getProcedureName()
std::string getStepName()
void replaceObjecByPointerForGroupedInfoActionPack(InfoChunk &)
bool diagnosisIsIncluded(std::string)
DecisionProcedureStep * identifyTheMentalProcedureToBePerformed(std::string, std::string)
void pointToTheNewActionPack(DecisionActionPack *)
std::vector< std::shared_ptr< MentalSupportSystemState > > perceived_support_system_state
void interruptCurrentProcedureStep()
void replaceObjecByPointerForGroupedInfoProcedureStep(InfoChunk &)
void addANewSubGoal(int, int)
DecisionAction * checkExistanceOfAction(std::string)
DecisionSubGoal * getActiveSubGoalPt()
int getTotalNumberOfFailedDiagnosis()
std::string getCurrentDiagnosis()
void interruptCurrentSubGoal()
void pauseCurrenDiagnosisAndAddANewOne(std::string)
void interruptCurrentActionObjective()
std::vector< std::shared_ptr< MentalParameterValue > > perceived_parameter_value
std::vector< std::shared_ptr< DecisionSubGoal > > subgoal
void pointToTheNewGoal(DecisionGoal *)
int ReturnPositionOfOneMentalParameterValue(MentalParameterValue *)
std::string getCurrentProceduralStepName()
void interruptCurrentAction()
DecisionProcedureStep * getCurrentProcedureStepPtr(int)
MentalParameterValue * checkExistanceOfPerceivedParameterValue(std::string)
std::string getCurrentInstinctiveResponseProceduralStepName()
void clearInfoChunkPointers()
bool includeActiveDiagnosis()
void replaceObjecByPointerForGroupedInfoSubGoal(InfoChunk &)
MentalAlarm * checkExistanceOfPerceivedAlarms(std::string)
std::vector< std::shared_ptr< MentalParameterTrend > > perceived_parameter_trend
DecisionStrategy * getActiveStrategyPt()
void replaceObjecByPointerForGroupedInfoStrategy(InfoChunk &)
void interruptCurrentDiagnosis()
std::vector< std::shared_ptr< DecisionStrategy > > strategy
std::string getCurrentProcedureName()
int getTotalNumberOfAlarmPerceived()
bool isThereMentalProcedureWaitingForExecution(std::string, std::string)
void pauseCurrenSubGoalAndAddANewOne(int)
int checkWhetherExpectedParameterValueMatchObservation(KBExpectedParameterValueUnit *)
void replaceObjecByPointerForGroupedInfoAlarm(InfoChunk &)
int ReturnPositionOfOneMentalAlarmInTheVector(MentalAlarm *)
void pauseCurrenGoalAndAddANewOne(int)
DecisionProcedureStep * checkExistanceOfAProcedure(std::string, std::string)
MentalComponentState * checkExistanceOfPerceivedComponentState(std::string)
int checkWhetherExpectedAlarmMatchObservation(KBExpectedAlarmStateUnit *)
void interruptCurrentGoal()
int checkWhetherExpectedComponentStateMatchObservation(KBExpectedComponentStateUnit *)
DecisionGoal * getActiveGoalPt()
std::vector< std::shared_ptr< DecisionAction > > action
void addANewGoal(int, int)
void interruptCurrentStrategy()
void copyInfoChunk(InfoChunk &)
int checkWhetherExpectedSupportSystemStateMatchObservation(KBExpectedSupportSystemStateUnit *)
void pointToTheNewActionObjective(DecisionActionObjective *)
void pointToTheNewProcedureStep(DecisionProcedureStep *)
std::string doneWithCurrentDiagnosisAndGoForPreviouslyPausedOne()
std::vector< std::shared_ptr< DecisionActionPack > > action_pack
void pointToTheNewAction(DecisionAction *)
DecisionProcedureStep * getCurrentInstinctiveResponseProcedurePtr()
std::vector< std::shared_ptr< ExpectedMentalBelief > > mental_belief
void pauseCurrenStrategyAndAddANewOne(int)
void pointToTheNewSubGoal(DecisionSubGoal *)
void replaceObjecByPointerForGroupedInfoGoal(InfoChunk &)
int doneWithCurrentSubGoalAndGoForPreviouslyPausedOne()
void saveInfoChunkToFile(std::ofstream &)
void addANewStrategy(int, int)
void replaceObjecByPointerForGroupedInfoDiagnosis(InfoChunk &)
MentalParameterTrend * checkExistanceOfPerceivedParameterTrend(std::string)
int checkWhetherExpectedParameterTrendMatchObservation(KBExpectedParameterTrendUnit *)
int checkWhetherExpectedParameterDifferenceMatchObservation(KBExpectedParameterDifferenceUnit *)
MentalSupportSystemState * checkExistanceOfPerceivedSupportSystemState(std::string)
void pointToAvtiveGoalAndStrategy(InfoChunk &)
DecisionProcedureStep * checkExistanceOfAnInstinctiveResponseProcedure(std::string, std::string)
void replaceObjecByPointerForGroupedInfoMentalBelief(InfoChunk &)
void addANewDiagnosis(std::string, int)
void pointToTheNewStrategy(DecisionStrategy *)
void pointToTheNewInstinctiveResponseProcedureStep(DecisionProcedureStep *)
int getStateOfAProcedureStep(std::string, std::string)
void replaceObjecByPointerForGroupedInfoSupportSystemState(InfoChunk &)
std::vector< std::shared_ptr< DecisionGoal > > goal
std::vector< std::shared_ptr< DecisionDiagnosis > > diagnosis
int doneWithCurrentStrategyAndGoForPreviouslyPausedOne()
void pointToTheNewDiagnosis(DecisionDiagnosis *)
std::vector< std::shared_ptr< DecisionProcedureStep > > instinctive_response_procedure
std::vector< std::shared_ptr< MentalAlarm > > perceived_alarms
int doneWithCurrentGoalAndGoForPreviouslyPausedOne()
std::vector< std::shared_ptr< MentalComponentState > > perceived_component_state
std::vector< std::shared_ptr< DecisionProcedureStep > > procedure_step
int ReturnPositionOfOneMentalComponentStateInTheVector(MentalComponentState *)
void replaceObjecByPointerForGroupedInfoActionObjective(InfoChunk &)
double getTotalWeightOfAlarmPerceived()
void addNewInstinctiveResponseProcedure(std::string, std::string, int, int, double)
void replaceObjecByPointerForGroupedInfoParameterValue(InfoChunk &)
void setStateOfAProcedureStep(std::string, std::string, int)
void replaceObjecByPointerForGroupedInfoAll(InfoChunk &)
void replaceObjecByPointerForGroupedInfoInstinctiveResponseProcedure(InfoChunk &)
bool activateTheDiagnosis(std::string)
ExpectedMentalBelief * checkExistanceOfMentalBelief(std::string)
void addNewProcedureStep(std::string, std::string, int)
void replaceObjecByPointerForGroupedInfoComponentState(InfoChunk &)
void generateErrorMessage(std::string)
int getMentalPriorityOfAProcedureStep(std::string, std::string)
int getTotalPieceOfInfoPerceived()
void replaceObjecByPointerForGroupedInfoAction(InfoChunk &)
void interruptCurrentActionPack()
int ReturnPositionOfOneMentalSupportSystemStateInTheVector(MentalSupportSystemState *)
std::vector< std::shared_ptr< DecisionActionObjective > > action_objective
std::string getCurrentInstinctiveResponseProcedureName()
void replaceObjecByPointerForGroupedInfoParameterTrend(InfoChunk &)
void retrieveInfoChunkFromFile(std::ifstream &)
void updateActionState(std::string, int)
std::string getInfoName()
KBElement first_indicator
KBElement second_indicator
double getThresholdValueThatActivatesExpectation()
double getExpectedValue2()
double getExpectedValue1()
void setStateOfActivation(int)
int getStateOfActivation()
constexpr int Interrupted
BranchRecord Branch_center
Dynamic event tree state.