7#include "../ControlPanel/ControlPanel.h"
8#include <boost/serialization/export.hpp>
9#include "../Global/SimulationContext.h"
10#include <boost/archive/binary_oarchive.hpp>
11#include <boost/archive/binary_iarchive.hpp>
43 ifstream fin(_filename.c_str(), ios::in);
45 cout <<
"File: " << _filename <<
" cound not be found" << endl;
46 ofstream fout(
"err messages.txt", ios::app);
47 fout <<
r5pars_.timesno <<
" File: " << _filename <<
" cound not be found\n";
54 auto pt = std::make_unique<DiagnosisActionUnit>();
55 pt->readDiagnosisActionUnitInfoFromFile(fin);
64 bool branch_generated =
false;
73 double time, delay_time;
74 double control_value = 0.0;
80 if (priority_diagnosis != 0) {
82 if (branch_generated) {
83 return branch_generated;
94 str =
"Execute Knowledge Based Action: ";
127 ofstream fout(
"err messages.txt", ios::app);
128 cout <<
"DiagnosisActionModule::onceThroughProcessForReasoningStrategy - Parameter: " << action_ptr->
getControlParameterName() <<
" has not been perceived" << endl;
129 fout <<
r5pars_.timesno <<
" DiagnosisActionModule::onceThroughProcessForReasoningStrategy - Parameter: " << action_ptr->
getControlParameterName() <<
" has not been perceived\n";
133 ofstream fout(
"err messages.txt", ios::app);
134 cout <<
"DiagnosisActionModule::onceThroughProcessForReasoningStrategy - Control: " << action_ptr->
getInfoName() <<
" can not be recognized" << endl;
135 fout <<
r5pars_.timesno <<
" DiagnosisActionModule::onceThroughProcessForReasoningStrategy - Control: " << action_ptr->
getInfoName() <<
" can not be recognized\n";
159 ofstream fout(
"err messages.txt", ios::app);
160 cout <<
"DiagnosisActionModule::onceThroughProcessForReasoningStrategy - Control: " << action_ptr->
getInfoName() <<
" can not be recognized" << endl;
161 fout <<
r5pars_.timesno <<
" DiagnosisActionModule::onceThroughProcessForReasoningStrategy - Control: " << action_ptr->
getInfoName() <<
" can not be recognized\n";
180 branch_generated =
true;
187 str =
"Prerequisites for Knowledge Based Action: ";
189 str +=
" have not been met.";
205 return branch_generated;
212 bool diagnosis_found =
false;
213 int highest_priority = 100;
214 double event_confidence;
216 double highest_confidence = 0.5;
219 auto diagnosis_itr = this->
event_list.begin();
220 while (diagnosis_itr !=
event_list.end() && !diagnosis_found) {
223 priority_diagnosis = diagnosis_itr->get();
224 diagnosis_found =
true;
231 if (!diagnosis_found)
236 if ( event_confidence > highest_confidence &&
237 elem->reset_delay_time.getRemainingTime() <
r5pars_.timesno &&
238 elem->getDiagnosisPriority() < highest_priority )
240 if (elem->action_list.size() > 0) {
241 priority_diagnosis = elem.get();
242 highest_confidence = event_confidence;
247 if (priority_diagnosis) {
253 return priority_diagnosis;
261 auto pt = std::make_unique<DiagnosisActionUnit>();
262 pt->copyDiagnosisActionUnit(*src);
269 fout <<
"DiagnosisActionUnit" <<
'\n';
273 elem->saveDiagnosisActionUnitToFile(fout);
285 auto pt = std::make_unique<DiagnosisActionUnit>();
286 pt->retreiveDiagnosisActionUnitFromFile(fin);
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 addRecord(std::string, int)
void setActionTime(double)
void setTempTypeOfConsequence(Consequence)
Stores the consequence of the end state the running sequence will get.
void addAction(int, BranchAction *)
int getIDOfRecentGeneratedBranch()
void setTempESMessage(std::string)
Stores the description of the end state the running sequence will get if it is terminated (set by mod...
void displayInformation(std::string strInformation)
void setSenderAndReceiver(int, int)
void setTypeOfPauseActivity(int)
void setControlValue(double)
double getValueForOnOrFullyOpen()
double getValueForOffOrFullyClose()
SystemControl * getControlFromMap(std::string)
ControlPanelControl controls
void setActionName(std::string)
void retreiveDiagnosisActionModuleFromFile(std::ifstream &)
void copyDiagnosisActionModule(DiagnosisActionModule &)
void saveDiagnosisActionModuleToFile(std::ofstream &)
std::vector< std::unique_ptr< DiagnosisActionUnit > > event_list
void setNumberOfDiagnoses(int)
int getNumberOfDiagnoses()
void clearDiagnosisActionModule()
virtual ~DiagnosisActionModule()
DiagnosisActionUnit * getPtrToHighPriorityDiagnosisActionUnit(EventSymptomMatrix &)
void readDiagnosisActionModuleInfoFromFile(std::string)
bool onceThroughProcessForReasoningStrategy(Operator &, ShortTermMemory &, EventSymptomMatrix &)
bool getActionPrereqsEvaluated()
DiagnosisComponentActionUnit * getPriorityActionPtr()
void resetDiagnosisActionUnit()
bool setPtrToHighPriorityAction(Operator &, ShortTermMemory &)
int getDiagnosisPriority()
int getPrerequisiteState()
std::string getControlParameterName()
double getEventRationalConfidence(std::string)
double getDiagnosisFailureProbability()
MentalParameterValue * checkExistanceOfPerceivedParameterValue(std::string)
std::string getInfoName()
double getObservedParameterValue()
HumanFailureEventsBBN hfe_bbn
void setStateOfActivation(int)
DisplayType getTypeOfControl()
void setTimerAndProbability(double, double)
void setRemainingTime(double)
double calculateMeanRequiredTime()
constexpr int ParameterControl
constexpr int InductiveDeductive
ControlPanel Indicator
Control room panel state.
CommandControlCenter Command_handler
Command/control dispatch.
AnalysisInfoContainer Aux_info
Analysis records.
BranchRecord Branch_center
Dynamic event tree state.