Hardware/HDD/HDD.cs
changeset 231 30f5a06f5d8a
parent 227 97757a798918
child 233 c5139c236200
     1.1 --- a/Hardware/HDD/HDD.cs	Sun Oct 17 16:13:20 2010 +0000
     1.2 +++ b/Hardware/HDD/HDD.cs	Sun Oct 17 17:12:38 2010 +0000
     1.3 @@ -49,36 +49,31 @@
     1.4      private readonly int drive;
     1.5      private int count;
     1.6  
     1.7 -    private readonly SMART.AttributeID temperatureID = 0x00;    
     1.8 -    private readonly SMART.SSDLifeID lifeID = 0x00;
     1.9 +    private readonly SMART.AttributeID temperatureID = SMART.AttributeID.None;
    1.10 +    private readonly SMART.AttributeID lifeID = SMART.AttributeID.None;
    1.11  
    1.12      private readonly Sensor temperatureSensor;
    1.13      private readonly Sensor lifeSensor;
    1.14  
    1.15 -    public HDD(string name, IntPtr handle, int drive,
    1.16 -      SMART.AttributeID temperatureID, ISettings settings)
    1.17 -    {
    1.18 -      this.name = name;
    1.19 -      this.handle = handle;
    1.20 -      this.drive = drive;
    1.21 -      this.count = 0;
    1.22 -      this.temperatureID = temperatureID;
    1.23 -      this.temperatureSensor = new Sensor("HDD", 0, SensorType.Temperature,
    1.24 -        this, settings);
    1.25 -
    1.26 -      Update();
    1.27 -    }
    1.28 -
    1.29 -    public HDD(string name, IntPtr handle, int drive, SMART.SSDLifeID lifeID,
    1.30 +    public HDD(string name, IntPtr handle, int drive, 
    1.31 +      SMART.AttributeID temperatureID, SMART.AttributeID lifeID, 
    1.32        ISettings settings)
    1.33      {
    1.34        this.name = name;
    1.35        this.handle = handle;
    1.36        this.drive = drive;
    1.37        this.count = 0;
    1.38 -      this.lifeID = lifeID;
    1.39 -      this.lifeSensor = new Sensor("Remaining life", 0, SensorType.Level,
    1.40 -        this, settings);
    1.41 +      if (temperatureID != SMART.AttributeID.None) {
    1.42 +        this.temperatureID = temperatureID;
    1.43 +        this.temperatureSensor = new Sensor("HDD", 0, SensorType.Temperature,
    1.44 +          this, settings);
    1.45 +      }
    1.46 +
    1.47 +      if (lifeID != SMART.AttributeID.None) {
    1.48 +        this.lifeID = lifeID;
    1.49 +        this.lifeSensor = new Sensor("Remaining life", 0, SensorType.Level,
    1.50 +          this, settings);
    1.51 +      }
    1.52  
    1.53        Update();
    1.54      }
    1.55 @@ -108,10 +103,10 @@
    1.56  
    1.57      public ISensor[] Sensors {
    1.58        get {
    1.59 -        if (lifeID != SMART.SSDLifeID.None)
    1.60 +        if (lifeID != SMART.AttributeID.None)
    1.61            return new ISensor[] { lifeSensor };
    1.62  
    1.63 -        if (temperatureID != 0x00)
    1.64 +        if (temperatureID != SMART.AttributeID.None)
    1.65            return new ISensor[] { temperatureSensor };
    1.66  
    1.67          return new ISensor[] {};
    1.68 @@ -125,27 +120,27 @@
    1.69      public void Update() {
    1.70        if (count == 0) {
    1.71          List<SMART.DriveAttribute> attributes = SMART.ReadSmart(handle, drive);
    1.72 -        if (temperatureID != 0x00 &&
    1.73 -          attributes.Exists(attr => (int)attr.ID == (int)temperatureID))
    1.74 +        if (temperatureID != SMART.AttributeID.None &&
    1.75 +          attributes.Exists(attr => attr.ID == temperatureID))
    1.76          {
    1.77            temperatureSensor.Value = attributes
    1.78 -            .Find(attr => (int)attr.ID == (int)temperatureID)
    1.79 +            .Find(attr => attr.ID == temperatureID)
    1.80              .RawValue[0];
    1.81          }
    1.82  
    1.83 -        if (lifeID != 0x00 &&
    1.84 -          attributes.Exists(attr => (int)attr.ID == (int)lifeID))
    1.85 +        if (lifeID != SMART.AttributeID.None &&
    1.86 +          attributes.Exists(attr => attr.ID == lifeID))
    1.87          {
    1.88            lifeSensor.Value = attributes
    1.89 -            .Find(attr => (int)attr.ID == (int)lifeID)
    1.90 +            .Find(attr => attr.ID == lifeID)
    1.91              .AttrValue;
    1.92          }
    1.93        } else {
    1.94 -        if (temperatureID != 0x00) {
    1.95 +        if (temperatureID != SMART.AttributeID.None) {
    1.96            temperatureSensor.Value = temperatureSensor.Value;
    1.97          }
    1.98  
    1.99 -        if (lifeID != 0x00) {
   1.100 +        if (lifeID != SMART.AttributeID.None) {
   1.101            lifeSensor.Value = lifeSensor.Value;
   1.102          }
   1.103        }