WMIProvider/Sensor.cs
author paulwerelds
Sat, 16 Oct 2010 14:15:41 +0000
changeset 224 be9534663a55
parent 223 39f73ac8c2f4
permissions -rw-r--r--
Added license to the WMI stuff and refactored a few things a little.
paulwerelds@224
     1
/*
paulwerelds@224
     2
  
paulwerelds@224
     3
  Version: MPL 1.1/GPL 2.0/LGPL 2.1
paulwerelds@224
     4
paulwerelds@224
     5
  The contents of this file are subject to the Mozilla Public License Version
paulwerelds@224
     6
  1.1 (the "License"); you may not use this file except in compliance with
paulwerelds@224
     7
  the License. You may obtain a copy of the License at
paulwerelds@224
     8
 
paulwerelds@224
     9
  http://www.mozilla.org/MPL/
paulwerelds@224
    10
paulwerelds@224
    11
  Software distributed under the License is distributed on an "AS IS" basis,
paulwerelds@224
    12
  WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
paulwerelds@224
    13
  for the specific language governing rights and limitations under the License.
paulwerelds@224
    14
paulwerelds@224
    15
  The Original Code is the Open Hardware Monitor code.
paulwerelds@224
    16
paulwerelds@224
    17
  The Initial Developer of the Original Code is 
paulwerelds@224
    18
  Paul Werelds <paul@werelds.net>.
paulwerelds@224
    19
  Portions created by the Initial Developer are Copyright (C) 2009-2010
paulwerelds@224
    20
  the Initial Developer. All Rights Reserved.
paulwerelds@224
    21
paulwerelds@224
    22
  Contributor(s):
paulwerelds@224
    23
paulwerelds@224
    24
  Alternatively, the contents of this file may be used under the terms of
paulwerelds@224
    25
  either the GNU General Public License Version 2 or later (the "GPL"), or
paulwerelds@224
    26
  the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
paulwerelds@224
    27
  in which case the provisions of the GPL or the LGPL are applicable instead
paulwerelds@224
    28
  of those above. If you wish to allow use of your version of this file only
paulwerelds@224
    29
  under the terms of either the GPL or the LGPL, and not to allow others to
paulwerelds@224
    30
  use your version of this file under the terms of the MPL, indicate your
paulwerelds@224
    31
  decision by deleting the provisions above and replace them with the notice
paulwerelds@224
    32
  and other provisions required by the GPL or the LGPL. If you do not delete
paulwerelds@224
    33
  the provisions above, a recipient may use your version of this file under
paulwerelds@224
    34
  the terms of any one of the MPL, the GPL or the LGPL.
paulwerelds@224
    35
 
paulwerelds@224
    36
*/
paulwerelds@224
    37
paulwerelds@223
    38
using System.Management.Instrumentation;
paulwerelds@223
    39
using OpenHardwareMonitor.Hardware;
paulwerelds@223
    40
paulwerelds@223
    41
namespace OpenHardwareMonitor.WMIProvider {
paulwerelds@223
    42
  [InstrumentationClass(InstrumentationType.Instance)]
paulwerelds@224
    43
  public class Sensor : IWmiObject {
paulwerelds@224
    44
    private ISensor sensor;
paulwerelds@223
    45
paulwerelds@224
    46
    #region WMI Exposed
paulwerelds@223
    47
paulwerelds@223
    48
    public string SensorType { get; private set; }
paulwerelds@223
    49
    public string Identifier { get; private set; }
paulwerelds@223
    50
    public string Parent { get; private set; }
paulwerelds@223
    51
    public string Name { get; private set; }
paulwerelds@223
    52
    public float Value { get; private set; }
paulwerelds@223
    53
    public float Min { get; private set; }
paulwerelds@223
    54
    public float Max { get; private set; }
paulwerelds@223
    55
    public int Index { get; private set; }
paulwerelds@223
    56
paulwerelds@224
    57
    #endregion
paulwerelds@223
    58
paulwerelds@224
    59
    public Sensor(ISensor data) {
paulwerelds@224
    60
      Name = data.Name;
paulwerelds@224
    61
      Index = data.Index;
paulwerelds@223
    62
paulwerelds@224
    63
      SensorType = data.SensorType.ToString();
paulwerelds@224
    64
      Identifier = data.Identifier.ToString();
paulwerelds@224
    65
      Parent = data.Hardware.Identifier.ToString();
paulwerelds@224
    66
paulwerelds@224
    67
      sensor = data;
paulwerelds@223
    68
    }
paulwerelds@223
    69
    
paulwerelds@223
    70
    public void Update() {
paulwerelds@224
    71
      Value = (sensor.Value != null) ? (float)sensor.Value : 0;
paulwerelds@223
    72
paulwerelds@224
    73
      if (sensor.Min != null)
paulwerelds@224
    74
        Min = (float)sensor.Min;
paulwerelds@223
    75
paulwerelds@224
    76
      if (sensor.Max != null)
paulwerelds@224
    77
        Max = (float)sensor.Max;
paulwerelds@223
    78
    }
paulwerelds@223
    79
  }
paulwerelds@223
    80
}