← Documentation
ADS-IDAC Engine 5.0.0
HWReliabilityFTUnit.cpp
Go to the documentation of this file.
2#include "../Scheduler/Scheduler.h"
3#ifdef ENABLE_HCL
4#include "../../HCL/hcl/HCLEngine.h"
5#endif
6#include "../ControlPanel/ControlPanel.h"
7#include <boost/serialization/export.hpp>
8#include "../Global/SimulationContext.h"
9using namespace std;
10
11
13#ifdef ENABLE_HCL
14 hclEngine = new HCLEngine();
15#endif
16}
17
18HWReliabilityFTUnit::HWReliabilityFTUnit(const string &topNode) : topNode(topNode) {
21
22#ifdef ENABLE_HCL
23 hclEngine = new HCLEngine();
24 hclEngine->setBBNSolver(hclEngine->BBN_SMILE);
25 hclEngine->setBDDConstructor(hclEngine->BDD_FORWARD);
26 hclEngine->setOrderingRule(hclEngine->ORDER_NAIVE);
27 hclEngine->addResolver(new HCLFTResolver(g_sim.SScheduler.getHardwareReliabilityDirectory()));
28 StringVector branches;
29 hclEngine->addESDNode("END_STATE_F", "", branches);
30 hclEngine->addESDNode("END_STATE_S", "", branches);
31
32 branches.push_back("END_STATE_F");
33 branches.push_back("END_STATE_S");
34 hclEngine->addESDNode("INITIATOR", topNode, branches);
35
36 hclEngine->selectAll("INITIATOR");
37
38 if (hclEngine->getErrorCount() == 0) {
39 hclEngine->printFTBasicNodes();
40 basicNodes = hclEngine->getFTBasicNodes();
41 } else {
42 ofstream fout("err messages.txt", ios::app);
43 cout
44 << "HWReliabilityFTUnit::HWReliabilityFTUnit(topNode): could not find Fault Tree .xml file with Top Node name: "
45 << topNode
46 << endl;
47 fout << r5pars_.timesno
48 << "HWReliabilityFTUnit::HWReliabilityFTUnit(topNode): could not find Fault Tree .xml file with Top Node name: "
49 << topNode
50 << '\n';
51 fout.close();
52 }
53#endif
54}
56// delete hclEngine;
57}
61 int current_state;
62 int activating_state = sim::None;
67 }
69 if (current_state != initial_component_state) {
70 activating_state = sim::State::Active;
72 }
73 } else {
74 activating_state = sim::State::Done;
75 }
76 return activating_state;
77}
80}
82 this->copyBranchSystemAction(_hwu);
83 this->copyStateOfActivation(_hwu);
86 topNode = _hwu.getTopNode();
87#ifdef ENABLE_HCL
88 hclEngine = _hwu.getHclEngine();
89#endif
91}
93 fout << initial_component_state << '\n';
96}
101}
103 double pF = 0.0;
104#ifdef ENABLE_HCL
105 HWReliabilityFTUnit::hclEngine->quantify("END_STATE_F", pF);
106#endif
107 this->setProbability(pF);
108}
109const string &HWReliabilityFTUnit::getTopNode() const {
110 return topNode;
111}
112void HWReliabilityFTUnit::setTopNode(const string &topNode) {
114}
115const vector<string> &HWReliabilityFTUnit::getBasicNodes() const {
116 return basicNodes;
117}
118void HWReliabilityFTUnit::setBasicNodes(const vector<string> &basicNodes) {
120}
121#ifdef ENABLE_HCL
122HCLEngine *HWReliabilityFTUnit::getHclEngine() const {
123 return hclEngine;
124}
125void HWReliabilityFTUnit::setHclEngine(HCLEngine *hclEngine) {
126 HWReliabilityFTUnit::hclEngine = hclEngine;
127}
128#endif
131}
134}
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
void saveBranchSystemActionToFile(std::ofstream &)
void retrieveBranchSystemActionFromFile(std::ifstream &)
void copyBranchSystemAction(BranchSystemAction &)
SystemDisplay * getDisplayFromMap(std::string)
ControlPanelDisplay indicators
Definition: ControlPanel.h:53
void copyHWReliabilityFTUnit(HWReliabilityFTUnit &)
const std::string & getTopNode() const
std::vector< std::string > basicNodes
void retrieveHWReliabilityFTUnitFromFile(std::ifstream &)
void setBasicNodes(const std::vector< std::string > &basicNodes)
void saveHWReliabilityFTUnitToFile(std::ofstream &)
DisplayComponentState * corresponding_component_pt
void setCorrespondingComponentPt(DisplayComponentState *)
DisplayComponentState * getCorresponding_component_pt() const
const std::vector< std::string > & getBasicNodes() const
void setTopNode(const std::string &topNode)
void setCorresponding_component_pt(DisplayComponentState *corresponding_component_pt)
void setProbability(double)
Definition: Probability.cpp:26
std::string getHardwareReliabilityDirectory()
Definition: Scheduler.cpp:628
void setStateOfActivation(int)
void saveStateOfActivationToFile(std::ofstream &)
void retrieveStateOfActivationFromFile(std::ifstream &)
void copyStateOfActivation(StateOfActivation &)
struct @0 r5pars_
constexpr int Done
Definition: SimConstants.h:123
constexpr int Active
Definition: SimConstants.h:118
constexpr int None
Definition: SimConstants.h:75
Scheduler SScheduler
Simulation scheduling, parses CLI options.
ControlPanel Indicator
Control room panel state.