EEROS  1.0.0.0
API for the EEROS Real-Time Robotics Framework
SafetyProperties.hpp
Go to the documentation of this file.
1 #ifndef ORG_EEROS_SAFETY_SAFETYPROPORTIES_HPP_
2 #define ORG_EEROS_SAFETY_SAFETYPROPORTIES_HPP_
3 
4 #include <stdint.h>
5 #include <vector>
7 #include <eeros/hal/HAL.hpp>
8 
9 namespace eeros {
10  namespace safety {
11 
12  // Forward declarations
13  class SafetySystem;
14 
16 
17  friend class SafetySystem;
18 
19  public:
21  virtual ~SafetyProperties();
22 
23  void addEventToLevel(SafetyLevel& level, SafetyEvent event, SafetyLevel& nextLevel, EventType type);
24  void addEventToLevelAndAbove(SafetyLevel& level, SafetyEvent event, SafetyLevel& nextLevel, EventType type);
25  void addEventToLevelAndBelow(SafetyLevel& level, SafetyEvent event, SafetyLevel& nextLevel, EventType type);
26  void addEventToAllLevelsBetween(SafetyLevel& lowerLevel, SafetyLevel& upperLevel, SafetyEvent event, SafetyLevel& nextLevel, EventType type);
28  bool verify();
29  void addLevel(SafetyLevel& level);
30  protected:
31  void setEntryLevel(SafetyLevel& entryLevel);
32 
33  std::function<void (SafetyContext*)> exitFunction;
34  std::vector<SafetyLevel*> levels;
35  std::vector<eeros::hal::OutputInterface*> criticalOutputs;
36  std::vector<eeros::hal::InputInterface*> criticalInputs;
37  private:
38  SafetyLevel* entryLevel;
39  uint32_t count;
40  };
41 
42  };
43 };
44 
45 #endif // ORG_EEROS_SAFETY_SAFETYPROPORTIES_HPP_
virtual ~SafetyProperties()
Definition: SafetyProperties.cpp:13
Safety system.
Definition: SafetySystem.hpp:19
void addEventToLevelAndAbove(SafetyLevel &level, SafetyEvent event, SafetyLevel &nextLevel, EventType type)
Definition: SafetyProperties.cpp:72
std::vector< eeros::hal::OutputInterface * > criticalOutputs
Definition: SafetyProperties.hpp:35
bool verify()
Definition: SafetyProperties.cpp:25
std::function< void(SafetyContext *)> exitFunction
Definition: SafetyProperties.hpp:33
Definition: SafetyLevel.hpp:33
std::vector< SafetyLevel * > levels
Definition: SafetyProperties.hpp:34
EventType
Definition: SafetyLevel.hpp:19
Definition: Config.hpp:14
void addEventToAllLevelsBetween(SafetyLevel &lowerLevel, SafetyLevel &upperLevel, SafetyEvent event, SafetyLevel &nextLevel, EventType type)
Definition: SafetyProperties.cpp:84
SafetyProperties()
Definition: SafetyProperties.cpp:9
void addEventToLevel(SafetyLevel &level, SafetyEvent event, SafetyLevel &nextLevel, EventType type)
Definition: SafetyProperties.cpp:68
std::vector< eeros::hal::InputInterface * > criticalInputs
Definition: SafetyProperties.hpp:36
void addLevel(SafetyLevel &level)
Definition: SafetyProperties.cpp:63
void setEntryLevel(SafetyLevel &entryLevel)
Definition: SafetyProperties.cpp:21
void addEventToLevelAndBelow(SafetyLevel &level, SafetyEvent event, SafetyLevel &nextLevel, EventType type)
Definition: SafetyProperties.cpp:78
Definition: SafetyProperties.hpp:15
Definition: SafetyLevel.hpp:21
SafetyLevel * getEntryLevel()
Definition: SafetyProperties.cpp:17