Hardware/HDD/SSDIndilinx.cs
author sl
Sun, 03 Feb 2013 18:01:50 +0100
changeset 391 ca4c0e7ae75d
parent 330 b2c6d350396d
permissions -rw-r--r--
Converted project to VisualStudio 2012.
Adding SoundGraphDisplay and SensorFrontView classes.
They were respectively based on SystemTray and SensorNotifyIcon.
SoundGraphDisplay is now able to load iMONDisplay.dll providing it lives on your PATH.
Adding option to sensor context menu for adding it into FrontView.
moel@324
     1
/*
moel@324
     2
 
moel@344
     3
  This Source Code Form is subject to the terms of the Mozilla Public
moel@344
     4
  License, v. 2.0. If a copy of the MPL was not distributed with this
moel@344
     5
  file, You can obtain one at http://mozilla.org/MPL/2.0/.
moel@324
     6
 
moel@344
     7
  Copyright (C) 2009-2012 Michael Möller <mmoeller@openhardwaremonitor.org>
moel@344
     8
	Copyright (C) 2010 Paul Werelds
moel@344
     9
  Copyright (C) 2011 Roland Reinl <roland-reinl@gmx.de>
moel@344
    10
	
moel@324
    11
*/
moel@324
    12
moel@324
    13
namespace OpenHardwareMonitor.Hardware.HDD {
moel@324
    14
  using System.Collections.Generic;
moel@324
    15
moel@330
    16
  [NamePrefix(""), RequireSmart(0x01), RequireSmart(0x09), RequireSmart(0x0C), 
moel@330
    17
    RequireSmart(0xD1), RequireSmart(0xCE), RequireSmart(0xCF)]
moel@324
    18
  internal class SSDIndilinx : AbstractHarddrive {
moel@324
    19
moel@324
    20
    private static readonly IEnumerable<SmartAttribute> smartAttributes =
moel@324
    21
      new List<SmartAttribute> {
moel@330
    22
        new SmartAttribute(0x01, SmartNames.ReadErrorRate),
moel@330
    23
        new SmartAttribute(0x09, SmartNames.PowerOnHours),
moel@330
    24
        new SmartAttribute(0x0C, SmartNames.PowerCycleCount),
moel@330
    25
        new SmartAttribute(0xB8, SmartNames.InitialBadBlockCount),
moel@330
    26
        new SmartAttribute(0xC3, SmartNames.ProgramFailure),
moel@330
    27
        new SmartAttribute(0xC4, SmartNames.EraseFailure),
moel@330
    28
        new SmartAttribute(0xC5, SmartNames.ReadFailure),
moel@330
    29
        new SmartAttribute(0xC6, SmartNames.SectorsRead),
moel@330
    30
        new SmartAttribute(0xC7, SmartNames.SectorsWritten),
moel@330
    31
        new SmartAttribute(0xC8, SmartNames.ReadCommands),
moel@330
    32
        new SmartAttribute(0xC9, SmartNames.WriteCommands),
moel@330
    33
        new SmartAttribute(0xCA, SmartNames.BitErrors),
moel@330
    34
        new SmartAttribute(0xCB, SmartNames.CorrectedErrors),
moel@330
    35
        new SmartAttribute(0xCC, SmartNames.BadBlockFullFlag),
moel@330
    36
        new SmartAttribute(0xCD, SmartNames.MaxCellCycles),
moel@330
    37
        new SmartAttribute(0xCE, SmartNames.MinErase),
moel@330
    38
        new SmartAttribute(0xCF, SmartNames.MaxErase),
moel@330
    39
        new SmartAttribute(0xD0, SmartNames.AverageEraseCount),
moel@330
    40
        new SmartAttribute(0xD1, SmartNames.RemainingLife,
moel@330
    41
          null, SensorType.Level, 0),
moel@330
    42
        new SmartAttribute(0xD2, SmartNames.UnknownUnique),
moel@330
    43
        new SmartAttribute(0xD3, SmartNames.SataErrorCountCrc),
moel@330
    44
        new SmartAttribute(0xD4, SmartNames.SataErrorCountHandshake)
moel@330
    45
      };
moel@324
    46
moel@325
    47
    public SSDIndilinx(ISmart smart, string name, string firmwareRevision, 
moel@325
    48
      int index, ISettings settings)
moel@325
    49
      : base(smart, name, firmwareRevision, index, smartAttributes, settings) {}
moel@324
    50
  }
moel@324
    51
}
moel@324
    52
moel@324
    53
moel@324
    54