NumericSensor.idl
/* SPDX-License-Identifier: BSD-3-Clause */
/*
* Copyright 2009 Raritan Inc. All rights reserved.
*/
#ifndef __SENSORMODEL_NUMERICSENSOR_IDL__
#define __SENSORMODEL_NUMERICSENSOR_IDL__
#include <Event.idl>
#include <Sensor.idl>
#include <UserEvent.idl>
/** Sensors Model */
module sensors {
/** A sensor with numeric readings */
interface NumericSensor_4_0_3 extends Sensor_4_0_3 {
constant int THRESHOLD_OUT_OF_RANGE = 1; ///< The threshold exceedes the sensor range
constant int THRESHOLD_INVALID = 2; ///< The threshold constraints are not met
constant int THRESHOLD_NOT_SUPPORTED = 3; ///< The sensor does not support setting this threshold
/** Range of possible sensor readings */
structure Range {
double lower; ///< Minimum reading
double upper; ///< Maximum reading
};
/**
* Threshold capabilities
*/
structure ThresholdCapabilities {
boolean hasUpperCritical; ///< Sensor has upper critical threshold
boolean hasUpperWarning; ///< Sensor has upper warning threshold
boolean hasLowerWarning; ///< Sensor has lower warning threshold
boolean hasLowerCritical; ///< Sensor has lower critical threshold
};
/** Numeric sensor metadata */
structure MetaData {
/**
* Sensor type, reading type and unit
*/
Sensor_4_0_3.TypeSpec type;
/**
* Number of significant decimal digits.
*
* Indicates how many digits should be displayed
* to the right of the decimal point. I.e. double
* values must be rounded with this precision.
*/
int decdigits;
/**
* Sensor accuracy in percent.
*
* How close in percent measurement is to actual value.
* This value has an implicit precision of 2, i.e. the double
* value must be rounded for 2 decimal digits before use.
* For example a reading of 10.0 and an accuracy of 0.2
* means the actual reading value is 10.0 +/- 0.2%.
*
* A value of 0 means unused.
*/
float accuracy;
/**
* Sensor resolution.
*
* Minimum difference between any two measured values.
* Must be rounded with decimal digits.
*/
float resolution;
/**
* Sensor tolerance.
*
* Tolerance is given in +/- counts of the reading value.
* It indicates a constant magnitude possible error in the
* quantization of an analog input to the sensor.
* Rounded with decimal digits + 1.
*
* A value of 0 means unused.
*/
float tolerance;
/**
* Sensor noise threshold.
*
* Threshold under which sensor measurements will be ignored.
* Sensor measurements below that value will be reported at
* the lower bound of the sensor range.
*/
float noiseThreshold;
/**
* Range of possible sensor readings.
*
* Range values are rounded with with decimal digits.
*/
Range range;
/**
* Threshold capabilities
*/
ThresholdCapabilities thresholdCaps;
};
/** Numeric sensor thresholds */
structure Thresholds {
boolean upperCriticalActive; ///< \c true if the upper critical threshold is enabled
double upperCritical; ///< Upper critical threshold
boolean upperWarningActive; ///< \c true if the upper warning threshold is enabled
double upperWarning; ///< Upper warning threshold
boolean lowerWarningActive; ///< \c true if the lower warning threshold is enabled
double lowerWarning; ///< Lower warning threshold
boolean lowerCriticalActive; ///< \c true if the lower critical threshold is enabled
double lowerCritical; ///< Lower critical threshold
int assertionTimeout; ///< Assertion timeout in samples
float deassertionHysteresis; ///< Deassertion hysteresis
};
/** Numeric sensor reading */
structure Reading {
/** Numeric sensor status */
structure Status {
boolean aboveUpperCritical; ///< Reading is above upper critical threshold
boolean aboveUpperWarning; ///< Reading is above upper warning threshold
boolean belowLowerWarning; ///< Reading is below lower warning threshold
boolean belowLowerCritical; ///< Reading is below lower critical threshold
};
time timestamp; ///< Timestamp of last sample
boolean available; ///< \c true if the sensor is available
Status status; ///< Numeric sensor status
boolean valid; ///< \c true if the sensor reading is valid
double value; ///< Numeric sensor reading
};
/** Event: Numeric sensor reading has changed */
valueobject ReadingChangedEvent extends idl.Event {
Reading newReading; ///< New numeric sensor reading
};
/** Event: Sensor state has changed */
valueobject StateChangedEvent extends idl.Event {
Reading oldReading; ///< Reading before state change
Reading newReading; ///< Reading after state change
};
/** Event: Sensor metadata has changed */
valueobject MetaDataChangedEvent extends idl.Event {
MetaData oldMetaData; ///< Metadata before change
MetaData newMetaData; ///< Metadata after change
};
/** Event: Sensor thresholds have changed */
valueobject ThresholdsChangedEvent extends event.UserEvent {
Thresholds oldThresholds; ///< Threshold set before change
Thresholds newThresholds; ///< Threshold set after change
};
/**
* Retrieve the sensor metadata.
*
* @return Sensor metadata
*/
MetaData getMetaData();
/**
* Retrieve the sensor default thresholds.
*
* @return Set of default thresholds
*/
Thresholds getDefaultThresholds();
/**
* Retrieve the active thresholds.
*
* @return Set of active thresholds
*/
Thresholds getThresholds();
/**
* Change the active thresholds.
*
* @param thresh New set of thresholds
*
* @return 0 if OK
* @return THRESHOLD_OUT_OF_RANGE if any threshold is out of range
* @return THRESHOLD_INVALID if thresholds don't meet the requirements
* @return THRESHOLD_NOT_SUPPORTED if threshold is not supported
*/
int setThresholds(in Thresholds thresh);
/**
* Get the sensor reading.
*
* @return Sensor reading
*/
Reading getReading();
};
}
#endif
sensors::NumericSensor_4_0_3::Thresholds::upperWarning
double upperWarning
Upper warning threshold.
Definition: NumericSensor.idl:115
sensors::NumericSensor_4_0_3::Reading::Status
Numeric sensor status.
Definition: NumericSensor.idl:127
sensors::NumericSensor_4_0_3::Range
Range of possible sensor readings.
Definition: NumericSensor.idl:24
sensors::NumericSensor_4_0_3::Thresholds::upperCritical
double upperCritical
Upper critical threshold.
Definition: NumericSensor.idl:113
sensors::NumericSensor_4_0_3::MetaData::tolerance
float tolerance
Sensor tolerance.
Definition: NumericSensor.idl:86
sensors::NumericSensor_4_0_3::ThresholdCapabilities::hasLowerWarning
boolean hasLowerWarning
Sensor has lower warning threshold.
Definition: NumericSensor.idl:35
sensors::NumericSensor_4_0_3::ThresholdCapabilities::hasUpperCritical
boolean hasUpperCritical
Sensor has upper critical threshold.
Definition: NumericSensor.idl:33
sensors::NumericSensor_4_0_3::Thresholds::lowerCriticalActive
boolean lowerCriticalActive
true if the lower critical threshold is enabled
Definition: NumericSensor.idl:118
sensors::NumericSensor_4_0_3::Thresholds::deassertionHysteresis
float deassertionHysteresis
Deassertion hysteresis.
Definition: NumericSensor.idl:121
sensors::NumericSensor_4_0_3::Range::upper
double upper
Maximum reading.
Definition: NumericSensor.idl:26
sensors::NumericSensor_4_0_3::MetaData::noiseThreshold
float noiseThreshold
Sensor noise threshold.
Definition: NumericSensor.idl:95
sensors::NumericSensor_4_0_3::Reading::Status::aboveUpperCritical
boolean aboveUpperCritical
Reading is above upper critical threshold.
Definition: NumericSensor.idl:128
sensors::NumericSensor_4_0_3::Thresholds::lowerCritical
double lowerCritical
Lower critical threshold.
Definition: NumericSensor.idl:119
sensors::NumericSensor_4_0_3::newThresholds
Thresholds newThresholds
Threshold set after change.
Definition: NumericSensor.idl:160
sensors::NumericSensor_4_0_3::MetaData::thresholdCaps
ThresholdCapabilities thresholdCaps
Threshold capabilities.
Definition: NumericSensor.idl:107
sensors::NumericSensor_4_0_3::Reading::valid
boolean valid
true if the sensor reading is valid
Definition: NumericSensor.idl:136
sensors::NumericSensor_4_0_3::Thresholds::upperCriticalActive
boolean upperCriticalActive
true if the upper critical threshold is enabled
Definition: NumericSensor.idl:112
sensors::NumericSensor_4_0_3::Range::lower
double lower
Minimum reading.
Definition: NumericSensor.idl:25
sensors::NumericSensor_4_0_3::Thresholds::lowerWarning
double lowerWarning
Lower warning threshold.
Definition: NumericSensor.idl:117
sensors::NumericSensor_4_0_3::Reading::timestamp
time timestamp
Timestamp of last sample.
Definition: NumericSensor.idl:133
idl
Basic IDL definitions.
Definition: Event.idl:10
sensors::NumericSensor_4_0_3::MetaData::resolution
float resolution
Sensor resolution.
Definition: NumericSensor.idl:74
sensors::NumericSensor_4_0_3::MetaData::decdigits
int decdigits
Number of significant decimal digits.
Definition: NumericSensor.idl:53
sensors::NumericSensor_4_0_3::Reading::value
double value
Numeric sensor reading.
Definition: NumericSensor.idl:137
sensors::NumericSensor_4_0_3::Reading::Status::belowLowerWarning
boolean belowLowerWarning
Reading is below lower warning threshold.
Definition: NumericSensor.idl:130
sensors::NumericSensor_4_0_3::Reading::available
boolean available
true if the sensor is available
Definition: NumericSensor.idl:134
sensors::NumericSensor_4_0_3::MetaData::accuracy
float accuracy
Sensor accuracy in percent.
Definition: NumericSensor.idl:66
sensors::NumericSensor_4_0_3::Thresholds
Numeric sensor thresholds.
Definition: NumericSensor.idl:111
sensors::Sensor_4_0_3
Sensor interface
Definition: Sensor.idl:15
sensors::NumericSensor_4_0_3::Reading
Numeric sensor reading.
Definition: NumericSensor.idl:125
sensors::NumericSensor_4_0_3::newMetaData
MetaData newMetaData
Metadata after change.
Definition: NumericSensor.idl:154
sensors::NumericSensor_4_0_3::Reading::Status::belowLowerCritical
boolean belowLowerCritical
Reading is below lower critical threshold.
Definition: NumericSensor.idl:131
sensors::NumericSensor_4_0_3::newReading
Reading newReading
Reading after state change.
Definition: NumericSensor.idl:148
sensors::NumericSensor_4_0_3::MetaData::type
Sensor_4_0_3::TypeSpec type
Sensor type, reading type and unit.
Definition: NumericSensor.idl:44
sensors
Sensors Model.
Definition: AccumulatingNumericSensor.idl:13
sensors::Sensor_4_0_3::TypeSpec
Complete sensor type specification.
Definition: Sensor.idl:160
sensors::NumericSensor_4_0_3::Thresholds::lowerWarningActive
boolean lowerWarningActive
true if the lower warning threshold is enabled
Definition: NumericSensor.idl:116
sensors::NumericSensor_4_0_3::Reading::Status::aboveUpperWarning
boolean aboveUpperWarning
Reading is above upper warning threshold.
Definition: NumericSensor.idl:129
sensors::NumericSensor_4_0_3::Reading::status
Status status
Numeric sensor status.
Definition: NumericSensor.idl:135
sensors::NumericSensor_4_0_3
A sensor with numeric readings.
Definition: NumericSensor.idl:17
sensors::NumericSensor_4_0_3::Thresholds::upperWarningActive
boolean upperWarningActive
true if the upper warning threshold is enabled
Definition: NumericSensor.idl:114
sensors::NumericSensor_4_0_3::ThresholdCapabilities::hasLowerCritical
boolean hasLowerCritical
Sensor has lower critical threshold.
Definition: NumericSensor.idl:36
sensors::NumericSensor_4_0_3::Thresholds::assertionTimeout
int assertionTimeout
Assertion timeout in samples.
Definition: NumericSensor.idl:120
sensors::NumericSensor_4_0_3::ThresholdCapabilities::hasUpperWarning
boolean hasUpperWarning
Sensor has upper warning threshold.
Definition: NumericSensor.idl:34
sensors::NumericSensor_4_0_3::MetaData
Numeric sensor metadata.
Definition: NumericSensor.idl:40
sensors::NumericSensor_4_0_3::MetaData::range
Range range
Range of possible sensor readings.
Definition: NumericSensor.idl:102
sensors::NumericSensor_4_0_3::ThresholdCapabilities
Threshold capabilities.
Definition: NumericSensor.idl:32