summaryrefslogtreecommitdiffstats
path: root/mof/Cura_Fan.mof
blob: 7456b9fbeaf4c95fecd42949e9d00664c62bc974 (plain)
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
113
114
115
116
117
118
119
120
121
122
123
124
125
/*
 * Copyright (C) 2012  Michal Minar <miminar@redhat.com>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
 */

#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;

};