1 karl 1.1.2.2 // Copyright (c) 2007 DMTF. All rights reserved.
2 // <change cr="CIMCoreCR00786.001" type ="change">Add write qualifier
3 // to LowerThresholdNonCritical, UpperThresholdNonCritical,
4 // LowerThresholdCritical, UpperThresholdCritical, LowerThresholdFatal,
5 // UpperThresholdFatal.</
6 // <change cr="ArchCR00066.004" type="add">Add UmlPackagePath
7 // qualifier values to CIM Schema.</change>
8 // <change cr="ArchCR00089.003" type="add">Add PUnit qualifier values
9 // to Units qualifier values.</change>
10 // <change cr="CIMCoreCR942" type="add">Added Pascals to BaseUnit </change>
11 // ==================================================================
12 // CIM_NumericSensor
13 // ==================================================================
14 [Version ( "2.16.0" ),
15 UMLPackagePath ( "CIM::Device::Sensors" ),
16 Description (
17 "A Numeric Sensor is capable of returning numeric readings and "
18 "optionally supports thresholds settings." )]
19 class CIM_NumericSensor : CIM_Sensor {
20
21 [Description (
22 karl 1.1.2.2 "The base unit of the values returned by this Sensor. All "
23 "the values returned by this Sensor are represented in "
24 "the units obtained by (BaseUnits * 10 raised to the "
25 "power of the UnitModifier). For example, if BaseUnits is "
26 "Volts and the UnitModifier is -6, then the units of the "
27 "values returned are MicroVolts. However, if the "
28 "RateUnits property is set to a value other than \"None\", "
29 "then the units are further qualified as rate units. In "
30 "the above example, if RateUnits is set to \"Per Second\", "
31 "then the values returned by the Sensor are in "
32 "MicroVolts/Second. The units apply to all numeric "
33 "properties of the Sensor, unless explicitly overridden "
34 "by the Units qualifier." ),
35 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
36 "10", "11", "12", "13", "14", "15", "16", "17", "18",
37 "19", "20", "21", "22", "23", "24", "25", "26", "27",
38 "28", "29", "30", "31", "32", "33", "34", "35", "36",
39 "37", "38", "39", "40", "41", "42", "43", "44", "45",
40 "46", "47", "48", "49", "50", "51", "52", "53", "54",
41 "55", "56", "57", "58", "59", "60", "61", "62", "63",
42 "64", "65", "66" },
43 karl 1.1.2.2 Values { "Unknown", "Other", "Degrees C", "Degrees F",
44 "Degrees K", "Volts", "Amps", "Watts", "Joules",
45 "Coulombs", //10
46 "VA", "Nits", "Lumens", "Lux",
47 "Candelas", "kPa", "PSI", "Newtons", "CFM", "RPM",
48 //20
49 "Hertz", "Seconds", "Minutes", "Hours",
50 "Days", "Weeks", "Mils", "Inches", "Feet", "Cubic Inches",
51 //30
52 "Cubic Feet", "Meters",
53 "Cubic Centimeters", "Cubic Meters", "Liters",
54 "Fluid Ounces", "Radians", "Steradians", "Revolutions",
55 "Cycles", //40
56 "Gravities", "Ounces", "Pounds",
57 "Foot-Pounds", "Ounce-Inches", "Gauss", "Gilberts",
58 "Henries", "Farads", "Ohms", //50
59 "Siemens",
60 "Moles", "Becquerels", "PPM (parts/million)", "Decibels",
61 "DbA", "DbC", "Grays", "Sieverts",
62 "Color Temperature Degrees K", //60
63 "Bits",
64 karl 1.1.2.2 "Bytes", "Words (data)", "DoubleWords", "QuadWords",
65 "Percentage", "Pascals" },
66 ModelCorrespondence { "CIM_NumericSensor.UnitModifier",
67 "CIM_NumericSensor.RateUnits" }]
68 uint16 BaseUnits;
69
70 [Description (
71 "The unit multiplier for the values returned by this "
72 "Sensor. All the values returned by this Sensor are "
73 "represented in the units obtained by (BaseUnits * 10 "
74 "raised to the power of the UnitModifier). For example, "
75 "if BaseUnits is Volts and the Unit Modifier is -6, then "
76 "the units of the values returned are MicroVolts. "
77 "However, if the RateUnits property is set to a value "
78 "other than \"None\", then the units are further "
79 "qualified as rate units. In the above example, if "
80 "RateUnits is set to \"Per Second\", then the values "
81 "returned by the Sensor are in MicroVolts/Second. The "
82 "units apply to all numeric properties of the Sensor, "
83 "unless explicitly overridden by the Units qualifier." ),
84 ModelCorrespondence { "CIM_NumericSensor.BaseUnits",
85 karl 1.1.2.2 "CIM_NumericSensor.RateUnits" }]
86 sint32 UnitModifier;
87
88 [Description (
89 "Specifies if the units returned by this Sensor are rate "
90 "units. All the values returned by this Sensor are "
91 "represented in the units obtained by (BaseUnits * 10 "
92 "raised to the power of the UnitModifier). This is true "
93 "unless this property (RateUnits) has a value different "
94 "than \"None\". For example, if BaseUnits is Volts and "
95 "the UnitModifier is -6, then the units of the values "
96 "returned are MicroVolts. But, if the RateUnits property "
97 "is set to a value other than \"None\", then the units "
98 "are further qualified as rate units. In the above "
99 "example, if RateUnits is set to \"Per Second\", then the "
100 "values returned by the Sensor are in MicroVolts/Second. "
101 "The units apply to all numeric properties of the Sensor, "
102 "unless explicitly overridden by the Units qualifier. Any "
103 "implementation of CurrentReading should be qualified "
104 "with either a Counter or a Gauge qualifier, depending on "
105 "the characteristics of the sensor being modeled." ),
106 karl 1.1.2.2 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" },
107 Values { "None", "Per MicroSecond", "Per MilliSecond",
108 "Per Second", "Per Minute", "Per Hour", "Per Day",
109 "Per Week", "Per Month", "Per Year" },
110 ModelCorrespondence { "CIM_NumericSensor.UnitModifier",
111 "CIM_NumericSensor.BaseUnits" }]
112 uint16 RateUnits;
113
114 [Description ( "The current value indicated by the Sensor." ),
115 MappingStrings { "MIF.DMTF|Temperature Probe|002.5",
116 "MIF.DMTF|Electrical Current Probe|001.5",
117 "MIF.DMTF|Voltage Probe|001.5" }]
118 sint32 CurrentReading;
119
120 [Description (
121 "NominalReading indicates the \'normal\' or expected "
122 "value for the NumericSensor." ),
123 MappingStrings { "MIF.DMTF|Temperature Probe|002.6",
124 "MIF.DMTF|Electrical Current Probe|001.6",
125 "MIF.DMTF|Voltage Probe|001.6" }]
126 sint32 NominalReading;
127 karl 1.1.2.2
128 [Description (
129 "NormalMax provides guidance for the user as to the "
130 "normal maximum range for the NumericSensor." ),
131 MappingStrings { "MIF.DMTF|Temperature Probe|002.7",
132 "MIF.DMTF|Electrical Current Probe|001.7",
133 "MIF.DMTF|Voltage Probe|001.7" }]
134 sint32 NormalMax;
135
136 [Description (
137 "NormalMin provides guidance for the user as to the "
138 "normal minimum range for the NumericSensor." ),
139 MappingStrings { "MIF.DMTF|Temperature Probe|002.8",
140 "MIF.DMTF|Electrical Current Probe|001.8",
141 "MIF.DMTF|Voltage Probe|001.8" }]
142 sint32 NormalMin;
143
144 [Description (
145 "MaxReadable indicates the largest value of the measured "
146 "property that can be read by the NumericSensor." ),
147 MappingStrings { "MIF.DMTF|Temperature Probe|002.9",
148 karl 1.1.2.2 "MIF.DMTF|Electrical Current Probe|001.9",
149 "MIF.DMTF|Voltage Probe|001.9" }]
150 sint32 MaxReadable;
151
152 [Description (
153 "MinReadable indicates the smallest value of the measured "
154 "property that can be read by the NumericSensor." ),
155 MappingStrings { "MIF.DMTF|Temperature Probe|002.10",
156 "MIF.DMTF|Electrical Current Probe|001.10",
157 "MIF.DMTF|Voltage Probe|001.10" }]
158 sint32 MinReadable;
159
160 [Description (
161 "Resolution indicates the ability of the Sensor to "
162 "resolve differences in the measured property. The units "
163 "for this measurement are determined by "
164 "BaseUnit*UnitModifier/RateUnit." ),
165 MappingStrings { "MIF.DMTF|Temperature Probe|002.17",
166 "MIF.DMTF|Electrical Current Probe|001.17",
167 "MIF.DMTF|Voltage Probe|001.17" }]
168 uint32 Resolution;
169 karl 1.1.2.2
170 [Deprecated { "CIM_NumericSensor.Resolution",
171 "CIM_NumericSensor.Accuracy" },
172 Description (
173 "This property is being deprecated in lieu of using the "
174 "Resolution and Accuracy properties. \n"
175 "Indicates the tolerance of the Sensor for the measured "
176 "property. Tolerance, along with Resolution and Accuracy, "
177 "is used to calculate the actual value of the measured "
178 "physical property. Tolerance may vary depending on "
179 "whether the Device is linear over its dynamic range." )]
180 sint32 Tolerance;
181
182 [Description (
183 "Indicates the accuracy of the Sensor for the measured "
184 "property. Its value is recorded as plus/minus hundredths "
185 "of a percent. Accuracy, along with Resolution, is used "
186 "to calculate the actual value of the measured physical "
187 "property. Accuracy may vary depending on whether the "
188 "Device is linear over its dynamic range." ),
189 Units ( "Hundredths of Percent" ),
190 karl 1.1.2.2 MappingStrings { "MIF.DMTF|Temperature Probe|002.19",
191 "MIF.DMTF|Electrical Current Probe|001.19",
192 "MIF.DMTF|Voltage Probe|001.19" },
193 PUnit ( "percent * 10^-2" )]
194 sint32 Accuracy;
195
196 [Description (
197 "Indicates that the Sensor is linear over its dynamic range."
198 )]
199 boolean IsLinear;
200
201 [Description (
202 "Indicates the margin built around the thresholds. This "
203 "margin prevents unnecessary state changes when the "
204 "Sensor reading may fluctuate very close to its "
205 "thresholds. This could be due to the Sensor\'s "
206 "tolerance/accuracy/resolution or due to environmental "
207 "factors. Once a threshold is crossed, the state of the "
208 "Sensor should change. However, the state should not "
209 "fluctuate between the old and new states unless the "
210 "Sensor\'s change in the reading exceeds the hysteresis "
211 karl 1.1.2.2 "value. The units for this measurement are determined by "
212 "BaseUnit*UnitModifier/RateUnit." )]
213 uint32 Hysteresis;
214
215 [Write, Description (
216 "The Sensor\'s threshold values specify the ranges (min "
217 "and max values) for determining whether the Sensor is "
218 "operating under Normal, NonCritical, Critical or Fatal "
219 "conditions. If Current Reading is between "
220 "LowerThresholdNonCritical and Upper "
221 "ThresholdNonCritical, then the Sensor is reporting a "
222 "normal value. If CurrentReading is between "
223 "LowerThresholdNonCritical and LowerThresholdCritical, "
224 "then the CurrentState is NonCritical." ),
225 MappingStrings { "MIF.DMTF|Temperature Probe|002.11",
226 "MIF.DMTF|Electrical Current Probe|001.11",
227 "MIF.DMTF|Voltage Probe|001.11" }]
228 sint32 LowerThresholdNonCritical;
229
230 [Write, Description (
231 "The Sensor\'s threshold values specify the ranges (min "
232 karl 1.1.2.2 "and max values) for determining whether the Sensor is "
233 "operating under Normal, NonCritical, Critical or Fatal "
234 "conditions. If the CurrentReading is between "
235 "LowerThresholdNonCritical and UpperThresholdNonCritical, "
236 "then the Sensor is reporting a normal value. If the "
237 "CurrentReading is between UpperThreshold NonCritical and "
238 "UpperThresholdCritical, then the CurrentState is "
239 "NonCritical." ),
240 MappingStrings { "MIF.DMTF|Temperature Probe|002.12",
241 "MIF.DMTF|Electrical Current Probe|001.12",
242 "MIF.DMTF|Voltage Probe|001.12" }]
243 sint32 UpperThresholdNonCritical;
244
245 [Write, Description (
246 "The Sensor\'s threshold values specify the ranges (min "
247 "and max values) for determining whether the Sensor is "
248 "operating under Normal, NonCritical, Critical or Fatal "
249 "conditions. If the CurrentReading is between "
250 "LowerThresholdCritical and Lower ThresholdFatal, then "
251 "the CurrentState is Critical." ),
252 MappingStrings { "MIF.DMTF|Temperature Probe|002.13",
253 karl 1.1.2.2 "MIF.DMTF|Electrical Current Probe|001.13",
254 "MIF.DMTF|Voltage Probe|001.13" }]
255 sint32 LowerThresholdCritical;
256
257 [Write, Description (
258 "The Sensor\'s threshold values specify the ranges (min "
259 "and max values) for determining whether the Sensor is "
260 "operating under Normal, NonCritical, Critical or Fatal "
261 "conditions. If the CurrentReading is between "
262 "UpperThresholdCritical and Upper ThresholdFatal, then "
263 "the CurrentState is Critical." ),
264 MappingStrings { "MIF.DMTF|Temperature Probe|002.14",
265 "MIF.DMTF|Electrical Current Probe|001.14",
266 "MIF.DMTF|Voltage Probe|001.14" }]
267 sint32 UpperThresholdCritical;
268
269 [Write, Description (
270 "The Sensor\'s threshold values specify the ranges (min "
271 "and max values) for determining whether the Sensor is "
272 "operating under Normal, NonCritical, Critical or Fatal "
273 "conditions. If the CurrentReading is below "
274 karl 1.1.2.2 "LowerThresholdFatal, then the Current State is Fatal." ),
275 MappingStrings { "MIF.DMTF|Temperature Probe|002.15",
276 "MIF.DMTF|Electrical Current Probe|001.15",
277 "MIF.DMTF|Voltage Probe|001.15" }]
278 sint32 LowerThresholdFatal;
279
280 [Write, Description (
281 "The Sensor\'s threshold values specify the ranges (min "
282 "and max values) for determining whether the Sensor is "
283 "operating under Normal, NonCritical, Critical or Fatal "
284 "conditions. If the CurrentReading is above "
285 "UpperThresholdFatal, then the Current State is Fatal." ),
286 MappingStrings { "MIF.DMTF|Temperature Probe|002.16",
287 "MIF.DMTF|Electrical Current Probe|001.16",
288 "MIF.DMTF|Voltage Probe|001.16" }]
289 sint32 UpperThresholdFatal;
290
291 [Description (
292 "An array representing the thresholds supported by this Sensor."
293 ),
294 ValueMap { "0", "1", "2", "3", "4", "5" },
295 karl 1.1.2.2 Values { "LowerThresholdNonCritical",
296 "UpperThresholdNonCritical", "LowerThresholdCritical",
297 "UpperThresholdCritical", "LowerThresholdFatal",
298 "UpperThresholdFatal" }]
299 uint16 SupportedThresholds[];
300
301 [Description (
302 "An array representing the thresholds that are currently "
303 "enabled for this Sensor." ),
304 ValueMap { "0", "1", "2", "3", "4", "5" },
305 Values { "LowerThresholdNonCritical",
306 "UpperThresholdNonCritical", "LowerThresholdCritical",
307 "UpperThresholdCritical", "LowerThresholdFatal",
308 "UpperThresholdFatal" }]
309 uint16 EnabledThresholds[];
310
311 [Description (
312 "An array representing the writable thresholds supported by Sensor."
313 ),
314 ValueMap { "0", "1", "2", "3", "4", "5" },
315 Values { "LowerThresholdNonCritical",
316 karl 1.1.2.2 "UpperThresholdNonCritical", "LowerThresholdCritical",
317 "UpperThresholdCritical", "LowerThresholdFatal",
318 "UpperThresholdFatal" }]
319 uint16 SettableThresholds[];
320
321
322 [Description (
323 "This method resets the values of the thresholds to "
324 "hardware defaults. This method returns 0 if successful, "
325 "1 if unsupported and any other value if an error "
326 "occurred. In a subclass, the set of possible return "
327 "codes could be specified, using a ValueMap qualifier on "
328 "the method. The strings to which the ValueMap contents "
329 "are \'translated\' may also be specified in the subclass "
330 "as a Values array qualifier." )]
331 uint32 RestoreDefaultThresholds(
332 );
333
334 [Deprecated { "No Value" },
335 Description (
336 "The use of this method is being deprecated, since "
337 karl 1.1.2.2 "Current senor reading can be retrieved through the "
338 "GetInstance operation. \n"
339 "For a non-linear Sensor, the resolution, accuracy, "
340 "tolerance and hysteresis vary as the current reading "
341 "moves. This method can be used to get these factors for "
342 "a given reading. It returns 0 if successful, 1 if "
343 "unsupported, and any other value if an error occurred. "
344 "In a subclass, the set of possible return codes could be "
345 "specified, using a ValueMap qualifier on the method. The "
346 "strings to which the ValueMap contents are \'translated\' "
347 "may also be specified in the subclass as a Values array "
348 "qualifier." )]
349 uint32 GetNonLinearFactors(
350 [IN, Description (
351 "The sensor reading to get information for." )]
352 sint32 SensorReading,
353 [IN ( false ), OUT, Description (
354 "The accuracy of the reading." )]
355 sint32 Accuracy,
356 [IN ( false ), OUT, Description (
357 "The resolution of the reading." )]
358 karl 1.1.2.2 uint32 Resolution,
359 [IN ( false ), OUT, Description (
360 "The tolerance of the reading." )]
361 sint32 Tolerance,
362 [IN ( false ), OUT, Description (
363 "The Hysteresis of the reading." )]
364 uint32 Hysteresis);
365
366 };
|