Legrand / Raritan / Server Technology Xerus™ PDU JSON-RPC API
Sensor.idl
1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /*
3  * Copyright 2009 Raritan Inc. All rights reserved.
4  */
5 
6 #ifndef __TFW_SENSOR_IDL__
7 #define __TFW_SENSOR_IDL__
8 
9 #include <Event.idl>
10 
11 /** Sensors Model */
12 module sensors {
13 
14  /** %Sensor interface */
15  interface Sensor {
16 
17  constant int ERR_NOT_SUPPORTED = 1; ///< The operation is not supported
18 
19  /** %Sensor reading type */
20  constant int NUMERIC = 0; //< %Sensor has numeric readings
21  constant int DISCRETE_ON_OFF = 1; //< %Sensor has two discrete readings: 0 (off) and 1 (on), see OnOffState
22  constant int DISCRETE_MULTI = 2; //< %Sensor has multiple discrete readings
23 
24  /** Sensor states for DISCRETE_ON_OFF sensors */
25  enumeration OnOffState {
26  OFF, ///< off
27  ON ///< on
28  };
29 
30  enumeration OpenClosedState {
31  OPEN, ///< open
32  CLOSED ///< closed
33  };
34 
35  enumeration NormalAlarmedState {
36  NORMAL, ///< normal (not alarmed)
37  ALARMED ///< alarmed
38  };
39 
40  enumeration OkFaultState {
41  OK, ///< OK
42  FAULT ///< fault
43  };
44 
45  /** %Sensor type */
46  constant int UNSPECIFIED = 0; //< Unspecified
47 
48  constant int VOLTAGE = 1; //< Voltage
49  constant int CURRENT = 2; //< Current
50  constant int UNBALANCE_CURRENT = 3; //< Current unbalance
51  constant int POWER = 4; //< Power
52  constant int POWER_FACTOR = 5; //< Power factor
53  constant int ENERGY = 6; //< Energy
54  constant int FREQUENCY = 7; //< Frequency
55  constant int TEMPERATURE = 8; //< Temperature
56  constant int HUMIDITY = 9; //< Relative humidity
57  constant int AIR_FLOW = 10; //< Air flow
58  constant int AIR_PRESSURE = 11; //< Air pressure
59  constant int CONTACT_CLOSURE = 12; //< Contact Closure [uses %NormalAlarmedState mapping]
60  constant int ON_OFF_SENSOR = 13; //< Switch state [uses %OnOffState mapping]
61  constant int TRIP_SENSOR = 14; //< Circuit breaker tripped [uses %OpenClosedState mapping]
62  constant int VIBRATION = 15; //< Vibration [uses %NormalAlarmedState mapping]
63  constant int WATER_LEAK = 16; //< Water leak [uses %NormalAlarmedState mapping]
64  constant int SMOKE_DETECTOR = 17; //< Smoke detector [uses %NormalAlarmedState mapping]
65 
66  constant int TOTAL_HARMONIC_DISTORTION = 18; //< Total harmonic distortion
67 
68  constant int MASS = 19; //< Mass
69  constant int ELECTRICAL_RESISTANCE = 20; //< Electrical resistance
70  constant int FLUX = 21; //< Flux (mass per time, e.g. water flow)
71 
72  constant int LUMINOUS_INTENSITY = 22; //< Luminous intensity
73  constant int ACCELERATION = 23; //< Acceleration
74  constant int MAGNETIC_FLUX_DENSITY = 24; //< Magnetic flux density
75  constant int ELECTRIC_FIELD_STRENGTH = 25; //< Electric field strength
76  constant int MAGNETIC_FIELD_STRENGTH = 26; //< Magnetic field strength [uses %NormelAlarmedState mapping if of %DISCRETE_ON_OFF type]
77  constant int ANGLE = 27; //< Angle (e.g. phase angle)
78 
79  constant int SELECTION = 28; //< Selected index (one of n)
80  constant int FAULT_STATE = 29; //< Fault state [uses %NormalAlarmedState mapping if of %DISCRETE_ON_OFF type]
81  constant int POWER_QUALITY = 30; //< Power quality
82  constant int ROTATIONAL_SPEED = 31; //< Rotational speed (e.g. fan speed)
83 
84  constant int LUMINOUS_ENERGY = 32; //< Luminous energy
85  constant int LUMINOUS_FLUX = 33; //< Luminous flux
86  constant int ILLUMINANCE = 34; //< Illuminance used for light incident on a surface
87  constant int LUMINOUS_EMITTANCE = 35; //< Luminous emittance used for light emitted from a surface
88 
89  constant int MOTION = 36; //< Motion detection
90  constant int OCCUPANCY = 37; //< Occupancy detection [uses %NormalAlarmedState mapping]
91  constant int TAMPER = 38; //< Tamper detection [uses %NormalAlarmedState mapping]
92  constant int DRY_CONTACT = 39; //< Dry contact (actuator) [uses %OnOffState mapping]
93  constant int POWERED_DRY_CONTACT = 40; //< Powered dry contact (actuator) [uses %OnOffState mapping]
94 
95  constant int ABSOLUTE_HUMIDITY = 41; //< Absolute humidity
96  constant int DOOR_STATE = 42; //< Door state [uses %OpenClosedState mapping]
97  constant int DOOR_LOCK_STATE = 43; //< Door lock state [uses %OpenClosedState mapping]
98  constant int DOOR_HANDLE_LOCK = 44; //< Door handle switch [uses %OpenClosedState mapping]
99 
100  constant int CREST_FACTOR = 45; //< Crest factor
101 
102  constant int DISTANCE = 46; //< Distance
103  constant int LENGTH = 47; //< Length
104 
105  constant int UNBALANCE_VOLTAGE = 48; //< Voltage unbalance
106 
107  constant int PARTICLE_DENSITY = 49; //< Particle Density
108 
109  /** %Sensor unit */
110  constant int NONE = 0; //< No unit
111  constant int VOLT = 1; //< Electric Potential, Volts (V)
112  constant int AMPERE = 2; //< Electric Current, Amperes (A)
113  constant int WATT = 3; //< Electric Power, Watts (W)
114  constant int VOLT_AMP = 4; //< Electric Capacity, Volt Amperes (VA)
115  constant int WATT_HOUR = 5; //< Active Energy, Watt hours (Wh)
116  constant int VOLT_AMP_HOUR = 6; //< Apparent Energy, Volt-Ampere hours (VAh)
117  constant int DEGREE_CELSIUS = 7; //< Temperature, Celsius (deg C)
118  constant int HZ = 8; //< Frequency, Hertz (Hz)
119  constant int PERCENT = 9; //< Ratio, Percent (%)
120  constant int METER_PER_SEC = 10; //< Speed, Meters per second (m/s)
121  constant int PASCAL = 11; //< Pressure, Pascal (Pa)
122  constant int G = 12; //< Acceleration, G-force (g)
123  constant int RPM = 13; //< Rotation, Revolutions per minute (rpm)
124  constant int METER = 14; //< Distance, Meters (m)
125  constant int HOUR = 15; //< Time, Hours (h)
126  constant int MINUTE = 16; //< Time, Minutes (min)
127  constant int SECOND = 17; //< Time, Seconds (s)
128 
129  constant int VOLT_AMP_REACTIVE = 18; //< Reactive Power, Volt Amperes reactive (var)
130  constant int VOLT_AMP_REACTIVE_HOUR = 19; //< Reactive Energy, Volt Ampere reactive hours (varh)
131 
132  constant int GRAM = 20; //< Mass, Gram (g)
133  constant int OHM = 21; //< Resistance, Ohm (omega, R)
134  constant int LITERS_PER_HOUR = 22; //< Flow, Liters per hour (l/h)
135 
136  constant int CANDELA = 23; //< Luminous Intensity, Candela (cd)
137  constant int METER_PER_SQUARE_SEC = 24; //< Acceleration, Meter per square second (m/s^2)
138  constant int METER_PER_SQARE_SEC = 24; //< Typo, preserved for backward compatibility
139  constant int TESLA = 25; //< Magnetic Flux Density, Tesla (T)
140  constant int VOLT_PER_METER = 26; //< Electric Field, Volt per meter (V/m)
141  constant int VOLT_PER_AMPERE = 27; //< Resistance, Volt per ampere (V/A)
142  constant int DEGREE = 28; //< Angle, Degrees (deg)
143 
144  constant int DEGREE_FAHRENHEIT = 29; //< Temperature, Fahrenheit (deg F)
145  constant int KELVIN = 30; //< Temperature, Kelvin (deg K)
146  constant int JOULE = 31; //< Energy, Joules (J)
147  constant int COULOMB = 32; //< Electric Charge, Coulombs (C)
148  constant int NIT = 33; //< Luminance, Nits (cd/m^2)
149  constant int LUMEN = 34; //< Luminous Flux, Lumen (lm)
150  constant int LUMEN_SECOND = 35; //< Luminous Energy, Lumen second (lm s)
151  constant int LUX = 36; //< Luminous Flux, Lux (lx)
152  constant int PSI = 37; //< Pressure, Pounds per square inch (psi)
153  constant int NEWTON = 38; //< Force, Newtons (N, J/m)
154  constant int FOOT = 39; //< Distance, Feet (ft)
155  constant int FOOT_PER_SEC = 40; //< Speed, Feet per second (ft/s)
156  constant int CUBIC_METER = 41; //< Volume, Cubic meters (m^3)
157  constant int RADIANT = 42; //< Angle, Radians (rad)
158  constant int STERADIANT = 43; //< Solid Angle, Steradians (sr)
159  constant int HENRY = 44; //< Inductance, Henries (H, Vs/A, Ohm s)
160  constant int FARAD = 45; //< Capacitance, Farads (f)
161  constant int MOL = 46; //< Substance Quantity, Moles (mol)
162  constant int BECQUEREL = 47; //< Radiation, Becquerels (Bq)
163  constant int GRAY = 48; //< Radiation, Grays (Gy, J/kg)
164  constant int SIEVERT = 49; //< Radiation, Sieverts (Sv = J/kg)
165  constant int G_PER_CUBIC_METER = 50; //< Density, Grams per cubic meter (g/m^3)
166  constant int UG_PER_CUBIC_METER = 51; //< Density, Micrograms per cubic meter (µg/m^3)
167 
168  /** Complete sensor type specification */
169  structure TypeSpec {
170  int readingtype; ///< %Sensor reading type
171  int type; ///< %Sensor type
172  int unit; ///< %Sensor unit
173  };
174 
175  /** Event: The type specification of the sensor changed */
176  valueobject TypeSpecChangedEvent extends idl.Event {
177  TypeSpec oldTypeSpec; ///< Type specification before change
178  TypeSpec newTypeSpec; ///< Type specification after change
179  };
180 
181  /**
182  * Retrieve the sensor type specification.
183  *
184  * @return Type specification
185  */
187 
188  /**
189  * Check whether the sensor type can be changed using setType().
190  *
191  * @return \true if type change is allowed
192  */
194 
195  /**
196  * Set sensor type and unit
197  *
198  * @param type the sensor type to set
199  * @param unit the sensor unit to set
200  *
201  * @return ERR_NOT_SUPPORTED or 0
202  */
203  int setType(in int type, in int unit);
204 
205  };
206 
207 }
208 
209 #endif
Sensor interface
Definition: Sensor.idl:15
NormalAlarmedState
Definition: Sensor.idl:35
@ NORMAL
normal (not alarmed)
Definition: Sensor.idl:36
boolean isTypeChangeAllowed()
Check whether the sensor type can be changed using setType().
OnOffState
Sensor states for DISCRETE_ON_OFF sensors.
Definition: Sensor.idl:25
@ OFF
off
Definition: Sensor.idl:26
OpenClosedState
Definition: Sensor.idl:30
@ OPEN
open
Definition: Sensor.idl:31
TypeSpec getTypeSpec()
Retrieve the sensor type specification.
int setType(in int type, in int unit)
Set sensor type and unit.
OkFaultState
Definition: Sensor.idl:40
@ OK
OK.
Definition: Sensor.idl:41
Basic IDL definitions.
Definition: Event.idl:10
Sensors Model.
Definition: AccumulatingNumericSensor.idl:13
Common base for all events.
Definition: Event.idl:13
Event: The type specification of the sensor changed.
Definition: Sensor.idl:176
TypeSpec newTypeSpec
Type specification after change.
Definition: Sensor.idl:178
TypeSpec oldTypeSpec
Type specification before change.
Definition: Sensor.idl:177
Complete sensor type specification.
Definition: Sensor.idl:169
int unit
Sensor unit
Definition: Sensor.idl:172
int readingtype
Sensor reading type
Definition: Sensor.idl:170
int type
Sensor type
Definition: Sensor.idl:171