1 karl 1.1 // ===================================================================
2 // Title: Device Sensors and Alarms 2.7
3 // Filename: Device27_Sensors.mof
4 // Version: 2.7.0
5 // Release: Preliminary
6 // Date: 07/17/02
7 // ===================================================================
8 // Copyright 2002 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 karl 1.1 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 karl 1.1 // ===================================================================
44 // Description: The Device Model extends the management concepts that
45 // are related to LogicalDevices. This file describes
46 // the management of sensors (including LEDs, Buzzers,
47 // WatchDog processors, etc.).
48 //
49 // The object classes below are listed in an order that
50 // avoids forward references. Required objects, defined
51 // by other working groups, are omitted.
52 // ==================================================================
53 // Change Log for v2.7
54 // CR621 - Promote subclassing of PackageTempSensor and PackageAlarm
55 // from Dependency to PackageDependency and deprecate them.
56 // CR771 - Add the composition qualifer to CollectionOfSensors
57 // ==================================================================
58
59 #pragma locale ("en_US")
60
61
62 // ===================================================================
63 // Sensor
64 karl 1.1 // ===================================================================
65 [Abstract, Version ("2.6.0"), Description (
66 "A Sensor is a hardware device capable of measuring the "
67 "characteristics of some physical property - for example, the "
68 "temperature or voltage characteristics of a UnitaryComputer"
69 "System.") ]
70 class CIM_Sensor : CIM_LogicalDevice {
71
72 [Description (
73 "The Type of the Sensor, e.g. Voltage or Temperature Sensor. "
74 "If the type is set to \"Other\", then the OtherSensorType"
75 "Description can be used to further identify the type, or if "
76 "the Sensor has numeric readings, then the type of the Sensor "
77 "can be implicitly determined by the Units. A description of "
78 "the different Sensor types is as follows: A Temperature "
79 "Sensor measures the environmental temperature. Voltage and "
80 "Current Sensors measure electrical voltage and current "
81 "readings. A Tachometer measures speed/revolutions of a "
82 "Device. For example, a Fan Device can have an associated "
83 "Tachometer which measures its speed. A Counter is a general "
84 "purpose Sensor that measures some numerical property of a "
85 karl 1.1 "Device. A Counter value can be cleared, but it never "
86 "decreases. A Switch Sensor has states like Open/Close, "
87 "On/Off, or Up/Down. A Lock has states of Locked/Unlocked. "
88 "Humidity, Smoke Detection and Air Flow Sensors measure the "
89 "equivalent environmental characteristics. A Presence Sensor "
90 "detects the presence of a PhysicalElement."),
91 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
92 "10", "11", "12"},
93 Values {"Unknown", "Other", "Temperature", "Voltage", "Current",
94 "Tachometer", "Counter", "Switch", "Lock", "Humidity",
95 "Smoke Detection", "Presence", "Air Flow"},
96 ModelCorrespondence {"CIM_Sensor.OtherSensorTypeDescription"} ]
97 uint16 SensorType;
98
99 [MaxLen (128), Description (
100 "A string describing the Sensor type - used when the "
101 "SensorType property is set to \"Other\"."),
102 ModelCorrespondence {"CIM_Sensor.SensorType"} ]
103 string OtherSensorTypeDescription;
104
105 [MaxLen (128), Description (
106 karl 1.1 "PossibleStates enumerates the string outputs of the Sensor. "
107 "For example, a \"Switch\" Sensor may output the states \"On\","
108 " or \"Off\". Another implementation of the Switch may output "
109 "the states \"Open\", and \"Close\". Another example is a "
110 "NumericSensor supporting thresholds. This Sensor can report "
111 "the states like \"Normal\", \"Upper Fatal\", "
112 "\"Lower Non-Critical\", etc. A NumericSensor that does not "
113 "publish readings and thresholds, but stores this data "
114 "internally, can still report its states.") ]
115 string PossibleStates[];
116
117 [MaxLen (128), Description (
118 "The current state indicated by the Sensor. This is always "
119 "one of the \"PossibleStates\".") ]
120 string CurrentState;
121
122 [Description (
123 "The polling interval that the Sensor hardware or the "
124 "instrumentation uses to determine the current state of the "
125 "Sensor."),
126 Units ("NanoSeconds") ]
127 karl 1.1 uint64 PollingInterval;
128 };
129
130
131 // ===================================================================
132 // AssociatedSensor
133 // ===================================================================
134 [Association, Version ("2.6.0"), Description (
135 "Many Devices include Sensors or have Sensors installed "
136 "nearby, in order to measure critical input and output "
137 "properties. This association indicates that relationship.") ]
138 class CIM_AssociatedSensor : CIM_Dependency {
139
140 [Override ("Antecedent"),
141 Description ("The Sensor.") ]
142 CIM_Sensor REF Antecedent;
143
144 [Override ("Dependent"), Description (
145 "The LogicalDevice for which information is measured by "
146 "the Sensor.") ]
147 CIM_LogicalDevice REF Dependent;
148 karl 1.1 };
149
150
151 // ===================================================================
152 // BinarySensor
153 // ===================================================================
154 [Version ("2.6.0"), Description (
155 "A BinarySensor provides a boolean output. Given the addition "
156 "of the CurrentState and PossibleStates properties to Sensor, "
157 "the BinarySensor subclass is no longer necessary, but is "
158 "retained for backward compatibility. A BinarySensor can be "
159 "created by instantiating a Sensor with two PossibleStates.") ]
160 class CIM_BinarySensor : CIM_Sensor {
161
162 [Description (
163 "The current value indicated by the Sensor.") ]
164 boolean CurrentReading;
165
166 [Description (
167 "ExpectedReading indicates the 'normal' value for the "
168 "Sensor.") ]
169 karl 1.1 boolean ExpectedReading;
170
171 [MaxLen (64), Description (
172 "InterpretationOfTrue is a string indicating what a 'True' "
173 "value from the BinarySensor means. This information could "
174 "be displayed to a user.") ]
175 string InterpretationOfTrue;
176
177 [MaxLen (64), Description (
178 "InterpretationOfFalse is a string indicating what a 'False' "
179 "value from the BinarySensor means. This information could "
180 "be displayed to a user.") ]
181 string InterpretationOfFalse;
182 };
183
184
185 // ===================================================================
186 // MultiStateSensor
187 // ===================================================================
188 [Version ("2.6.0"), Description (
189 "A Multi-StateSensor is a multi-member set of Sensors.") ]
190 karl 1.1 class CIM_MultiStateSensor : CIM_Sensor {
191 };
192
193
194 // ===================================================================
195 // CollectionOfSensors
196 // ===================================================================
197 [Association, Aggregation, Composition, Version ("2.7.0"),
198 Description (
199 "The CollectionOfSensors association indicates the "
200 "Sensors that make up a MultiStateSensor.") ]
201 class CIM_CollectionOfSensors : CIM_Component {
202
203 [Override ("GroupComponent"), Aggregate, Max (1),
204 Description ("The MultiStateSensor.") ]
205 CIM_MultiStateSensor REF GroupComponent;
206
207 [Override ("PartComponent"), Min (2),
208 Description (
209 "A Sensor that is part of the MultiStateSensor.") ]
210 CIM_Sensor REF PartComponent;
211 karl 1.1 };
212
213
214 // ===================================================================
215 // NumericSensor
216 // ===================================================================
217 [Version ("2.6.0"), Description (
218 "A Numeric Sensor is capable of returning numeric readings "
219 "and optionally supports thresholds settings.") ]
220 class CIM_NumericSensor : CIM_Sensor {
221
222 [Description (
223 "The base unit of the values returned by this Sensor. All "
224 "the values returned by this Sensor are represented in the "
225 "units obtained by (BaseUnits * 10 raised to the power of the "
226 "UnitModifier). For example, if BaseUnits is Volts and the "
227 "UnitModifier is -6, then the units of the values returned are "
228 "MicroVolts. However, if the RateUnits property is set to a "
229 "value other than \"None\", then the units are further "
230 "qualified as rate units. In the above example, if RateUnits "
231 "is set to \"Per Second\", then the values returned by the "
232 karl 1.1 "Sensor are in MicroVolts/Second. The units apply to all "
233 "numeric properties of the Sensor, unless explicitly "
234 "overridden by the Units qualifier."),
235 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
236 "10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
237 "20", "21", "22", "23", "24", "25", "26", "27", "28", "29",
238 "30", "31", "32", "33", "34", "35", "36", "37", "38", "39",
239 "40", "41", "42", "43", "44", "45", "46", "47", "48", "49",
240 "50", "51", "52", "53", "54", "55", "56", "57", "58", "59",
241 "60", "61", "62", "63", "64", "65"},
242 Values {"Unknown", "Other", "Degrees C", "Degrees F",
243 "Degrees K", "Volts", "Amps", "Watts", "Joules", "Coulombs",
244 //10
245 "VA", "Nits", "Lumens", "Lux", "Candelas", "kPa", "PSI",
246 "Newtons", "CFM", "RPM",
247 //20
248 "Hertz", "Seconds", "Minutes", "Hours", "Days", "Weeks",
249 "Mils", "Inches", "Feet", "Cubic Inches",
250 //30
251 "Cubic Feet", "Meters", "Cubic Centimeters", "Cubic Meters",
252 "Liters", "Fluid Ounces", "Radians", "Steradians",
253 karl 1.1 "Revolutions", "Cycles",
254 //40
255 "Gravities", "Ounces", "Pounds", "Foot-Pounds",
256 "Ounce-Inches", "Gauss", "Gilberts", "Henries", "Farads",
257 "Ohms",
258 //50
259 "Siemens", "Moles", "Becquerels", "PPM (parts/million)",
260 "Decibels", "DbA", "DbC", "Grays", "Sieverts",
261 "Color Temperature Degrees K",
262 //60
263 "Bits", "Bytes", "Words (data)", "DoubleWords",
264 "QuadWords",
265 "Percentage"},
266 ModelCorrespondence {"CIM_NumericSensor.UnitModifier",
267 "CIM_NumericSensor.RateUnits"} ]
268 uint16 BaseUnits;
269
270 [Description (
271 "The unit multiplier for the values returned by this Sensor. "
272 "All the values returned by this Sensor are represented in the "
273 "units obtained by (BaseUnits * 10 raised to the power of the "
274 karl 1.1 "UnitModifier). For example, if BaseUnits is Volts and the Unit"
275 "Modifier is -6, then the units of the values returned are "
276 "MicroVolts. However, if the RateUnits property is set to a "
277 "value other than \"None\", then the units are further "
278 "qualified as rate units. In the above example, if RateUnits "
279 "is set to \"Per Second\", then the values returned by the "
280 "Sensor are in MicroVolts/Second. The units apply to all "
281 "numeric properties of the Sensor, unless explicitly "
282 "overridden by the Units qualifier."),
283 ModelCorrespondence {"CIM_NumericSensor.BaseUnits",
284 "CIM_NumericSensor.RateUnits"} ]
285 sint32 UnitModifier;
286
287 [Description (
288 "Specifies if the units returned by this Sensor are rate "
289 "units. All the values returned by this Sensor are represented "
290 "in the units obtained by (BaseUnits * 10 raised to the power "
291 "of the UnitModifier). This is true unless this property "
292 "(RateUnits) has a value different than \"None\". For example, "
293 "if BaseUnits is Volts and the UnitModifier is -6, then the "
294 "units of the values returned are MicroVolts. But, if the "
295 karl 1.1 "RateUnits property is set to a value other than \"None\", "
296 "then the units are further qualified as rate units. In the "
297 "above example, if RateUnits is set to \"Per Second\", then "
298 "the values returned by the Sensor are in MicroVolts/Second. "
299 "The units apply to all numeric properties of the Sensor, "
300 "unless explicitly overridden by the Units qualifier. Any "
301 "implementation of CurrentReading should be qualified with "
302 "either a Counter or a Gauge qualifier, depending on the "
303 "characteristics of the sensor being modeled."),
304 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"},
305 Values {"None", "Per MicroSecond", "Per MilliSecond",
306 "Per Second", "Per Minute", "Per Hour", "Per Day",
307 "Per Week", "Per Month", "Per Year"},
308 ModelCorrespondence {"CIM_NumericSensor.UnitModifier",
309 "CIM_NumericSensor.BaseUnits"} ]
310 uint16 RateUnits;
311
312 [Description (
313 "The current value indicated by the Sensor.") ]
314 sint32 CurrentReading;
315
316 karl 1.1 [Description (
317 "NominalReading indicates the 'normal' or expected value "
318 "for the NumericSensor.") ]
319 sint32 NominalReading;
320
321 [Description (
322 "NormalMax provides guidance for the user as to the "
323 "normal maximum range for the NumericSensor.") ]
324 sint32 NormalMax;
325
326 [Description (
327 "NormalMin provides guidance for the user as to the "
328 "normal minimum range for the NumericSensor.") ]
329 sint32 NormalMin;
330
331 [Description (
332 "MaxReadable indicates the largest value of the measured "
333 "property that can be read by the NumericSensor.") ]
334 sint32 MaxReadable;
335
336 [Description (
337 karl 1.1 "MinReadable indicates the smallest value of the measured "
338 "property that can be read by the NumericSensor.") ]
339 sint32 MinReadable;
340
341 [Description (
342 "Resolution indicates the ability of the Sensor to resolve "
343 "differences in the measured property. This value may vary "
344 "depending on whether the Device is linear over its dynamic "
345 "range.") ]
346 uint32 Resolution;
347
348 [Description (
349 "Indicates the tolerance of the Sensor for the measured "
350 "property. Tolerance, along with Resolution and Accuracy, "
351 "is used to calculate the actual value of the measured "
352 "physical property. Tolerance may vary depending on "
353 "whether the Device is linear over its dynamic range.") ]
354 sint32 Tolerance;
355
356 [Description (
357 "Indicates the accuracy of the Sensor for the measured "
358 karl 1.1 "property. Its value is recorded as plus/minus hundredths "
359 "of a percent. Accuracy, along with Resolution and Tolerance, "
360 "is used to calculate the actual value of the measured "
361 "physical property. Accuracy may vary depending on whether "
362 "the Device is linear over its dynamic range."),
363 Units ("Hundredths of Percent") ]
364 sint32 Accuracy;
365
366 [Description (
367 "Indicates that the Sensor is linear over its dynamic range.") ]
368 boolean IsLinear;
369
370 [Description (
371 "Indicates the margin built around the thresholds. This margin "
372 "prevents unnecessary state changes when the Sensor reading may"
373 " fluctuate very close to its thresholds. This could be due to "
374 "the Sensor's tolerance/accuracy/resolution or due to "
375 "environmental factors. Once a threshold is crossed, the state "
376 "of the Sensor should change. However, the state should not "
377 "fluctuate between the old and new states unless the Sensor's "
378 "change in the reading exceeds the hysteresis value.") ]
379 karl 1.1 uint32 Hysteresis;
380
381 [Description (
382 "The Sensor's threshold values specify the ranges (min and max "
383 "values) for determining whether the Sensor is operating under "
384 "Normal, NonCritical, Critical or Fatal conditions. If Current"
385 "Reading is between LowerThresholdNonCritical and Upper"
386 "ThresholdNonCritical, then the Sensor is reporting a normal "
387 "value. If CurrentReading is between LowerThresholdNonCritical "
388 "and LowerThresholdCritical, then the CurrentState is "
389 "NonCritical.") ]
390 sint32 LowerThresholdNonCritical;
391
392 [Description (
393 "The Sensor's threshold values specify the ranges (min and max "
394 "values) for determining whether the Sensor is operating under "
395 "Normal, NonCritical, Critical or Fatal conditions. If the "
396 "CurrentReading is between LowerThresholdNonCritical and "
397 "UpperThresholdNonCritical, then the Sensor is reporting a "
398 "normal value. If the CurrentReading is between UpperThreshold"
399 "NonCritical and UpperThresholdCritical, then the CurrentState "
400 karl 1.1 "is NonCritical.") ]
401 sint32 UpperThresholdNonCritical;
402
403 [Description (
404 "The Sensor's threshold values specify the ranges (min and max "
405 "values) for determining whether the Sensor is operating under "
406 "Normal, NonCritical, Critical or Fatal conditions. If the "
407 "CurrentReading is between LowerThresholdCritical and Lower"
408 "ThresholdFatal, then the CurrentState is Critical.") ]
409 sint32 LowerThresholdCritical;
410
411 [Description (
412 "The Sensor's threshold values specify the ranges (min and max "
413 "values) for determining whether the Sensor is operating under "
414 "Normal, NonCritical, Critical or Fatal conditions. If the "
415 "CurrentReading is between UpperThresholdCritical and Upper"
416 "ThresholdFatal, then the CurrentState is Critical.") ]
417 sint32 UpperThresholdCritical;
418
419 [Description (
420 "The Sensor's threshold values specify the ranges (min and max "
421 karl 1.1 "values) for determining whether the Sensor is operating under "
422 "Normal, NonCritical, Critical or Fatal conditions. If the "
423 "CurrentReading is below LowerThresholdFatal, then the Current"
424 "State is Fatal.") ]
425 sint32 LowerThresholdFatal;
426
427 [Description (
428 "The Sensor's threshold values specify the ranges (min and max "
429 "values) for determining whether the Sensor is operating under "
430 "Normal, NonCritical, Critical or Fatal conditions. If the "
431 "CurrentReading is above UpperThresholdFatal, then the Current"
432 "State is Fatal.") ]
433 sint32 UpperThresholdFatal;
434
435 [Description (
436 "An array representing the thresholds supported by this "
437 "Sensor."),
438 ValueMap {"0", "1", "2", "3", "4", "5"},
439 Values {"LowerThresholdNonCritical",
440 "UpperThresholdNonCritical",
441 "LowerThresholdCritical", "UpperThresholdCritical",
442 karl 1.1 "LowerThresholdFatal", "UpperThresholdFatal"} ]
443 uint16 SupportedThresholds[];
444
445 [Description (
446 "An array representing the thresholds that are currently "
447 "enabled for this Sensor."),
448 ValueMap {"0", "1", "2", "3", "4", "5"},
449 Values {"LowerThresholdNonCritical",
450 "UpperThresholdNonCritical",
451 "LowerThresholdCritical", "UpperThresholdCritical",
452 "LowerThresholdFatal", "UpperThresholdFatal"} ]
453 uint16 EnabledThresholds[];
454
455 [Description (
456 "An array representing the writable thresholds supported by "
457 "Sensor."),
458 ValueMap {"0", "1", "2", "3", "4", "5"},
459 Values {"LowerThresholdNonCritical",
460 "UpperThresholdNonCritical",
461 "LowerThresholdCritical", "UpperThresholdCritical",
462 "LowerThresholdFatal", "UpperThresholdFatal"} ]
463 karl 1.1 uint16 SettableThresholds[];
464
465 [Description (
466 "This method resets the values of the thresholds to hardware "
467 "defaults. This method returns 0 if successful, 1 if "
468 "unsupported and any other value if an error occurred. "
469 "In a subclass, the set of possible return codes could be "
470 "specified, using a ValueMap qualifier on the method. The "
471 "strings to which the ValueMap contents are 'translated' "
472 "may also be specified in the subclass as a Values "
473 "array qualifier.") ]
474 uint32 RestoreDefaultThresholds();
475
476 [Description (
477 "For a non-linear Sensor, the resolution, accuracy, tolerance "
478 "and hysteresis vary as the current reading moves. This method "
479 "can be used to get these factors for a given reading. It "
480 "returns 0 if successful, 1 if unsupported, and any other "
481 "value if an error occurred. In a subclass, the set of "
482 "possible return codes could be specified, using a ValueMap "
483 "qualifier on the method. The strings to which the ValueMap "
484 karl 1.1 "contents are 'translated' may also be specified in the "
485 "subclass as a Values array qualifier.") ]
486 uint32 GetNonLinearFactors(
487 [IN]
488 sint32 SensorReading,
489 [IN (false), OUT]
490 sint32 Accuracy,
491 [IN (false), OUT]
492 uint32 Resolution,
493 [IN (false), OUT]
494 sint32 Tolerance,
495 [IN (false), OUT]
496 uint32 Hysteresis);
497 };
498
499
500 // ===================================================================
501 // DiscreteSensor
502 // ===================================================================
503 [Version ("2.6.0"), Description (
504 "A DiscreteSensor has a set of legal string values, "
505 karl 1.1 "that it can report. These values are enumerated in the "
506 "Sensor's PossibleValues property. A DiscreteSensor will "
507 "always have a 'current reading' that corresponds to one of "
508 "the enumerated values. \n"
509 "Given the addition of the CurrentState and PossibleStates "
510 "properties to Sensor, the DiscreteSensor subclass is no longer "
511 "necessary, but is retained for backward compatibility. "
512 "Information in the CurrentReading and PossibleValues properties "
513 "will typically have the same values and semantics as for the "
514 "CurrentState and PossibleStates properties, inherited from "
515 "Sensor.") ]
516 class CIM_DiscreteSensor : CIM_Sensor {
517
518 [MaxLen (64), Description (
519 "The current value indicated by the Sensor.") ]
520 string CurrentReading;
521
522 [MaxLen (64), Description (
523 "PossibleValues enumerates the string outputs that can be "
524 "reported by the DiscreteSensor.") ]
525 string PossibleValues[];
526 karl 1.1
527 [MaxLen (64), Description (
528 "AcceptableValues details which of the PossibleValues strings "
529 "are considered 'acceptable' (ie, 'not an error').") ]
530 string AcceptableValues[];
531 };
532
533
534 // ===================================================================
535 // TemperatureSensor
536 // ===================================================================
537 [Version ("2.6.0"), Description (
538 "This class exists for backward compatibility to earlier "
539 "CIM Schema definitions. With additions to Sensor and Numeric"
540 "Sensor in V2.2, it is no longer necessary. A TempertatureSensor "
541 "can be defined by setting the SensorType property, inherited "
542 "from Sensor, to 2 (\"Temperature\"). Other properties of this "
543 "class are hard-coded to constant values to correspond to "
544 "definitions in the Sensor hierarchy.") ]
545 class CIM_TemperatureSensor : CIM_NumericSensor {
546
547 karl 1.1 [Override(
548 "SensorType") ]
549 uint16 SensorType = 2;
550
551 [Override(
552 "BaseUnits") ]
553 uint16 BaseUnits = 2;
554
555 [Override(
556 "UnitModifier") ]
557 sint32 UnitModifier = -1;
558
559 [Override(
560 "RateUnits") ]
561 uint16 RateUnits = 0;
562
563 [Override ("CurrentReading"),
564 MappingStrings {"MIF.DMTF|Temperature Probe|002.5"} ]
565 sint32 CurrentReading;
566
567 [Override ("NominalReading"),
568 karl 1.1 MappingStrings {"MIF.DMTF|Temperature Probe|002.6"} ]
569 sint32 NominalReading;
570
571 [Override ("NormalMax"),
572 MappingStrings {"MIF.DMTF|Temperature Probe|002.7"} ]
573 sint32 NormalMax;
574
575 [Override ("NormalMin"),
576 MappingStrings {"MIF.DMTF|Temperature Probe|002.8"} ]
577 sint32 NormalMin;
578
579 [Override ("MaxReadable"),
580 MappingStrings {"MIF.DMTF|Temperature Probe|002.9"} ]
581 sint32 MaxReadable;
582
583 [Override ("MinReadable"),
584 MappingStrings {"MIF.DMTF|Temperature Probe|002.10"} ]
585 sint32 MinReadable;
586
587 [Override ("Resolution"),
588 Units ("Hundredths of Degrees C"),
589 karl 1.1 MappingStrings {"MIF.DMTF|Temperature Probe|002.17"} ]
590 uint32 Resolution;
591
592 [Override ("Tolerance"),
593 MappingStrings {"MIF.DMTF|Temperature Probe|002.18"} ]
594 sint32 Tolerance;
595
596 [Override ("Accuracy"),
597 MappingStrings {"MIF.DMTF|Temperature Probe|002.19"} ]
598 sint32 Accuracy;
599
600 [Override ("LowerThresholdNonCritical"),
601 MappingStrings {"MIF.DMTF|Temperature Probe|002.11"} ]
602 sint32 LowerThresholdNonCritical;
603
604 [Override ("UpperThresholdNonCritical"),
605 MappingStrings {"MIF.DMTF|Temperature Probe|002.12"} ]
606 sint32 UpperThresholdNonCritical;
607
608 [Override ("LowerThresholdCritical"),
609 MappingStrings {"MIF.DMTF|Temperature Probe|002.13"} ]
610 karl 1.1 sint32 LowerThresholdCritical;
611
612 [Override ("UpperThresholdCritical"),
613 MappingStrings {"MIF.DMTF|Temperature Probe|002.14"} ]
614 sint32 UpperThresholdCritical;
615
616 [Override ("LowerThresholdFatal"),
617 MappingStrings {"MIF.DMTF|Temperature Probe|002.15"} ]
618 sint32 LowerThresholdFatal;
619
620 [Override ("UpperThresholdFatal"),
621 MappingStrings {"MIF.DMTF|Temperature Probe|002.16"} ]
622 sint32 UpperThresholdFatal;
623 };
624
625
626 // ===================================================================
627 // CurrentSensor
628 // ===================================================================
629 [Version ("2.6.0"), Description (
630 "This class exists for backward compatibility to earlier "
631 karl 1.1 "CIM Schema definitions. With additions to Sensor and Numeric"
632 "Sensor in V2.2, it is no longer necessary. A CurrentSensor can "
633 "be defined by setting the SensorType property, inherited from "
634 "Sensor, to 4 (\"Current\"). Other properties of this class are "
635 "hard-coded to constant values to correspond to definitions in "
636 "the Sensor hierarchy.") ]
637 class CIM_CurrentSensor : CIM_NumericSensor {
638
639 [Override(
640 "SensorType") ]
641 uint16 SensorType = 4;
642
643 [Override(
644 "BaseUnits") ]
645 uint16 BaseUnits = 6;
646
647 [Override(
648 "UnitModifier") ]
649 sint32 UnitModifier = -3;
650
651 [Override(
652 karl 1.1 "RateUnits") ]
653 uint16 RateUnits = 0;
654
655 [Override ("CurrentReading"),
656 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.5"} ]
657 sint32 CurrentReading;
658
659 [Override ("NominalReading"),
660 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.6"} ]
661 sint32 NominalReading;
662
663 [Override ("NormalMax"),
664 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.7"} ]
665 sint32 NormalMax;
666
667 [Override ("NormalMin"),
668 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.8"} ]
669 sint32 NormalMin;
670
671 [Override ("MaxReadable"),
672 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.9"} ]
673 karl 1.1 sint32 MaxReadable;
674
675 [Override ("MinReadable"),
676 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.10"} ]
677 sint32 MinReadable;
678
679 [Override ("Resolution"),
680 Units ("Tenths of MilliAmps"),
681 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.17"} ]
682 uint32 Resolution;
683
684 [Override ("Tolerance"),
685 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.18"} ]
686 sint32 Tolerance;
687
688 [Override ("Accuracy"),
689 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.19"} ]
690 sint32 Accuracy;
691
692 [Override ("LowerThresholdNonCritical"),
693 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.11"} ]
694 karl 1.1 sint32 LowerThresholdNonCritical;
695
696 [Override ("UpperThresholdNonCritical"),
697 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.12"} ]
698 sint32 UpperThresholdNonCritical;
699
700 [Override ("LowerThresholdCritical"),
701 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.13"} ]
702 sint32 LowerThresholdCritical;
703
704 [Override ("UpperThresholdCritical"),
705 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.14"} ]
706 sint32 UpperThresholdCritical;
707
708 [Override ("LowerThresholdFatal"),
709 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.15"} ]
710 sint32 LowerThresholdFatal;
711
712 [Override ("UpperThresholdFatal"),
713 MappingStrings {"MIF.DMTF|Electrical Current Probe|001.16"} ]
714 sint32 UpperThresholdFatal;
715 karl 1.1 };
716
717
718 // ===================================================================
719 // VoltageSensor
720 // ===================================================================
721 [Version ("2.6.0"), Description (
722 "This class exists for backward compatibility to earlier "
723 "CIM Schema definitions. With additions to Sensor and Numeric"
724 "Sensor in V2.2, it is no longer necessary. A VoltageSensor can "
725 "be defined by setting the SensorType property, inherited from "
726 "Sensor, to 3 (\"Voltage\"). Other properties of this class are "
727 "hard-coded to constant values to correspond to definitions in "
728 "the Sensor hierarchy.") ]
729 class CIM_VoltageSensor : CIM_NumericSensor {
730
731 [Override(
732 "SensorType") ]
733 uint16 SensorType = 3;
734
735 [Override(
736 karl 1.1 "BaseUnits") ]
737 uint16 BaseUnits = 5;
738
739 [Override(
740 "UnitModifier") ]
741 sint32 UnitModifier = -3;
742
743 [Override(
744 "RateUnits") ]
745 uint16 RateUnits = 0;
746
747 [Override ("CurrentReading"),
748 MappingStrings {"MIF.DMTF|Voltage Probe|001.5"} ]
749 sint32 CurrentReading;
750
751 [Override ("NominalReading"),
752 MappingStrings {"MIF.DMTF|Voltage Probe|001.6"} ]
753 sint32 NominalReading;
754
755 [Override ("NormalMax"),
756 MappingStrings {"MIF.DMTF|Voltage Probe|001.7"} ]
757 karl 1.1 sint32 NormalMax;
758
759 [Override ("NormalMin"),
760 MappingStrings {"MIF.DMTF|Voltage Probe|001.8"} ]
761 sint32 NormalMin;
762
763 [Override ("MaxReadable"),
764 MappingStrings {"MIF.DMTF|Voltage Probe|001.9"} ]
765 sint32 MaxReadable;
766
767 [Override ("MinReadable"),
768 MappingStrings {"MIF.DMTF|Voltage Probe|001.10"} ]
769 sint32 MinReadable;
770
771 [Override ("Resolution"),
772 Units ("Tenths of MilliVolts"),
773 MappingStrings {"MIF.DMTF|Voltage Probe|001.17"} ]
774 uint32 Resolution;
775
776 [Override ("Tolerance"),
777 MappingStrings {"MIF.DMTF|Voltage Probe|001.18"} ]
778 karl 1.1 sint32 Tolerance;
779
780 [Override ("Accuracy"),
781 MappingStrings {"MIF.DMTF|Voltage Probe|001.19"} ]
782 sint32 Accuracy;
783
784 [Override ("LowerThresholdNonCritical"),
785 MappingStrings {"MIF.DMTF|Voltage Probe|001.11"} ]
786 sint32 LowerThresholdNonCritical;
787
788 [Override ("UpperThresholdNonCritical"),
789 MappingStrings {"MIF.DMTF|Voltage Probe|001.12"} ]
790 sint32 UpperThresholdNonCritical;
791
792 [Override ("LowerThresholdCritical"),
793 MappingStrings {"MIF.DMTF|Voltage Probe|001.13"} ]
794 sint32 LowerThresholdCritical;
795
796 [Override ("UpperThresholdCritical"),
797 MappingStrings {"MIF.DMTF|Voltage Probe|001.14"} ]
798 sint32 UpperThresholdCritical;
799 karl 1.1
800 [Override ("LowerThresholdFatal"),
801 MappingStrings {"MIF.DMTF|Voltage Probe|001.15"} ]
802 sint32 LowerThresholdFatal;
803
804 [Override ("UpperThresholdFatal"),
805 MappingStrings {"MIF.DMTF|Voltage Probe|001.16"} ]
806 sint32 UpperThresholdFatal;
807 };
808
809
810 // ===================================================================
811 // Tachometer
812 // ===================================================================
813 [Version ("2.6.0"), Description (
814 "This class exists for backward compatibility to earlier "
815 "CIM Schema definitions. With additions to Sensor and Numeric"
816 "Sensor in V2.2, it is no longer necessary. A Tachometer can "
817 "be defined by setting the SensorType property. inherited from "
818 "Sensor, to 5 (\"Tachometer\"). Other properties of this class "
819 "are hard-coded to constant values to correspond to definitions "
820 karl 1.1 "in the Sensor hierarchy.") ]
821 class CIM_Tachometer : CIM_NumericSensor {
822
823 [Override(
824 "SensorType") ]
825 uint16 SensorType = 5;
826
827 [Override(
828 "BaseUnits") ]
829 uint16 BaseUnits = 38;
830
831 [Override(
832 "UnitModifier") ]
833 sint32 UnitModifier = 1;
834
835 [Override(
836 "RateUnits") ]
837 uint16 RateUnits = 4;
838
839 [Override ("Resolution"),
840 Units ("Tenths of Revolutions per Minute") ]
841 karl 1.1 uint32 Resolution;
842 };
843
844
845 // ===================================================================
846 // AssociatedSupplyVoltageSensor
847 // ===================================================================
848 [Association, Version ("2.6.0"), Description (
849 "A PowerSupply may have an associated VoltageSensor, monitoring "
850 "its input voltage. This is described by this association.") ]
851 class CIM_AssociatedSupplyVoltageSensor : CIM_AssociatedSensor {
852
853 [Override ("Antecedent"),
854 Description ("The VoltageSensor.") ]
855 CIM_VoltageSensor REF Antecedent;
856
857 [Override ("Dependent"),
858 Description (
859 "The PowerSupply associated with the VoltageSensor.") ]
860 CIM_PowerSupply REF Dependent;
861
862 karl 1.1 [Description (
863 "Indicates the PowerSupply's input voltage range measured "
864 "by the associated sensor. Range 1, 2 or both can be specified "
865 "using the values 2, 3 or 4, respectively."),
866 ValueMap {"0", "1", "2", "3", "4"},
867 Values {"Unknown", "Other", "Range 1", "Range 2",
868 "Both Range 1 and 2"} ]
869 uint16 MonitoringRange;
870 };
871
872
873 // ===================================================================
874 // AssociatedSupplyCurrentSensor
875 // ===================================================================
876 [Association, Version ("2.6.0"), Description (
877 "A PowerSupply may have an associated CurrentSensor, monitoring "
878 "its input frequency. This is described by this association.") ]
879 class CIM_AssociatedSupplyCurrentSensor : CIM_AssociatedSensor {
880
881 [Override ("Antecedent"),
882 Description ("The CurrentSensor.") ]
883 karl 1.1 CIM_CurrentSensor REF Antecedent;
884
885 [Override ("Dependent"),
886 Description (
887 "The PowerSupply associated with the CurrentSensor.") ]
888 CIM_PowerSupply REF Dependent;
889
890 [Description (
891 "Indicates the PowerSupply's input frequency range measured "
892 "by the associated sensor. Range 1, 2 or both can be specified "
893 "using the values 2, 3 or 4, respectively."),
894 ValueMap {"0", "1", "2", "3", "4"},
895 Values {"Unknown", "Other", "Range 1", "Range 2",
896 "Both Range 1 and 2"} ]
897 uint16 MonitoringRange;
898 };
899
900 // ==================================================================
901 // PackageTempSensor
902 // ==================================================================
903 [Association, Version ("2.7.0"), Deprecated {"CIM_PackageDependency"},
904 karl 1.1 Description (
905 "Often, a TemperatureSensor is installed in a Package such as "
906 "a Chassis or a Rack, not to measure any particular Device, "
907 "but the Package's environment in general. The use of this "
908 "association has been deprecated. Instead, use "
909 "PackageDependency to describe this relationship.") ]
910 class CIM_PackageTempSensor : CIM_PackageDependency {
911
912 [Override ("Antecedent"),
913 Deprecated {"CIM_PackageDependency.Antecedent"},
914 Description (
915 "The TemperatureSensor for the Package.") ]
916 CIM_TemperatureSensor REF Antecedent;
917
918 [Override ("Dependent"),
919 Deprecated {"CIM_PackageDependency.Dependent"},
920 Description (
921 "The PhysicalPackage whose environment is monitored.") ]
922 CIM_PhysicalPackage REF Dependent;
923 };
924
925 karl 1.1
926 // ====================================================================
927 // AlarmDevice
928 // ===================================================================
929 [Version ("2.6.0"), Description (
930 "An AlarmDevice is a type of Device that emits audible or "
931 "visible indications related to a problem situation.") ]
932 class CIM_AlarmDevice : CIM_LogicalDevice {
933
934 [Description (
935 "Boolean indicating that the Alarm is audible.") ]
936 boolean AudibleAlarm;
937
938 [Description (
939 "Boolean indicating that the Alarm is visible.") ]
940 boolean VisibleAlarm;
941
942 [Description (
943 "Boolean indicating that the Alarm causes motion of the "
944 "Device.") ]
945 boolean MotionAlarm;
946 karl 1.1
947 [Description (
948 "Urgency is an enumerated value that indicates the relative "
949 "frequency at which the Alarm flashes, vibrates and/or emits "
950 "audible tones."),
951 ValueMap {"0", "1", "2", "3", "4", "5", "6"},
952 Values {"Unknown", "Other", "Not Supported", "Informational",
953 "Non-Critical", "Critical", "Unrecoverable"} ]
954 uint16 Urgency;
955
956 [Description ("The current state of the alarm."),
957 ValueMap {"0", "1", "2", "3"},
958 Values {"Unknown", "Off", "Steady", "Alternating"} ]
959 uint16 AlarmState;
960
961 [Description (
962 "True indicates that the audio of an AlarmState indicator "
963 "has been disabled (i.e. muted). A disabled state here "
964 "does not imply that the AlarmState is off.") ]
965 boolean AudioIndicatorIsDisabled;
966
967 karl 1.1 [Description (
968 "True indicates that the visual of an AlarmState indicator "
969 "has been disabled (i.e. dimmed). A disabled state here "
970 "does not imply that the AlarmState is off.") ]
971 boolean VisualIndicatorIsDisabled;
972
973 [Description (
974 "True indicates that the motion of an AlarmState indicator "
975 "has been disabled (i.e. stopped). A disabled state here "
976 "does not imply that the AlarmState is off.") ]
977 boolean MotionIndicatorIsDisabled;
978
979 [Description (
980 "SetAlarmState is a method for defining the current state "
981 "of the Alarm. Its input parameter, RequestedAlarmState, is "
982 "specified using the Values list of AlarmDevice's AlarmState "
983 "property. SetAlarmState returns 0 if the request is "
984 "successfully implemented, 1 if the specified RequestedAlarm"
985 "State is not supported, and some other value if any other "
986 "error occurred. In a subclass, the set of possible return "
987 "codes should be specified using a ValueMap qualifier on the "
988 karl 1.1 "method. The strings to which the ValueMap contents are "
989 "'translated' should be specified as a Values array "
990 "qualifier.") ]
991 uint32 SetAlarmState (
992 [IN,
993 ValueMap {"0", "1", "2", "3"},
994 Values {"Unknown", "Off", "Steady", "Alternating"} ]
995 uint16 RequestedAlarmState);
996
997 [Description (
998 "SetAlarmIndicator is a method for enabling or disabling the "
999 "indicator of the AlarmState function, without changing the "
1000 "current AlarmState. It has 3 input parameters, Audio"
1001 "Indicator, VisualIndicator and MotionIndicator. For all of "
1002 "the input parameters, a value of 0 indicates no change to "
1003 "the AlarmState indicator, 1 indicates Disable, and 2 "
1004 "indicates Enable. The method returns 0 if the request is "
1005 "successfully implemented, 1 if the specified request is not "
1006 "supported, and some other value if any other error occurred. "
1007 "In a subclass, the set of possible return codes should be "
1008 "specified using a ValueMap qualifier on the method. The "
1009 karl 1.1 "strings to which the ValueMap contents are 'translated' "
1010 "should be specified as a Values array qualifier.") ]
1011 uint32 SetAlarmIndicator (
1012 [IN,
1013 ValueMap {"0", "1", "2"},
1014 Values {"No Change", "Disable", "Enable"} ]
1015 uint16 AudioIndicator,
1016 [IN,
1017 ValueMap {"0", "1", "2"},
1018 Values {"No Change", "Disable", "Enable"} ]
1019 uint16 VisualIndicator,
1020 [IN,
1021 ValueMap {"0", "1", "2"},
1022 Values {"No Change", "Disable", "Enable"} ]
1023 uint16 MotionIndicator);
1024
1025 [Description (
1026 "SetUrgency is a method for defining the desired urgency "
1027 "level for the Alarm. Its input parameter, RequestedUrgency, "
1028 "is specified using the Values list of AlarmDevice's Urgency "
1029 "property. SetUrgency returns 0 if the request is successfully "
1030 karl 1.1 "implemented, 1 if the specified Urgency level is not "
1031 "supported, and some other value if any other error occurred. "
1032 "In a subclass, the set of possible return codes should be "
1033 "specified using a ValueMap qualifier on the method. The "
1034 "strings to which the ValueMap contents are 'translated' "
1035 "should be specified as a Values array qualifier.") ]
1036 uint32 SetUrgency (
1037 [IN,
1038 ValueMap {"1", "3", "4", "5", "6"},
1039 Values {"Other", "Informational", "Non-Critical",
1040 "Critical", "Unrecoverable"} ]
1041 uint16 RequestedUrgency);
1042 };
1043
1044
1045 // ===================================================================
1046 // AssociatedAlarm
1047 // ===================================================================
1048 [Association, Version ("2.6.0"), Description (
1049 "LogicalDevices may have one or more AlarmDevices "
1050 "associated with them, in order to indicate problem situations. "
1051 karl 1.1 "This relationship is indicated by the AssociatedAlarm "
1052 "dependency.") ]
1053 class CIM_AssociatedAlarm : CIM_Dependency {
1054
1055 [Override ("Antecedent"),
1056 Description ("The AlarmDevice.") ]
1057 CIM_AlarmDevice REF Antecedent;
1058
1059 [Override ("Dependent"),
1060 Description ("The LogicalDevice that is alarmed.") ]
1061 CIM_LogicalDevice REF Dependent;
1062 };
1063
1064
1065 // ==================================================================
1066 // PackageAlarm
1067 // ==================================================================
1068 [Association, Version ("2.7.0"), Deprecated {"CIM_PackageDependency"},
1069 Description (
1070 "Often, an AlarmDevice is installed as part of a Package, "
1071 "not to indicate issues with any particular LogicalDevice "
1072 karl 1.1 "or PhysicalComponent, but with the Package's environment "
1073 "in general, its security state or its overall health. "
1074 "The use of this association has been deprecated. Instead, "
1075 "use PackageDependency to describe this relationship.") ]
1076 class CIM_PackageAlarm : CIM_PackageDependency {
1077
1078 [Override ("Antecedent"),
1079 Deprecated {"CIM_PackageDependency.Antecedent"},
1080 Description (
1081 "The AlarmDevice for the Package.") ]
1082 CIM_AlarmDevice REF Antecedent;
1083
1084 [Override ("Dependent"),
1085 Deprecated {"CIM_PackageDependency.Dependent"},
1086 Description (
1087 "The PhysicalPackage whose health, security, environment, "
1088 "etc. is alarmed.") ]
1089 CIM_PhysicalPackage REF Dependent;
1090 };
1091
1092
1093 karl 1.1 // ===================================================================
1094 // end of file
1095 // ===================================================================
|