45 const std::string& disablePath,
const std::unordered_set<std::string>& outputTags = {},
46 const std::unordered_set<std::string>& parameterTags = {});
58 void setStatus(StatusOutput::Status newStatus);
69 const std::string& parameterPath,
const std::string& description,
70 const std::unordered_set<std::string>& outputTags = {},
71 const std::unordered_set<std::string>& parameterTags = {});
74 const std::string& warningThresholdPath,
const std::string& faultThresholdPath,
const std::string& disablePath,
75 const std::string& description,
const std::unordered_set<std::string>& outputTags = {},
76 const std::unordered_set<std::string>& parameterTags = {});
106 const std::string& parameterPath,
const std::string& description,
107 const std::unordered_set<std::string>& outputTags = {},
108 const std::unordered_set<std::string>& parameterTags = {});
111 const std::string& warningThresholdPath,
const std::string& faultThresholdPath,
const std::string& disablePath,
112 const std::string& description,
const std::unordered_set<std::string>& outputTags = {},
113 const std::unordered_set<std::string>& parameterTags = {});
144 const std::string& parameterPath,
const std::string& description,
145 const std::unordered_set<std::string>& outputTags = {},
146 const std::unordered_set<std::string>& parameterTags = {});
149 const std::string& warningLowerThresholdPath,
const std::string& warningUpperThresholdPath,
150 const std::string& faultLowerThresholdPath,
const std::string& faultUpperThresholdPath,
151 const std::string& disablePath,
const std::string& description,
152 const std::unordered_set<std::string>& outputTags = {},
153 const std::unordered_set<std::string>& parameterTags = {});
202 const std::string& parameterPath,
const std::string& description,
203 const std::unordered_set<std::string>& outputTags = {},
204 const std::unordered_set<std::string>& parameterTags = {});
217 const std::string& requiredValuePath,
const std::string& disablePath,
const std::string& description,
218 const std::unordered_set<std::string>& outputTags = {},
219 const std::unordered_set<std::string>& parameterTags = {});
242 const std::string& parameterPath,
const std::string& description,
243 const std::unordered_set<std::string>& outputTags,
const std::unordered_set<std::string>& parameterTags)
244 :
MaxMonitor(owner, inputPath, outputPath, parameterPath +
"/upperWarningThreshold",
245 parameterPath +
"/upperFaultThreshold", parameterPath +
"/disable", description, outputTags, parameterTags) {}
250 const std::string& warningThresholdPath,
const std::string& faultThresholdPath,
const std::string& disablePath,
251 const std::string& description,
const std::unordered_set<std::string>& outputTags,
252 const std::unordered_set<std::string>& parameterTags)
253 :
MonitorBase(owner, description, outputPath, disablePath, outputTags, parameterTags),
254 watch(this, inputPath,
"",
"Value to monitor"),
255 warningThreshold(this, warningThresholdPath,
"",
"Warning threshold to compare with", parameterTags),
256 faultThreshold(this, faultThresholdPath,
"",
"Fault threshold to compare with", parameterTags) {}
262 ReadAnyGroup group{watch, disable, warningThreshold, faultThreshold};
266 setStatus(StatusOutput::Status::OFF);
268 else if(watch >= faultThreshold) {
269 setStatus(StatusOutput::Status::FAULT);
271 else if(watch >= warningThreshold) {
272 setStatus(StatusOutput::Status::WARNING);
275 setStatus(StatusOutput::Status::OK);
286 const std::string& parameterPath,
const std::string& description,
287 const std::unordered_set<std::string>& outputTags,
const std::unordered_set<std::string>& parameterTags)
288 :
MinMonitor(owner, inputPath, outputPath, parameterPath +
"/lowerWarningThreshold",
289 parameterPath +
"/lowerFaultThreshold", parameterPath +
"/disable", description, outputTags, parameterTags) {}
294 const std::string& warningThresholdPath,
const std::string& faultThresholdPath,
const std::string& disablePath,
295 const std::string& description,
const std::unordered_set<std::string>& outputTags,
296 const std::unordered_set<std::string>& parameterTags)
297 :
MonitorBase(owner, description, outputPath, disablePath, outputTags, parameterTags),
298 watch(this, inputPath,
"",
"Value to monitor"),
299 warningThreshold(this, warningThresholdPath,
"",
"Warning threshold to compare with", parameterTags),
300 faultThreshold(this, faultThresholdPath,
"",
"Fault threshold to compare with", parameterTags) {}
306 ReadAnyGroup group{watch, disable, warningThreshold, faultThreshold};
310 setStatus(StatusOutput::Status::OFF);
312 else if(watch <= faultThreshold) {
313 setStatus(StatusOutput::Status::FAULT);
315 else if(watch <= warningThreshold) {
316 setStatus(StatusOutput::Status::WARNING);
319 setStatus(StatusOutput::Status::OK);
330 const std::string& parameterPath,
const std::string& description,
331 const std::unordered_set<std::string>& outputTags,
const std::unordered_set<std::string>& parameterTags)
332 :
RangeMonitor(owner, inputPath, outputPath, parameterPath +
"/lowerWarningThreshold",
333 parameterPath +
"/upperWarningThreshold", parameterPath +
"/lowerFaultThreshold",
334 parameterPath +
"/upperFaultThreshold", parameterPath +
"/disable", description, outputTags, parameterTags) {}
339 const std::string& warningLowerThresholdPath,
const std::string& warningUpperThresholdPath,
340 const std::string& faultLowerThresholdPath,
const std::string& faultUpperThresholdPath,
341 const std::string& disablePath,
const std::string& description,
const std::unordered_set<std::string>& outputTags,
342 const std::unordered_set<std::string>& parameterTags)
343 :
MonitorBase(owner, description, outputPath, disablePath, outputTags, parameterTags),
344 watch(this, inputPath,
"",
"Value to monitor"), warningLowerThreshold(this, warningLowerThresholdPath,
"",
345 "Lower warning threshold to compare with", parameterTags),
346 warningUpperThreshold(
347 this, warningUpperThresholdPath,
"",
"Upper warning threshold to compare with", parameterTags),
348 faultLowerThreshold(this, faultLowerThresholdPath,
"",
"Lower fault threshold to compare with", parameterTags),
349 faultUpperThreshold(this, faultUpperThresholdPath,
"",
"Upper fault threshold to compare with", parameterTags) {}
356 watch, disable, warningLowerThreshold, warningUpperThreshold, faultLowerThreshold, faultUpperThreshold};
360 setStatus(StatusOutput::Status::OFF);
364 else if(watch <= faultLowerThreshold || watch >= faultUpperThreshold) {
365 setStatus(StatusOutput::Status::FAULT);
367 else if(watch <= warningLowerThreshold || watch >= warningUpperThreshold) {
368 setStatus(StatusOutput::Status::WARNING);
371 setStatus(StatusOutput::Status::OK);
382 const std::string& parameterPath,
const std::string& description,
383 const std::unordered_set<std::string>& outputTags,
const std::unordered_set<std::string>& parameterTags)
384 :
ExactMonitor(owner, inputPath, outputPath, parameterPath +
"/requiredValue", parameterPath +
"/disable",
385 description, outputTags, parameterTags) {}
390 const std::string& requiredValuePath,
const std::string& disablePath,
const std::string& description,
391 const std::unordered_set<std::string>& outputTags,
const std::unordered_set<std::string>& parameterTags)
392 :
MonitorBase(owner, description, outputPath, disablePath, outputTags, parameterTags),
393 watch(this, inputPath,
"",
"Value to monitor"),
394 requiredValue(this, requiredValuePath,
"",
"Value to compare with", parameterTags) {}
400 ReadAnyGroup group{watch, disable, requiredValue};
404 setStatus(StatusOutput::Status::OFF);
406 else if(watch != requiredValue) {
407 setStatus(StatusOutput::Status::FAULT);
410 setStatus(StatusOutput::Status::OK);
InvalidityTracer application module.
Module for status monitoring of an exact value.
ScalarPushInput< T > requiredValue
The required value to compare with.
void mainLoop() override
This is where state evaluation is done.
ScalarPushInput< T > watch
Variable to monitor.
Module for status monitoring depending on a maximum threshold value.
void mainLoop() override
Disable the monitor.
ScalarPushInput< T > faultThreshold
FAULT state to be reported if threshold is reached or exceeded.
ScalarPushInput< T > warningThreshold
WARNING state to be reported if threshold is reached or exceeded.
ScalarPushInput< T > watch
Variable to monitor.
Module for status monitoring depending on a minimum threshold value.
void mainLoop() override
This is where state evaluation is done.
ScalarPushInput< T > warningThreshold
WARNING state to be reported if threshold is reached or exceeded.
ScalarPushInput< T > faultThreshold
FAULT state to be reported if threshold is reached or exceeded.
ScalarPushInput< T > watch
Variable to monitor.
void setStatus(StatusOutput::Status newStatus)
ScalarPushInput< ChimeraTK::Boolean > disable
Disable/enable the entire status monitor.
DataValidity _lastStatusValidity
StatusOutput status
Result of the monitor.
Module for status monitoring depending on range of threshold values.
RangeMonitor(ModuleGroup *owner, const std::string &inputPath, const std::string &outputPath, const std::string ¶meterPath, const std::string &description, const std::unordered_set< std::string > &outputTags={}, const std::unordered_set< std::string > ¶meterTags={})
ScalarPushInput< T > faultUpperThreshold
RangeMonitor(ModuleGroup *owner, const std::string &inputPath, const std::string &outputPath, const std::string &warningLowerThresholdPath, const std::string &warningUpperThresholdPath, const std::string &faultLowerThresholdPath, const std::string &faultUpperThresholdPath, const std::string &disablePath, const std::string &description, const std::unordered_set< std::string > &outputTags={}, const std::unordered_set< std::string > ¶meterTags={})
ScalarPushInput< T > faultLowerThreshold
FAULT state to be reported if value is in between the upper and lower threshold including the start a...
ScalarPushInput< T > warningUpperThreshold
ScalarPushInput< T > watch
Variable to monitor.
void mainLoop() override
This is where state evaluation is done.
ScalarPushInput< T > warningLowerThreshold
WARNING state to be reported if value is in between the upper and lower threshold including the start...
Special ScalarOutput which represents a status which can be aggregated by the StatusAggregator.