1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
//
// Cura_Fan.mof
//
#pragma locale ("en_US")
//#pragma namespace ("root/cimv2")
// ===================================================================
// Cura_Fan
// ===================================================================
[ Provider("cmpi:cmpiCura_FanProvider") ]
class Cura_Fan : CIM_Fan {
[ Key, Override("DeviceID"),
Description("Uniquely identifies fan. It is a composition of
SysPath and Name glued with slash ('/').") ]
string DeviceID;
[ Override("Name"),
Description("Name of fan provided by system.") ]
string Name;
[ Description("Array of fan features, that are exposed through system
interface. In other words: those that are readible/writable."),
ValueMap { "1", "2", "3", "4", "5", "6", "7", "8" },
Values { "MinSpeed", "MaxSpeed", "Divisor", "Pulses", "Beep",
"Alarm", "MinAlarm", "MaxAlarm" }
]
uint16 AccessibleFeatures[];
[ Description("Minimum speed value."),
Write,
Units("Revolutions per Minute") ]
uint64 MinSpeed;
[ Description("Maximum speed value."),
Write,
Units("Revolutions per Minute") ]
uint64 MaxSpeed;
[ Description("Fan divisisor. It affects Minimum and Maximum speed value
and accuracy of readings.
The drivers account for the 'fan divisor' in their calculation
of RPM. So changing the fan divisor will NOT change the
nominal RPM reading, it will only affect the minimum and maximum
readings and the accuracy of the readings.
The actual formula is RPM = (60 * 22500) / (count * divisor)"),
Write ]
uint32 Divisor;
[ Description("Number of tachometer pulses per fan revolution.
Integer value, typically between 1 and 4.
This value is a characteristic of the fan connected to the
device's input, so it has to be set in accordance with the fan
model."),
Write ]
uint32 Pulses;
[ Description("This indicates, whether a PC's speaker should beep
when an alarm occurs."),
Write ]
boolean Beep;
[ Description("ALARM warning indicating, that current speed is out of
range. This information is supplied by fan's chip driver.") ]
boolean Alarm;
[ Description("ALARM warning indicating, that current speed is below
the critical level. This information is supplied by fan's chip driver.")
]
boolean MinAlarm;
[ Description("ALARM warning indicating, that current speed is above
the critical level. This information is supplied by fan's chip driver.")
]
boolean MaxAlarm;
};
// ===================================================================
// Cura_FanSensor
// ===================================================================
[ Provider("cmpi:cmpiCura_FanSensorProvider") ]
class Cura_FanSensor : CIM_NumericSensor {
[ Key, Override("DeviceID"),
Description("Uniquely identifies fan. It is a composition of
SysPath and Name glued with slash ('/').") ]
string DeviceID;
[ Override("Name"),
Description("Name of fan provided by system.") ]
string Name;
};
// ===================================================================
// Associations
// ===================================================================
[ Association,
Provider("cmpi:cmpiCura_FanAssociatedSensorProvider") ]
class Cura_FanAssociatedSensor : CIM_AssociatedSensor {
[ Override("Antecedent") ]
Cura_FanSensor REF Antecedent;
[ Override("Dependent") ]
Cura_Fan REF Dependent;
};
|