paulwerelds@224: /* paulwerelds@224: paulwerelds@224: Version: MPL 1.1/GPL 2.0/LGPL 2.1 paulwerelds@224: paulwerelds@224: The contents of this file are subject to the Mozilla Public License Version paulwerelds@224: 1.1 (the "License"); you may not use this file except in compliance with paulwerelds@224: the License. You may obtain a copy of the License at paulwerelds@224: paulwerelds@224: http://www.mozilla.org/MPL/ paulwerelds@224: paulwerelds@224: Software distributed under the License is distributed on an "AS IS" basis, paulwerelds@224: WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License paulwerelds@224: for the specific language governing rights and limitations under the License. paulwerelds@224: paulwerelds@224: The Original Code is the Open Hardware Monitor code. paulwerelds@224: paulwerelds@224: The Initial Developer of the Original Code is paulwerelds@224: Paul Werelds . paulwerelds@224: Portions created by the Initial Developer are Copyright (C) 2009-2010 paulwerelds@224: the Initial Developer. All Rights Reserved. paulwerelds@224: paulwerelds@224: Contributor(s): paulwerelds@224: paulwerelds@224: Alternatively, the contents of this file may be used under the terms of paulwerelds@224: either the GNU General Public License Version 2 or later (the "GPL"), or paulwerelds@224: the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), paulwerelds@224: in which case the provisions of the GPL or the LGPL are applicable instead paulwerelds@224: of those above. If you wish to allow use of your version of this file only paulwerelds@224: under the terms of either the GPL or the LGPL, and not to allow others to paulwerelds@224: use your version of this file under the terms of the MPL, indicate your paulwerelds@224: decision by deleting the provisions above and replace them with the notice paulwerelds@224: and other provisions required by the GPL or the LGPL. If you do not delete paulwerelds@224: the provisions above, a recipient may use your version of this file under paulwerelds@224: the terms of any one of the MPL, the GPL or the LGPL. paulwerelds@224: paulwerelds@224: */ paulwerelds@224: paulwerelds@223: using System.Management.Instrumentation; paulwerelds@223: using OpenHardwareMonitor.Hardware; paulwerelds@223: paulwerelds@227: namespace OpenHardwareMonitor.WMI { paulwerelds@223: [InstrumentationClass(InstrumentationType.Instance)] paulwerelds@224: public class Sensor : IWmiObject { paulwerelds@224: private ISensor sensor; paulwerelds@223: paulwerelds@224: #region WMI Exposed paulwerelds@223: paulwerelds@223: public string SensorType { get; private set; } paulwerelds@223: public string Identifier { get; private set; } paulwerelds@223: public string Parent { get; private set; } paulwerelds@223: public string Name { get; private set; } paulwerelds@223: public float Value { get; private set; } paulwerelds@223: public float Min { get; private set; } paulwerelds@223: public float Max { get; private set; } paulwerelds@223: public int Index { get; private set; } paulwerelds@223: paulwerelds@224: #endregion paulwerelds@223: paulwerelds@225: public Sensor(ISensor sensor) { paulwerelds@225: Name = sensor.Name; paulwerelds@225: Index = sensor.Index; paulwerelds@223: paulwerelds@225: SensorType = sensor.SensorType.ToString(); paulwerelds@225: Identifier = sensor.Identifier.ToString(); paulwerelds@225: Parent = sensor.Hardware.Identifier.ToString(); paulwerelds@224: paulwerelds@225: this.sensor = sensor; paulwerelds@223: } paulwerelds@223: paulwerelds@223: public void Update() { paulwerelds@224: Value = (sensor.Value != null) ? (float)sensor.Value : 0; paulwerelds@223: paulwerelds@224: if (sensor.Min != null) paulwerelds@224: Min = (float)sensor.Min; paulwerelds@223: paulwerelds@224: if (sensor.Max != null) paulwerelds@224: Max = (float)sensor.Max; paulwerelds@223: } paulwerelds@223: } paulwerelds@223: }