← Documentation
ADS-IDAC Engine 5.0.0
TimeConstrainedUnit.h
Go to the documentation of this file.
1#include <iostream>
2#include <typeinfo>
3// TimeConstrainedUnit.h
4#pragma once
5
6#include <deque>
7#include <fstream>
8#include <string>
9#include "../ControlPanel/SystemDisplay.h"
10#include "../ControlPanel/DisplayParameterValue.h"
11#include "InfoChunk.h"
12#include <boost/serialization/serialization.hpp>
13#include <boost/serialization/deque.hpp>
14#include <boost/serialization/export.hpp>
15#include <boost/archive/text_oarchive.hpp>
16#include <boost/archive/text_iarchive.hpp>
17
19public:
21 virtual ~TimeConstrainedUnit();
26 double getParameterValue();
27 double getParameterRate();
32 double getLowerTimeThreshold();
33 double getUpperTimeThreshold();
34 double getDecayTau();
35 double getBuildupTau();
36 void setLowerTimeThreshold(double);
37 void setUpperTimeThreshold(double);
38 void setDecayTau(double);
39 void setBuildupTau(double);
40 void setNormalParameterThreshold(double);
42 void setParameterRate(double);
43 void setTimeThresholdExceeded(double);
44 void setThresholdExceeded(bool);
46 void CalculateTimeConstrainedUnitPIFValue(int, bool, double);
47 void readInfoFromFile(std::ifstream &);
49 void setCorrespondingIndicatorName(std::string);
51 void setTimeConstrainedUnitName(std::string);
52 std::string getTimeConstrainedUnitName();
55 void saveTimeConstrainedUnitToFile(std::ofstream &);
56 void retrieveTimeConstrainedUnitFromFile(std::ifstream &);
58 void updateRawData(double, InfoChunk *);
61
62private:
71 double decay_tau;
75
76 // Grant serialization access
78
79 template<class Archive>
80 void serialize(Archive & ar, const unsigned int version) {
81// std::cout << "Serializing class: " << typeid(*this).name() << std::endl;
85 ar & Initial_Value;
86 ar & Parameter_Value;
87 ar & Parameter_Rate;
94 ar & decay_tau;
95 ar & buildup_tau;
100 // Note: Serialization of 'ptr_to_corresponding_indicator' might require special handling
101 }
102};
std::deque< double > time_constrained_time_history
void serialize(Archive &ar, const unsigned int version)
void setLowerTimeThreshold(double)
void retrieveTimeConstrainedUnitFromFile(std::ifstream &)
void setTimeThresholdExceeded(double)
std::deque< double > time_constrained_parameter_history
void copyTimeConstrainedUnit(TimeConstrainedUnit &)
void setAccidentParameterThreshold(double)
void CalculateTimeConstrainedUnitPIFValue(int, bool, double)
SystemDisplay * getPtrToCorrespondingIndicator()
void setNormalParameterThreshold(double)
void setCorrespondingIndicatorName(std::string)
SystemDisplay * ptr_to_corresponding_indicator
void setTimeConstrainedUnitName(std::string)
friend class boost::serialization::access
std::string Corresponding_Indicator_Name
void saveTimeConstrainedUnitToFile(std::ofstream &)
void setPtrToCorrespondingIndicator(SystemDisplay *)
void setUpperTimeThreshold(double)
std::string getCorrespondingIndicatorName()
std::string getTimeConstrainedUnitName()
void updateRawData(double, InfoChunk *)
std::string Time_Constrained_Unit_Name
void readInfoFromFile(std::ifstream &)