12#include "../Crew/OperatorDM.h"
13#include "../Crew/OperatorAT.h"
16#include "../Global/SimulationContext.h"
52 bool New_Statement_bl =
false;
75 prompt =
"Received new reading of ";
87 New_Statement_bl =
true;
106 if(found_sent_pt != 0)
108 auto stmt = make_unique<Statement>();
109 stmt->m_confidence = 1;
110 stmt->m_factual_type = 1;
111 stmt->m_sent_pt = found_sent_pt;
112 stmt->m_state =
true;
113 stmt->m_time_generated =
r5pars_.timesno;
116 stmt->m_time_range.m_end_time =
r5pars_.timesno;
117 stmt->m_time_range.m_start_time =
r5pars_.timesno;
121 stmt->m_time_range.m_time_after = this->
m_recent_state->m_time_perceived;
122 stmt->m_time_range.m_time_before =
r5pars_.timesno;
124 statement_pt = stmt.get();
129 if(_expecting ==
true)
162 New_Statement_bl =
false;
169 New_Statement_bl =
true;
171 if(New_Statement_bl ==
true)
191 if(found_sent_pt != 0)
193 auto stmt = make_unique<Statement>();
194 stmt->m_confidence = 1;
195 stmt->m_factual_type = 1;
196 stmt->m_sent_pt = found_sent_pt;
197 stmt->m_state =
true;
198 stmt->m_time_generated =
r5pars_.timesno;
199 stmt->m_time_range.m_start_time =
r5pars_.timesno;
200 stmt->m_time_range.m_end_time =
r5pars_.timesno;
201 statement_pt = stmt.get();
246 bool New_Statement_bl =
false;
268 prompt =
"Received new reading of ";
279 New_Statement_bl =
true;
298 if(found_sent_pt != 0)
300 auto stmt = make_unique<Statement>();
301 stmt->m_confidence = 1;
302 stmt->m_factual_type = 1;
303 stmt->m_sent_pt = found_sent_pt;
304 stmt->m_state =
true;
305 stmt->m_time_generated =
r5pars_.timesno;
306 stmt->m_time_range.m_time_after = this->
m_recent_state->m_time_perceived;
307 stmt->m_time_range.m_time_before =
r5pars_.timesno;
308 statement_pt = stmt.get();
318 New_Statement_bl =
false;
325 New_Statement_bl =
true;
327 if(New_Statement_bl ==
true)
347 if(found_sent_pt != 0)
349 auto stmt = make_unique<Statement>();
350 stmt->m_confidence = 1;
351 stmt->m_factual_type = 1;
352 stmt->m_sent_pt = found_sent_pt;
353 stmt->m_state =
true;
354 stmt->m_time_generated =
r5pars_.timesno;
355 stmt->m_time_range.m_start_time =
r5pars_.timesno;
356 stmt->m_time_range.m_end_time =
r5pars_.timesno;
357 statement_pt = stmt.get();
374 cout <<
"Time: " <<
r5pars_.timesno <<
": " << str <<
'\n';
377 ofstream fout(
"RMI.txt", ios::app);
378 fout <<
"Time: " <<
r5pars_.timesno <<
": " << str <<
'\n';
385 if(this->
m_recent_state->m_time_perceived >= _start && this->m_recent_state->m_time_perceived <= _end)
388 return found_state_schema_pt;
394 if(
e->m_time_perceived >= _start &&
e->m_time_perceived <= _end)
396 found_state_schema_pt =
e.get();
400 return found_state_schema_pt;
414 return found_state_schema_pt;
418 for(
auto ritr = this->
m_history_state_list.rbegin(); ritr != this->m_history_state_list.rend(); ++ritr)
420 if((*ritr)->m_time_perceived < _start)
422 found_state_schema_pt = ritr->get();
423 return found_state_schema_pt;
427 return found_state_schema_pt;
436 if(
e->m_time_perceived > _end)
438 found_state_schema_pt =
e.get();
439 return found_state_schema_pt;
450 return found_state_schema_pt;
496 this->
ErrorMessage(
"this->m_history_state_list.size()");
501 auto state_pt = make_unique<MRStateSchema>();
502 state_pt->CopyStateSchemaFromAnother(
e.get());
510 cout <<
r5pars_.timesno <<
" " << str <<
" in MRAlarmUnit.cpp" <<
'\n';
511 ofstream fout(
"err messages.txt", ios::app);
512 fout <<
r5pars_.timesno <<
" " << str <<
'\n';
Diagnostic reasoning engine — knowledge representation, mental model, and inference.
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
void CopyIDElementToRestartInfo(IDElement *)
SentenceUnit * GetSemanticSentenceOfThisInvestigator()
Statement * m_Statement_pt
MRStateSchema * CheckFirstAlarmStateAfterATime(float _end)
MRStateSchema * CheckLastAlarmStateBeforeATime(float _start)
void BuildConnectionsForThisMRAlarmUnit(void *)
void ReadAlarmIndication(double)
void PrintMessage(std::string)
std::string m_ID_recent_action_statement
void ErrorMessage(std::string)
void CopyMRAlarmUnitInfoFromAnother(MRAlarmUnit *)
std::vector< std::unique_ptr< MRStateSchema > > m_history_state_list
Statement * m_recent_state_statement
void AddNewAlarmState(int, int, bool)
MRStateSchema * CheckAlarmStateWithinTimeRange(float _start, float _end)
std::string m_alarm_indicator_name
Statement * m_recent_action_statement
void ConvertStaticInfoToString()
std::unique_ptr< MRStateSchema > m_recent_state
void AddNewAlarmStateForFirstRoundCheck(int, int)
std::string m_ID_recent_state_statement
std::unique_ptr< ReasonMachine > m_RM
void ActiveFetchAlarmStateInfo(std::string, int)
std::unique_ptr< KBConcept > m_Concept_Base
void ActivationUpdateByRefreshAStatement(Statement *)
Investigator * m_working_on_invest_pt
void AddDeltaToCognitiveLoad(float)
void AddANewStatement(Statement *)
Statement * FindStatementByID(std::string)
SentenceUnit * CheckExistInSemanticPoolBySentence(SentenceUnit *)
void AddDeltaToSystemDynamics(float)
void RefreshStatementEndTimeToCurrentTime(int)
IDElement * m_investigator_ID_pt
OperatorAT Action_Taker
Crew action execution model.
OperatorDM Decision_Maker
Crew decision-making model.