1 #ifndef ORG_EEROS_SIGNAL_CHECKER_HPP_ 2 #define ORG_EEROS_SIGNAL_CHECKER_HPP_ 12 using namespace safety;
14 template <
typename T =
double>
18 lowerLimit(lowerLimit),
19 upperLimit(upperLimit),
21 safetySystem(nullptr),
26 virtual void run()
override {
27 auto val = this->in.getSignal().getValue();
29 if (!((val > lowerLimit) && (val < upperLimit))) {
30 if (safetySystem !=
nullptr && safetyEvent !=
nullptr) {
31 if (activeLevel ==
nullptr || (activeLevel !=
nullptr && safetySystem->getCurrentLevel() >= *activeLevel)) {
32 log.warn() <<
"Signal checker \'" + this->getName() +
"\' fires!";
33 safetySystem->triggerEvent(*safetyEvent);
41 virtual void setLimits(T lowerLimit, T upperLimit) {
42 this->lowerLimit = lowerLimit;
43 this->upperLimit = upperLimit;
Safety system.
Definition: SafetySystem.hpp:19
virtual void setLimits(T lowerLimit, T upperLimit)
Definition: SignalChecker.hpp:41
SignalChecker(T lowerLimit, T upperLimit)
Definition: SignalChecker.hpp:17
Definition: Logger.hpp:15
virtual void setActiveLevel(SafetyLevel &level)
Definition: SignalChecker.hpp:55
SafetySystem * safetySystem
Definition: SignalChecker.hpp:62
Definition: SafetyLevel.hpp:33
bool fired
Definition: SignalChecker.hpp:61
Definition: Block1i.hpp:12
Definition: SignalChecker.hpp:15
SafetyLevel * activeLevel
Definition: SignalChecker.hpp:64
Definition: Config.hpp:14
eeros::logger::Logger log
Definition: SignalChecker.hpp:65
virtual void reset()
Definition: SignalChecker.hpp:46
SafetyEvent * safetyEvent
Definition: SignalChecker.hpp:63
virtual void registerSafetyEvent(SafetySystem &ss, SafetyEvent &e)
Definition: SignalChecker.hpp:50
virtual void run() override
Definition: SignalChecker.hpp:26
Definition: SafetyLevel.hpp:21
T upperLimit
Definition: SignalChecker.hpp:60