Loading...
Searching...
No Matches
Sensor.idl
/* SPDX-License-Identifier: BSD-3-Clause */
/*
* Copyright 2009 Raritan Inc. All rights reserved.
*/
#ifndef __TFW_SENSOR_IDL__
#define __TFW_SENSOR_IDL__
#include <Event.idl>
/** Sensors Model */
module sensors {
/** %Sensor interface */
interface Sensor {
constant int ERR_NOT_SUPPORTED = 1; ///< The operation is not supported
/** %Sensor reading type */
constant int NUMERIC = 0; //< %Sensor has numeric readings
constant int DISCRETE_ON_OFF = 1; //< %Sensor has two discrete readings: 0 (off) and 1 (on), see OnOffState
constant int DISCRETE_MULTI = 2; //< %Sensor has multiple discrete readings
/** Sensor states for DISCRETE_ON_OFF sensors */
enumeration OnOffState {
OFF, ///< off
ON ///< on
};
enumeration OpenClosedState {
OPEN, ///< open
CLOSED ///< closed
};
enumeration NormalAlarmedState {
NORMAL, ///< normal (not alarmed)
ALARMED ///< alarmed
};
enumeration OkFaultState {
OK, ///< OK
FAULT ///< fault
};
/** %Sensor type */
constant int UNSPECIFIED = 0; //< Unspecified
constant int VOLTAGE = 1; //< Voltage
constant int CURRENT = 2; //< Current
constant int UNBALANCE_CURRENT = 3; //< Current unbalance
constant int POWER = 4; //< Power
constant int POWER_FACTOR = 5; //< Power factor
constant int ENERGY = 6; //< Energy
constant int FREQUENCY = 7; //< Frequency
constant int TEMPERATURE = 8; //< Temperature
constant int HUMIDITY = 9; //< Relative humidity
constant int AIR_FLOW = 10; //< Air flow
constant int AIR_PRESSURE = 11; //< Air pressure
constant int CONTACT_CLOSURE = 12; //< Contact Closure [uses %NormalAlarmedState mapping]
constant int ON_OFF_SENSOR = 13; //< Switch state [uses %OnOffState mapping]
constant int TRIP_SENSOR = 14; //< Circuit breaker tripped [uses %OpenClosedState mapping]
constant int VIBRATION = 15; //< Vibration [uses %NormalAlarmedState mapping]
constant int WATER_LEAK = 16; //< Water leak [uses %NormalAlarmedState mapping]
constant int SMOKE_DETECTOR = 17; //< Smoke detector [uses %NormalAlarmedState mapping]
constant int TOTAL_HARMONIC_DISTORTION = 18; //< Total harmonic distortion
constant int MASS = 19; //< Mass
constant int ELECTRICAL_RESISTANCE = 20; //< Electrical resistance
constant int FLUX = 21; //< Flux (mass per time, e.g. water flow)
constant int LUMINOUS_INTENSITY = 22; //< Luminous intensity
constant int ACCELERATION = 23; //< Acceleration
constant int MAGNETIC_FLUX_DENSITY = 24; //< Magnetic flux density
constant int ELECTRIC_FIELD_STRENGTH = 25; //< Electric field strength
constant int MAGNETIC_FIELD_STRENGTH = 26; //< Magnetic field strength [uses %NormelAlarmedState mapping if of %DISCRETE_ON_OFF type]
constant int ANGLE = 27; //< Angle (e.g. phase angle)
constant int SELECTION = 28; //< Selected index (one of n)
constant int FAULT_STATE = 29; //< Fault state [uses %NormalAlarmedState mapping if of %DISCRETE_ON_OFF type]
constant int POWER_QUALITY = 30; //< Power quality
constant int ROTATIONAL_SPEED = 31; //< Rotational speed (e.g. fan speed)
constant int LUMINOUS_ENERGY = 32; //< Luminous energy
constant int LUMINOUS_FLUX = 33; //< Luminous flux
constant int ILLUMINANCE = 34; //< Illuminance used for light incident on a surface
constant int LUMINOUS_EMITTANCE = 35; //< Luminous emittance used for light emitted from a surface
constant int MOTION = 36; //< Motion detection
constant int OCCUPANCY = 37; //< Occupancy detection [uses %NormalAlarmedState mapping]
constant int TAMPER = 38; //< Tamper detection [uses %NormalAlarmedState mapping]
constant int DRY_CONTACT = 39; //< Dry contact (actuator) [uses %OnOffState mapping]
constant int POWERED_DRY_CONTACT = 40; //< Powered dry contact (actuator) [uses %OnOffState mapping]
constant int ABSOLUTE_HUMIDITY = 41; //< Absolute humidity
constant int DOOR_STATE = 42; //< Door state [uses %OpenClosedState mapping]
constant int DOOR_LOCK_STATE = 43; //< Door lock state [uses %OpenClosedState mapping]
constant int DOOR_HANDLE_LOCK = 44; //< Door handle switch [uses %OpenClosedState mapping]
constant int CREST_FACTOR = 45; //< Crest factor
constant int DISTANCE = 46; //< Distance
constant int LENGTH = 47; //< Length
constant int UNBALANCE_VOLTAGE = 48; //< Voltage unbalance
constant int PARTICLE_DENSITY = 49; //< Particle Density
constant int DEW_POINT = 50; //< Dew Point
constant int ELECTRICAL_IMPEDANCE = 51; //< Electrical impedance
constant int TS_BYPASS_STATE = 52; //< Transfer switch bypass state
constant int BATTERY_LEVEL = 53; //< Battery level
/** %Sensor unit */
constant int NONE = 0; //< No unit
constant int VOLT = 1; //< Electric Potential, Volts (V)
constant int AMPERE = 2; //< Electric Current, Amperes (A)
constant int WATT = 3; //< Electric Power, Watts (W)
constant int VOLT_AMP = 4; //< Electric Capacity, Volt Amperes (VA)
constant int WATT_HOUR = 5; //< Active Energy, Watt hours (Wh)
constant int VOLT_AMP_HOUR = 6; //< Apparent Energy, Volt-Ampere hours (VAh)
constant int DEGREE_CELSIUS = 7; //< Temperature, Celsius (deg C)
constant int HZ = 8; //< Frequency, Hertz (Hz)
constant int PERCENT = 9; //< Ratio, Percent (%)
constant int METER_PER_SEC = 10; //< Speed, Meters per second (m/s)
constant int PASCAL = 11; //< Pressure, Pascal (Pa)
constant int G = 12; //< Acceleration, G-force (g)
constant int RPM = 13; //< Rotation, Revolutions per minute (rpm)
constant int METER = 14; //< Distance, Meters (m)
constant int HOUR = 15; //< Time, Hours (h)
constant int MINUTE = 16; //< Time, Minutes (min)
constant int SECOND = 17; //< Time, Seconds (s)
constant int VOLT_AMP_REACTIVE = 18; //< Reactive Power, Volt Amperes reactive (var)
constant int VOLT_AMP_REACTIVE_HOUR = 19; //< Reactive Energy, Volt Ampere reactive hours (varh)
constant int GRAM = 20; //< Mass, Gram (g)
constant int OHM = 21; //< Resistance, Ohm (omega, R)
constant int LITERS_PER_HOUR = 22; //< Flow, Liters per hour (l/h)
constant int CANDELA = 23; //< Luminous Intensity, Candela (cd)
constant int METER_PER_SQUARE_SEC = 24; //< Acceleration, Meter per square second (m/s^2)
constant int METER_PER_SQARE_SEC = 24; //< Typo, preserved for backward compatibility
constant int TESLA = 25; //< Magnetic Flux Density, Tesla (T)
constant int VOLT_PER_METER = 26; //< Electric Field, Volt per meter (V/m)
constant int VOLT_PER_AMPERE = 27; //< Resistance, Volt per ampere (V/A)
constant int DEGREE = 28; //< Angle, Degrees (deg)
constant int DEGREE_FAHRENHEIT = 29; //< Temperature, Fahrenheit (deg F)
constant int KELVIN = 30; //< Temperature, Kelvin (deg K)
constant int JOULE = 31; //< Energy, Joules (J)
constant int COULOMB = 32; //< Electric Charge, Coulombs (C)
constant int NIT = 33; //< Luminance, Nits (cd/m^2)
constant int LUMEN = 34; //< Luminous Flux, Lumen (lm)
constant int LUMEN_SECOND = 35; //< Luminous Energy, Lumen second (lm s)
constant int LUX = 36; //< Luminous Flux, Lux (lx)
constant int PSI = 37; //< Pressure, Pounds per square inch (psi)
constant int NEWTON = 38; //< Force, Newtons (N, J/m)
constant int FOOT = 39; //< Distance, Feet (ft)
constant int FOOT_PER_SEC = 40; //< Speed, Feet per second (ft/s)
constant int CUBIC_METER = 41; //< Volume, Cubic meters (m^3)
constant int RADIANT = 42; //< Angle, Radians (rad)
constant int STERADIANT = 43; //< Solid Angle, Steradians (sr)
constant int HENRY = 44; //< Inductance, Henries (H, Vs/A, Ohm s)
constant int FARAD = 45; //< Capacitance, Farads (f)
constant int MOL = 46; //< Substance Quantity, Moles (mol)
constant int BECQUEREL = 47; //< Radiation, Becquerels (Bq)
constant int GRAY = 48; //< Radiation, Grays (Gy, J/kg)
constant int SIEVERT = 49; //< Radiation, Sieverts (Sv = J/kg)
constant int G_PER_CUBIC_METER = 50; //< Density, Grams per cubic meter (g/m^3)
constant int UG_PER_CUBIC_METER = 51; //< Density, Micrograms per cubic meter (µg/m^3)
/** Complete sensor type specification */
structure TypeSpec {
int readingtype; ///< %Sensor reading type
int type; ///< %Sensor type
int unit; ///< %Sensor unit
};
/** Event: The type specification of the sensor changed */
valueobject TypeSpecChangedEvent extends idl.Event {
TypeSpec oldTypeSpec; ///< Type specification before change
TypeSpec newTypeSpec; ///< Type specification after change
};
/**
* Retrieve the sensor type specification.
*
* @return Type specification
*/
TypeSpec getTypeSpec();
/**
* Check whether the sensor type can be changed using setType().
*
* @return \true if type change is allowed
*/
boolean isTypeChangeAllowed();
/**
* Set sensor type and unit
*
* @param type the sensor type to set
* @param unit the sensor unit to set
*
* @return ERR_NOT_SUPPORTED or 0
*/
int setType(in int type, in int unit);
};
}
#endif
sensors::Sensor
Sensor interface
Definition Sensor.idl:15
sensors::Sensor::NormalAlarmedState
NormalAlarmedState
Definition Sensor.idl:35
sensors::Sensor::NORMAL
@ NORMAL
normal (not alarmed)
Definition Sensor.idl:36
sensors::Sensor::isTypeChangeAllowed
boolean isTypeChangeAllowed()
Check whether the sensor type can be changed using setType().
sensors::Sensor::OnOffState
OnOffState
Sensor states for DISCRETE_ON_OFF sensors.
Definition Sensor.idl:25
sensors::Sensor::OFF
@ OFF
off
Definition Sensor.idl:26
sensors::Sensor::OpenClosedState
OpenClosedState
Definition Sensor.idl:30
sensors::Sensor::OPEN
@ OPEN
open
Definition Sensor.idl:31
sensors::Sensor::getTypeSpec
TypeSpec getTypeSpec()
Retrieve the sensor type specification.
sensors::Sensor::setType
int setType(in int type, in int unit)
Set sensor type and unit.
sensors::Sensor::OkFaultState
OkFaultState
Definition Sensor.idl:40
sensors::Sensor::OK
@ OK
OK.
Definition Sensor.idl:41
idl
Basic IDL definitions.
Definition Event.idl:10
sensors
Sensors Model.
Definition AccumulatingNumericSensor.idl:13
idl::Event
Common base for all events.
Definition Event.idl:13
sensors::Sensor::TypeSpecChangedEvent
Event: The type specification of the sensor changed.
Definition Sensor.idl:184
sensors::Sensor::TypeSpecChangedEvent::newTypeSpec
TypeSpec newTypeSpec
Type specification after change.
Definition Sensor.idl:186
sensors::Sensor::TypeSpecChangedEvent::oldTypeSpec
TypeSpec oldTypeSpec
Type specification before change.
Definition Sensor.idl:185
sensors::Sensor::TypeSpec
Complete sensor type specification.
Definition Sensor.idl:177
sensors::Sensor::TypeSpec::unit
int unit
Sensor unit
Definition Sensor.idl:180
sensors::Sensor::TypeSpec::readingtype
int readingtype
Sensor reading type
Definition Sensor.idl:178
sensors::Sensor::TypeSpec::type
int type
Sensor type
Definition Sensor.idl:179