← Documentation
ADS-IDAC Engine 5.0.0
KBHardWiredUnit.h
Go to the documentation of this file.
1#pragma once
2
3#include <iostream>
4#include <typeinfo>
5// KBHardWiredUnit.h: interface for the KBHardWiredUnit class.
6//
8
9#include "KBElement.h"
17#include "../ControlPanel/StateOfActivation.h"
18#include "../Procedure/ProcedureStepInfo.h"
19#include "../CalculationAid/Timer.h"
20#include "../CalculationAid/Probability.h"
21#include <boost/serialization/export.hpp>
22
23// Include Boost Serialization headers
24#include <boost/serialization/vector.hpp>
25#include <boost/serialization/base_object.hpp>
26#include <boost/serialization/assume_abstract.hpp>
27#include <boost/archive/text_oarchive.hpp>
28#include <boost/archive/text_iarchive.hpp>
29#include <fstream>
30#include <memory>
31#include <vector>
32#include <boost/serialization/unique_ptr.hpp>
33
34namespace boost { namespace archive {
35class binary_oarchive;
36class binary_iarchive;
37} }
38
40public:
41 // State hooks: activation, confidence, fulfilled counters, and the
42 // expectation elements' state. Definitions are re-seeded from the operator's
43 // KB master. serialize() carries every member (rinfo text paths, defensive uses).
44 void state_save(boost::archive::binary_oarchive& ar) const;
45 void state_load(boost::archive::binary_iarchive& ar);
46
48 virtual ~KBHardWiredUnit();
49 void readInfoFromFile(std::ifstream &);
52 double getConfidenceLevel();
54 void checkForAlarmState(std::string, int);
55 void checkForComponentState(std::string, int);
56 void checkForSupportSystemState(std::string, int);
57 void checkForParameterValue(std::string, double, int);
58 void checkForParameterTrend(std::string, int);
59 void checkForControl(std::string, double);
60 void checkForMentalBelief(std::string, int);
61 void checkForProcedureActivity(std::string, int);
83 void saveKBHardWiredUnitToFile(std::ofstream &);
84 void retrieveKBHardWiredUnitFromFile(std::ifstream &);
85 std::vector<std::unique_ptr<KBExpectedAlarmStateUnit>> expected_alarm_state;
86 std::vector<std::unique_ptr<KBExpectedComponentStateUnit>> expected_component_state;
87 std::vector<std::unique_ptr<KBExpectedSupportSystemStateUnit>> expected_support_system_state;
88 std::vector<std::unique_ptr<KBExpectedParameterValueUnit>> expected_parameter_value;
89 std::vector<std::unique_ptr<KBExpectedParameterTrendUnit>> expected_parameter_trend;
90 std::vector<std::unique_ptr<HardWiredControlActivity>> expected_control;
91 std::vector<std::unique_ptr<HardWiredMentalBelief>> expected_mental_belief;
92 std::vector<std::unique_ptr<HardWiredProcedureActivity>> expected_procedure_activity;
95
96private:
98 template<class Archive>
99 void serialize(Archive & ar, const unsigned int version)
100 {
101// std::cout << "Serializing class: " << typeid(*this).name() << std::endl;
102 ar & boost::serialization::base_object<KBElement>(*this);
103 ar & boost::serialization::base_object<StateOfActivation>(*this);
104 ar & boost::serialization::base_object<ProcedureStepInfo>(*this);
105 // Serialize all members
106 ar & confidence_level;
117 // Serialize vectors of pointers requires special handling
118 // This is a simplified approach and might need adjustment based on actual object serialization needs
124 ar & expected_control;
127 ar & activation_delay;
128 ar & dormancy_time;
131 }
132
141};
142
143
144BOOST_CLASS_EXPORT_KEY(KBHardWiredUnit)
std::vector< std::unique_ptr< KBExpectedSupportSystemStateUnit > > expected_support_system_state
int number_of_fulfilled_procedure_activity
int getNumberOfFulfilledAlarmState()
void checkForComponentState(std::string, int)
int getNumberOfFulfilledControl()
void readInfoFromFile(std::ifstream &)
int number_of_fulfilled_parameter_value
void checkForAlarmState(std::string, int)
std::vector< std::unique_ptr< HardWiredProcedureActivity > > expected_procedure_activity
void checkForMentalBelief(std::string, int)
void checkForParameterTrend(std::string, int)
int getTotalNumberOfExpectation()
void setMentalProcedurePriority(int)
void calculateTotalNumberOfExpectation()
void setNumberOfFulfilledAlarmState(int)
std::vector< std::unique_ptr< KBExpectedComponentStateUnit > > expected_component_state
Probability branch_probability
void state_load(boost::archive::binary_iarchive &ar)
void checkForProcedureActivity(std::string, int)
Probability activation_probability
int number_of_fulfilled_parameter_trend
void setNumberOfFulfilledComponentState(int)
int number_of_fulfilled_component_state
void copyKBHardWiredUnit(KBHardWiredUnit &)
void retrieveKBHardWiredUnitFromFile(std::ifstream &)
void serialize(Archive &ar, const unsigned int version)
void checkForSupportSystemState(std::string, int)
std::vector< std::unique_ptr< KBExpectedParameterValueUnit > > expected_parameter_value
void setNumberOfFulfilledMentalBelief(int)
int number_of_fulfilled_alarm_state
std::vector< std::unique_ptr< KBExpectedParameterTrendUnit > > expected_parameter_trend
std::vector< std::unique_ptr< HardWiredMentalBelief > > expected_mental_belief
int getNumberOfFulfilledParameterTrend()
void setTotalNumberOfExpectation(int)
virtual ~KBHardWiredUnit()
std::vector< std::unique_ptr< HardWiredControlActivity > > expected_control
void setNumberOfFulfilledControl(int)
void recalculateConfidenceLevel()
int getMentalProcedurePriority()
std::vector< std::unique_ptr< KBExpectedAlarmStateUnit > > expected_alarm_state
double getConfidenceLevel()
void setNumberOfFulfilledParameterValue(int)
void saveKBHardWiredUnitToFile(std::ofstream &)
int number_of_fulfilled_mental_belief
int getNumberOfFulfilledComponentState()
void checkForControl(std::string, double)
int number_of_fulfilled_support_system_state
int getNumberOfFulfilledSupportSystemState()
int getNumberOfFulfilledParameterValue()
friend class boost::serialization::access
void checkForParameterValue(std::string, double, int)
void setNumberOfFulfilledSupportSystemState(int)
double calculateConfidenceLevel()
void state_save(boost::archive::binary_oarchive &ar) const
int getNumberOfFulfilledProcedureActivity()
int getNumberOfFulfilledMentalBelief()
void setNumberOfFulfilledProcedureActivity(int)
void setNumberOfFulfilledParameterTrend(int)
Definition: Timer.h:17