Raritan PX2/PX3 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_4_0_4 {
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  /** %Sensor unit */
106  constant int NONE = 0; //< No unit
107  constant int VOLT = 1; //< Volts
108  constant int AMPERE = 2; //< Amperes
109  constant int WATT = 3; //< Watts
110  constant int VOLT_AMP = 4; //< Voltamperes
111  constant int WATT_HOUR = 5; //< Watthours
112  constant int VOLT_AMP_HOUR = 6; //< Voltamperehours
113  constant int DEGREE_CELSIUS = 7; //< Degrees Celsius
114  constant int HZ = 8; //< Hertz
115  constant int PERCENT = 9; //< Percent
116  constant int METER_PER_SEC = 10; //< Meters per second
117  constant int PASCAL = 11; //< Pascal
118  constant int G = 12; //< G-force
119  constant int RPM = 13; //< Revolutions per minute
120  constant int METER = 14; //< Meters
121  constant int HOUR = 15; //< Hours
122  constant int MINUTE = 16; //< Minutes
123  constant int SECOND = 17; //< Seconds
124 
125  constant int VOLT_AMP_REACTIVE = 18; //< Voltamperesreactive (var)
126  constant int VOLT_AMP_REACTIVE_HOUR = 19; //< Voltamperesreactivehours (varh)
127 
128  constant int GRAM = 20; //< Gram (g)
129  constant int OHM = 21; //< Ohm (omega, R)
130  constant int LITERS_PER_HOUR = 22; //< Liters per hour (l/h)
131 
132  constant int CANDELA = 23; //< Candela (cd)
133  constant int METER_PER_SQARE_SEC = 24; //< Meter per square second (m/s^2)
134  constant int TESLA = 25; //< Tesla (T)
135  constant int VOLT_PER_METER = 26; //< Volt per meter (V/m)
136  constant int VOLT_PER_AMPERE = 27; //< Volt per ampere (V/A)
137  constant int DEGREE = 28; //< Degree (angle)
138 
139  constant int DEGREE_FAHRENHEIT = 29; //< Degrees Fahrenheit (deg F)
140  constant int KELVIN = 30; //< Kelvin (deg K)
141  constant int JOULE = 31; //< Joules (J)
142  constant int COULOMB = 32; //< Coulombs (C)
143  constant int NIT = 33; //< Nits (cd/m^2)
144  constant int LUMEN = 34; //< Lumen (lm)
145  constant int LUMEN_SECOND = 35; //< Lumen second (lh s)
146  constant int LUX = 36; //< Lux (lx)
147  constant int PSI = 37; //< Pounds per square inch (psi)
148  constant int NEWTON = 38; //< Newtons (N, J/m)
149  constant int FOOT = 39; //< Feet (ft)
150  constant int FOOT_PER_SEC = 40; //< Feet per second (ft/s)
151  constant int CUBIC_METER = 41; //< Cubic meters (m^3)
152  constant int RADIANT = 42; //< Radiants (rad)
153  constant int STERADIANT = 43; //< Steradiants (sr)
154  constant int HENRY = 44; //< Henries (H, Vs/A, Ohm s)
155  constant int FARAD = 45; //< Farads (f)
156  constant int MOL = 46; //< Moles (mol)
157  constant int BECQUEREL = 47; //< Becquerels (Bq)
158  constant int GRAY = 48; //< Grays (Gy, J/kg)
159  constant int SIEVERT = 49; //< Sieverts (Sv = J/kg)
160  constant int G_PER_CUBIC_METER = 50; //< Gram per cubic meter (g/m^3)
161 
162  /** Complete sensor type specification */
163  structure TypeSpec {
164  int readingtype; ///< %Sensor reading type
165  int type; ///< %Sensor type
166  int unit; ///< %Sensor unit
167  };
168 
169  /** Event: The type specification of the sensor changed */
170  valueobject TypeSpecChangedEvent extends idl.Event {
171  TypeSpec oldTypeSpec; ///< Type specification before change
172  TypeSpec newTypeSpec; ///< Type specification after change
173  };
174 
175  /**
176  * Retrieve the sensor type specification.
177  *
178  * @return Type specification
179  */
181 
182  /**
183  * Check whether the sensor type can be changed using setType().
184  *
185  * @return \true if type change is allowed
186  */
188 
189  /**
190  * Set sensor type and unit
191  *
192  * @param type the sensor type to set
193  * @param unit the sensor unit to set
194  *
195  * @return ERR_NOT_SUPPORTED or 0
196  */
197  int setType(in int type, in int unit);
198 
199  };
200 
201 }
202 
203 #endif
Sensor interface
Definition: Sensor.idl:15
boolean isTypeChangeAllowed()
Check whether the sensor type can be changed using setType().
int setType(in int type, in int unit)
Set sensor type and unit.
TypeSpec newTypeSpec
Type specification after change.
Definition: Sensor.idl:172
NormalAlarmedState
Definition: Sensor.idl:35
@ NORMAL
normal (not alarmed)
Definition: Sensor.idl:36
OnOffState
Sensor states for DISCRETE_ON_OFF sensors.
Definition: Sensor.idl:25
@ OFF
off
Definition: Sensor.idl:26
OkFaultState
Definition: Sensor.idl:40
@ OK
OK.
Definition: Sensor.idl:41
TypeSpec getTypeSpec()
Retrieve the sensor type specification.
OpenClosedState
Definition: Sensor.idl:30
@ OPEN
open
Definition: Sensor.idl:31
Basic IDL definitions.
Definition: Event.idl:10
Sensors Model.
Definition: AccumulatingNumericSensor.idl:13
Complete sensor type specification.
Definition: Sensor.idl:163
int readingtype
Sensor reading type
Definition: Sensor.idl:164
int unit
Sensor unit
Definition: Sensor.idl:166
int type
Sensor type
Definition: Sensor.idl:165