Merge branch 'master' into pr/21
This commit is contained in:
+22
@@ -310,6 +310,28 @@ namespace OxyPlot
|
||||
this.Subtitle = subtitle;
|
||||
}
|
||||
|
||||
public PlotModel(double dpiXscale, double dpiYscale)
|
||||
: this()
|
||||
{
|
||||
this.PlotMargins = new OxyThickness(this.PlotMargins.Left * dpiXscale,
|
||||
this.PlotMargins.Top * dpiYscale,
|
||||
this.PlotMargins.Right * dpiXscale,
|
||||
this.PlotMargins.Bottom * dpiYscale
|
||||
);
|
||||
this.Padding = new OxyThickness(this.Padding.Left * dpiXscale,
|
||||
this.Padding.Top * dpiYscale,
|
||||
this.Padding.Right * dpiXscale,
|
||||
this.Padding.Bottom * dpiYscale
|
||||
);
|
||||
this.TitlePadding *= dpiXscale;
|
||||
this.LegendSymbolLength *= dpiXscale;
|
||||
this.LegendSymbolMargin *= dpiXscale;
|
||||
this.LegendPadding *= dpiXscale;
|
||||
this.LegendColumnSpacing *= dpiXscale;
|
||||
this.LegendItemSpacing *= dpiXscale;
|
||||
this.LegendMargin *= dpiXscale;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The synchronization root object.
|
||||
/// </summary>
|
||||
|
||||
+30
-1
@@ -35,11 +35,16 @@ namespace OpenHardwareMonitor.GUI {
|
||||
private UserOption stackedAxes;
|
||||
|
||||
private DateTime now;
|
||||
private float dpiX;
|
||||
private float dpiY;
|
||||
private double dpiXscale = 1;
|
||||
private double dpiYscale = 1;
|
||||
|
||||
public PlotPanel(PersistentSettings settings, UnitManager unitManager) {
|
||||
this.settings = settings;
|
||||
this.unitManager = unitManager;
|
||||
|
||||
this.SetDPI();
|
||||
this.model = CreatePlotModel();
|
||||
|
||||
this.plot = new Plot();
|
||||
@@ -168,7 +173,7 @@ namespace OpenHardwareMonitor.GUI {
|
||||
axes.Add(type, axis);
|
||||
}
|
||||
|
||||
var model = new PlotModel();
|
||||
var model = new PlotModel(this.dpiXscale, this.dpiYscale);
|
||||
model.Axes.Add(timeAxis);
|
||||
foreach (var axis in axes.Values)
|
||||
model.Axes.Add(axis);
|
||||
@@ -178,6 +183,30 @@ namespace OpenHardwareMonitor.GUI {
|
||||
return model;
|
||||
}
|
||||
|
||||
private void SetDPI() {
|
||||
// https://msdn.microsoft.com/en-us/library/windows/desktop/dn469266(v=vs.85).aspx
|
||||
const int _default_dpi = 96;
|
||||
Graphics g = this.CreateGraphics();
|
||||
|
||||
try
|
||||
{
|
||||
this.dpiX = g.DpiX;
|
||||
this.dpiY = g.DpiY;
|
||||
}
|
||||
finally
|
||||
{
|
||||
g.Dispose();
|
||||
}
|
||||
if (dpiX > 0)
|
||||
{
|
||||
this.dpiXscale = dpiX / _default_dpi;
|
||||
}
|
||||
if (dpiY > 0)
|
||||
{
|
||||
this.dpiYscale = dpiY / _default_dpi;
|
||||
}
|
||||
}
|
||||
|
||||
public void SetSensors(List<ISensor> sensors,
|
||||
IDictionary<ISensor, Color> colors) {
|
||||
this.model.Series.Clear();
|
||||
|
||||
@@ -12,14 +12,13 @@ using System;
|
||||
using System.Text;
|
||||
|
||||
namespace OpenHardwareMonitor.Hardware.CPU {
|
||||
|
||||
internal enum Vendor {
|
||||
public enum Vendor {
|
||||
Unknown,
|
||||
Intel,
|
||||
AMD,
|
||||
}
|
||||
|
||||
internal class CPUID {
|
||||
public class CPUID {
|
||||
|
||||
private readonly int thread;
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace OpenHardwareMonitor.Hardware.CPU {
|
||||
internal class GenericCPU : Hardware {
|
||||
public class GenericCPU : Hardware {
|
||||
|
||||
protected readonly CPUID[][] cpuid;
|
||||
|
||||
|
||||
@@ -29,7 +29,8 @@ namespace OpenHardwareMonitor.Hardware.CPU {
|
||||
Skylake,
|
||||
Airmont,
|
||||
KabyLake,
|
||||
ApolloLake
|
||||
ApolloLake,
|
||||
CoffeeLake
|
||||
}
|
||||
|
||||
private readonly Sensor[] coreTemperatures;
|
||||
@@ -187,6 +188,10 @@ namespace OpenHardwareMonitor.Hardware.CPU {
|
||||
case 0x5C: // Intel ApolloLake
|
||||
microarchitecture = Microarchitecture.ApolloLake;
|
||||
tjMax = GetTjMaxFromMSR();
|
||||
break;
|
||||
case 0xAE: // Intel Core i5, i7 8xxxx (14nm++)
|
||||
microarchitecture = Microarchitecture.CoffeeLake;
|
||||
tjMax = GetTjMaxFromMSR();
|
||||
break;
|
||||
default:
|
||||
microarchitecture = Microarchitecture.Unknown;
|
||||
@@ -237,7 +242,8 @@ namespace OpenHardwareMonitor.Hardware.CPU {
|
||||
case Microarchitecture.Skylake:
|
||||
case Microarchitecture.Airmont:
|
||||
case Microarchitecture.ApolloLake:
|
||||
case Microarchitecture.KabyLake: {
|
||||
case Microarchitecture.KabyLake:
|
||||
case Microarchitecture.CoffeeLake: {
|
||||
uint eax, edx;
|
||||
if (Ring0.Rdmsr(MSR_PLATFORM_INFO, out eax, out edx)) {
|
||||
timeStampCounterMultiplier = (eax >> 8) & 0xff;
|
||||
@@ -421,7 +427,8 @@ namespace OpenHardwareMonitor.Hardware.CPU {
|
||||
case Microarchitecture.Silvermont:
|
||||
case Microarchitecture.Skylake:
|
||||
case Microarchitecture.ApolloLake:
|
||||
case Microarchitecture.KabyLake: {
|
||||
case Microarchitecture.KabyLake:
|
||||
case Microarchitecture.CoffeeLake: {
|
||||
uint multiplier = (eax >> 8) & 0xff;
|
||||
coreClocks[i].Value = (float)(multiplier * newBusClock);
|
||||
} break;
|
||||
|
||||
@@ -18,7 +18,7 @@ using System.Text;
|
||||
using OpenHardwareMonitor.Collections;
|
||||
|
||||
namespace OpenHardwareMonitor.Hardware.HDD {
|
||||
internal abstract class AbstractHarddrive : Hardware {
|
||||
public abstract class AbstractHarddrive : Hardware {
|
||||
|
||||
private const int UPDATE_DIVIDER = 30; // update only every 30s
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ using System.Runtime.InteropServices;
|
||||
namespace OpenHardwareMonitor.Hardware.HDD {
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
internal struct DriveAttributeValue {
|
||||
public struct DriveAttributeValue {
|
||||
public byte Identifier;
|
||||
public short StatusFlags;
|
||||
public byte AttrValue;
|
||||
|
||||
@@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
|
||||
namespace OpenHardwareMonitor.Hardware.HDD {
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
internal struct DriveThresholdValue {
|
||||
public struct DriveThresholdValue {
|
||||
public byte Identifier;
|
||||
public byte Threshold;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
|
||||
|
||||
@@ -13,8 +13,7 @@ using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace OpenHardwareMonitor.Hardware.HDD {
|
||||
|
||||
internal interface ISmart {
|
||||
public interface ISmart {
|
||||
|
||||
IntPtr OpenDrive(int driveNumber);
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ using System.Collections.Generic;
|
||||
using OpenHardwareMonitor.Collections;
|
||||
|
||||
namespace OpenHardwareMonitor.Hardware.HDD {
|
||||
internal class SmartAttribute {
|
||||
public class SmartAttribute {
|
||||
|
||||
private RawValueConversion rawValueConversion;
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace OpenHardwareMonitor.Hardware.HDD {
|
||||
/// <summary>
|
||||
/// Localization class for SMART attribute names.
|
||||
/// </summary>
|
||||
internal static class SmartNames {
|
||||
public static class SmartNames {
|
||||
|
||||
public static string AirflowTemperature {
|
||||
get { return "Airflow Temperature"; }
|
||||
|
||||
@@ -12,7 +12,7 @@ using System;
|
||||
using OpenHardwareMonitor.Collections;
|
||||
|
||||
namespace OpenHardwareMonitor.Hardware {
|
||||
internal abstract class Hardware : IHardware {
|
||||
public abstract class Hardware : IHardware {
|
||||
|
||||
private readonly Identifier identifier;
|
||||
protected readonly string name;
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
F71862 = 0x0601,
|
||||
F71869 = 0x0814,
|
||||
F71869A = 0x1007,
|
||||
F71878AD = 0x1106,
|
||||
F71882 = 0x0541,
|
||||
F71889AD = 0x1005,
|
||||
F71889ED = 0x0909,
|
||||
@@ -70,6 +71,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
case Chip.F71858: return "Fintek F71858";
|
||||
case Chip.F71862: return "Fintek F71862";
|
||||
case Chip.F71869: return "Fintek F71869";
|
||||
case Chip.F71878AD: return "Fintek F71878AD";
|
||||
case Chip.F71869A: return "Fintek F71869A";
|
||||
case Chip.F71882: return "Fintek F71882";
|
||||
case Chip.F71889AD: return "Fintek F71889AD";
|
||||
|
||||
+18
-3
@@ -26,18 +26,27 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
private const byte ADDRESS_REGISTER_OFFSET = 0x05;
|
||||
private const byte DATA_REGISTER_OFFSET = 0x06;
|
||||
|
||||
private const byte PWM_VALUES_OFFSET = 0x2D;
|
||||
|
||||
// Hardware Monitor Registers
|
||||
private const byte VOLTAGE_BASE_REG = 0x20;
|
||||
private const byte TEMPERATURE_CONFIG_REG = 0x69;
|
||||
private const byte TEMPERATURE_BASE_REG = 0x70;
|
||||
private readonly byte[] FAN_TACHOMETER_REG =
|
||||
new byte[] { 0xA0, 0xB0, 0xC0, 0xD0 };
|
||||
private readonly byte[] FAN_PWM_REG =
|
||||
new byte[] { 0xA3, 0xB3, 0xC3, 0xD3 };
|
||||
|
||||
private byte ReadByte(byte register) {
|
||||
Ring0.WriteIoPort(
|
||||
(ushort)(address + ADDRESS_REGISTER_OFFSET), register);
|
||||
return Ring0.ReadIoPort((ushort)(address + DATA_REGISTER_OFFSET));
|
||||
}
|
||||
private void WriteByte(byte register, byte value) {
|
||||
Ring0.WriteIoPort(
|
||||
(ushort)(address + ADDRESS_REGISTER_OFFSET), register);
|
||||
Ring0.WriteIoPort((ushort)(address + DATA_REGISTER_OFFSET), value);
|
||||
}
|
||||
|
||||
public byte? ReadGPIO(int index) {
|
||||
return null;
|
||||
@@ -45,7 +54,10 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
|
||||
public void WriteGPIO(int index, byte value) { }
|
||||
|
||||
public void SetControl(int index, byte? value) { }
|
||||
public void SetControl(int index, byte? value) {
|
||||
if(index < controls.Length)
|
||||
WriteByte(FAN_PWM_REG[index], value ?? 128);
|
||||
}
|
||||
|
||||
public F718XX(Chip chip, ushort address) {
|
||||
this.address = address;
|
||||
@@ -54,7 +66,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
voltages = new float?[chip == Chip.F71858 ? 3 : 9];
|
||||
temperatures = new float?[chip == Chip.F71808E ? 2 : 3];
|
||||
fans = new float?[chip == Chip.F71882 || chip == Chip.F71858 ? 4 : 3];
|
||||
controls = new float?[0];
|
||||
controls = new float?[chip == Chip.F71878AD ? 3 : 0];
|
||||
}
|
||||
|
||||
public Chip Chip { get { return chip; } }
|
||||
@@ -145,7 +157,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < fans.Length; i++) {
|
||||
int value = ReadByte(FAN_TACHOMETER_REG[i]) << 8;
|
||||
value |= ReadByte((byte)(FAN_TACHOMETER_REG[i] + 1));
|
||||
@@ -155,6 +167,9 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
else
|
||||
fans[i] = null;
|
||||
}
|
||||
for (int i = 0; i < controls.Length; i++) {
|
||||
controls[i] = (100*ReadByte((byte)(PWM_VALUES_OFFSET + i)))/256.0f;
|
||||
}
|
||||
|
||||
Ring0.ReleaseIsaBusMutex();
|
||||
}
|
||||
|
||||
@@ -46,7 +46,9 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
case "f71882fg":
|
||||
lmChips.Add(new LMChip(Chip.F71882, path)); break;
|
||||
case "f71889a":
|
||||
lmChips.Add(new LMChip(Chip.F71889AD, path)); break;
|
||||
lmChips.Add(new LMChip(Chip.F71889AD, path)); break;
|
||||
case "f71878ad":
|
||||
lmChips.Add(new LMChip(Chip.F71878AD, path)); break;
|
||||
case "f71889ed":
|
||||
lmChips.Add(new LMChip(Chip.F71889ED, path)); break;
|
||||
case "f71889fg":
|
||||
|
||||
@@ -115,6 +115,13 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
logicalDeviceNumber = FINTEK_HARDWARE_MONITOR_LDN;
|
||||
break;
|
||||
} break;
|
||||
case 0x11:
|
||||
switch (revision) {
|
||||
case 0x06:
|
||||
chip = Chip.F71878AD;
|
||||
logicalDeviceNumber = FINTEK_HARDWARE_MONITOR_LDN;
|
||||
break;
|
||||
} break;
|
||||
case 0x52:
|
||||
switch (revision) {
|
||||
case 0x17:
|
||||
@@ -306,6 +313,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
case Chip.F71858:
|
||||
case Chip.F71862:
|
||||
case Chip.F71869:
|
||||
case Chip.F71878AD:
|
||||
case Chip.F71869A:
|
||||
case Chip.F71882:
|
||||
case Chip.F71889AD:
|
||||
|
||||
@@ -181,6 +181,8 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
||||
return Model.X38_DS5;
|
||||
case "X58A-UD3R":
|
||||
return Model.X58A_UD3R;
|
||||
case "Z270 PC MATE":
|
||||
return Model.Z270_PC_MATE;
|
||||
case "X79-UD3":
|
||||
return Model.X79_UD3;
|
||||
case "Z68A-D3H-B3":
|
||||
|
||||
@@ -40,6 +40,9 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
||||
// ECS
|
||||
A890GXM_A,
|
||||
|
||||
// MSI
|
||||
Z270_PC_MATE,
|
||||
|
||||
// EVGA
|
||||
X58_SLI_Classified,
|
||||
|
||||
@@ -87,6 +90,6 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
||||
FH67,
|
||||
|
||||
// Unknown
|
||||
Unknown
|
||||
Unknown
|
||||
}
|
||||
}
|
||||
|
||||
@@ -214,7 +214,7 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
||||
case Chip.F71889ED:
|
||||
case Chip.F71889F:
|
||||
case Chip.F71808E:
|
||||
GetFintekConfiguration(superIO, manufacturer, model, v, t, f);
|
||||
GetFintekConfiguration(superIO, manufacturer, model, v, t, f, c);
|
||||
break;
|
||||
|
||||
case Chip.W83627EHF:
|
||||
@@ -969,7 +969,7 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
||||
|
||||
private static void GetFintekConfiguration(ISuperIO superIO,
|
||||
Manufacturer manufacturer, Model model,
|
||||
IList<Voltage> v, IList<Temperature> t, IList<Fan> f)
|
||||
IList<Voltage> v, IList<Temperature> t, IList<Fan> f, IList<Ctrl> c)
|
||||
{
|
||||
switch (manufacturer) {
|
||||
case Manufacturer.EVGA:
|
||||
@@ -1023,6 +1023,9 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
||||
t.Add(new Temperature("Temperature #" + (i + 1), i));
|
||||
for (int i = 0; i < superIO.Fans.Length; i++)
|
||||
f.Add(new Fan("Fan #" + (i + 1), i));
|
||||
for (int i = 0; i < superIO.Controls.Length; i++)
|
||||
c.Add(new Ctrl("Fan Control #" + (i + 1), i));
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1182,6 +1185,99 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
||||
c.Add(new Ctrl("Chassis Fan #2", 2));
|
||||
c.Add(new Ctrl("Chassis Fan #3", 3));
|
||||
break;
|
||||
default:
|
||||
v.Add(new Voltage("CPU VCore", 0));
|
||||
v.Add(new Voltage("Voltage #2", 1, true));
|
||||
v.Add(new Voltage("AVCC", 2, 34, 34));
|
||||
v.Add(new Voltage("3VCC", 3, 34, 34));
|
||||
v.Add(new Voltage("Voltage #5", 4, true));
|
||||
v.Add(new Voltage("Voltage #6", 5, true));
|
||||
v.Add(new Voltage("Voltage #7", 6, true));
|
||||
v.Add(new Voltage("3VSB", 7, 34, 34));
|
||||
v.Add(new Voltage("VBAT", 8, 34, 34));
|
||||
v.Add(new Voltage("VTT", 9));
|
||||
v.Add(new Voltage("Voltage #11", 10, true));
|
||||
v.Add(new Voltage("Voltage #12", 11, true));
|
||||
v.Add(new Voltage("Voltage #13", 12, true));
|
||||
v.Add(new Voltage("Voltage #14", 13, true));
|
||||
v.Add(new Voltage("Voltage #15", 14, true));
|
||||
t.Add(new Temperature("CPU Core", 0));
|
||||
t.Add(new Temperature("Temperature #1", 1));
|
||||
t.Add(new Temperature("Temperature #2", 2));
|
||||
t.Add(new Temperature("Temperature #3", 3));
|
||||
t.Add(new Temperature("Temperature #4", 4));
|
||||
t.Add(new Temperature("Temperature #5", 5));
|
||||
t.Add(new Temperature("Temperature #6", 6));
|
||||
for (int i = 0; i < superIO.Fans.Length; i++)
|
||||
f.Add(new Fan("Fan #" + (i + 1), i));
|
||||
for (int i = 0; i < superIO.Controls.Length; i++)
|
||||
c.Add(new Ctrl("Fan Control #" + (i + 1), i));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case Manufacturer.MSI:
|
||||
switch (model) {
|
||||
case Model.Z270_PC_MATE: // NCT6795D
|
||||
v.Add(new Voltage("CPU VCore", 0));
|
||||
v.Add(new Voltage("+5V", 1, 4, 1));
|
||||
v.Add(new Voltage("AVCC", 2, 34, 34));
|
||||
v.Add(new Voltage("3VCC", 3, 34, 34));
|
||||
v.Add(new Voltage("+12V", 4, 11, 1));
|
||||
v.Add(new Voltage("Voltage #6", 5, true));
|
||||
v.Add(new Voltage("CPU I/O", 6));
|
||||
v.Add(new Voltage("3VSB", 7, 34, 34));
|
||||
v.Add(new Voltage("VTT", 9));
|
||||
v.Add(new Voltage("CPU SA", 10));
|
||||
v.Add(new Voltage("Voltage #12", 11, true));
|
||||
v.Add(new Voltage("PCH", 12));
|
||||
v.Add(new Voltage("DRAM", 13, 1, 1));
|
||||
v.Add(new Voltage("Voltage #15", 14, true));
|
||||
t.Add(new Temperature("CPU", 0));
|
||||
t.Add(new Temperature("Auxiliary", 1));
|
||||
t.Add(new Temperature("Motherboard", 2));
|
||||
f.Add(new Fan("Pump Fan", 0));
|
||||
f.Add(new Fan("CPU Fan", 1));
|
||||
f.Add(new Fan("System Fan #1", 2));
|
||||
f.Add(new Fan("System Fan #2", 3));
|
||||
f.Add(new Fan("System Fan #3", 4));
|
||||
f.Add(new Fan("System Fan #4", 5));
|
||||
c.Add(new Ctrl("Pump Fan", 0));
|
||||
c.Add(new Ctrl("CPU Fan", 1));
|
||||
c.Add(new Ctrl("System Fan #1", 2));
|
||||
c.Add(new Ctrl("System Fan #2", 3));
|
||||
c.Add(new Ctrl("System Fan #3", 4));
|
||||
c.Add(new Ctrl("System Fan #4", 5));
|
||||
break;
|
||||
default:
|
||||
v.Add(new Voltage("CPU VCore", 0));
|
||||
v.Add(new Voltage("Voltage #2", 1, true));
|
||||
v.Add(new Voltage("AVCC", 2, 34, 34));
|
||||
v.Add(new Voltage("3VCC", 3, 34, 34));
|
||||
v.Add(new Voltage("Voltage #5", 4, true));
|
||||
v.Add(new Voltage("Voltage #6", 5, true));
|
||||
v.Add(new Voltage("Voltage #7", 6, true));
|
||||
v.Add(new Voltage("3VSB", 7, 34, 34));
|
||||
v.Add(new Voltage("VBAT", 8, 34, 34));
|
||||
v.Add(new Voltage("VTT", 9));
|
||||
v.Add(new Voltage("Voltage #11", 10, true));
|
||||
v.Add(new Voltage("Voltage #12", 11, true));
|
||||
v.Add(new Voltage("Voltage #13", 12, true));
|
||||
v.Add(new Voltage("Voltage #14", 13, true));
|
||||
v.Add(new Voltage("Voltage #15", 14, true));
|
||||
t.Add(new Temperature("CPU Core", 0));
|
||||
t.Add(new Temperature("Temperature #1", 1));
|
||||
t.Add(new Temperature("Temperature #2", 2));
|
||||
t.Add(new Temperature("Temperature #3", 3));
|
||||
t.Add(new Temperature("Temperature #4", 4));
|
||||
t.Add(new Temperature("Temperature #5", 5));
|
||||
t.Add(new Temperature("Temperature #6", 6));
|
||||
for (int i = 0; i < superIO.Fans.Length; i++)
|
||||
f.Add(new Fan("Fan #" + (i + 1), i));
|
||||
for (int i = 0; i < superIO.Controls.Length; i++)
|
||||
c.Add(new Ctrl("Fan Control #" + (i + 1), i));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
v.Add(new Voltage("CPU VCore", 0));
|
||||
v.Add(new Voltage("Voltage #2", 1, true));
|
||||
@@ -1210,36 +1306,6 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
||||
for (int i = 0; i < superIO.Controls.Length; i++)
|
||||
c.Add(new Ctrl("Fan Control #" + (i + 1), i));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
v.Add(new Voltage("CPU VCore", 0));
|
||||
v.Add(new Voltage("Voltage #2", 1, true));
|
||||
v.Add(new Voltage("AVCC", 2, 34, 34));
|
||||
v.Add(new Voltage("3VCC", 3, 34, 34));
|
||||
v.Add(new Voltage("Voltage #5", 4, true));
|
||||
v.Add(new Voltage("Voltage #6", 5, true));
|
||||
v.Add(new Voltage("Voltage #7", 6, true));
|
||||
v.Add(new Voltage("3VSB", 7, 34, 34));
|
||||
v.Add(new Voltage("VBAT", 8, 34, 34));
|
||||
v.Add(new Voltage("VTT", 9));
|
||||
v.Add(new Voltage("Voltage #11", 10, true));
|
||||
v.Add(new Voltage("Voltage #12", 11, true));
|
||||
v.Add(new Voltage("Voltage #13", 12, true));
|
||||
v.Add(new Voltage("Voltage #14", 13, true));
|
||||
v.Add(new Voltage("Voltage #15", 14, true));
|
||||
t.Add(new Temperature("CPU Core", 0));
|
||||
t.Add(new Temperature("Temperature #1", 1));
|
||||
t.Add(new Temperature("Temperature #2", 2));
|
||||
t.Add(new Temperature("Temperature #3", 3));
|
||||
t.Add(new Temperature("Temperature #4", 4));
|
||||
t.Add(new Temperature("Temperature #5", 5));
|
||||
t.Add(new Temperature("Temperature #6", 6));
|
||||
for (int i = 0; i < superIO.Fans.Length; i++)
|
||||
f.Add(new Fan("Fan #" + (i + 1), i));
|
||||
for (int i = 0; i < superIO.Controls.Length; i++)
|
||||
c.Add(new Ctrl("Fan Control #" + (i + 1), i));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -12,8 +12,7 @@ using System;
|
||||
using System.Globalization;
|
||||
|
||||
namespace OpenHardwareMonitor.Hardware {
|
||||
|
||||
internal struct ParameterDescription {
|
||||
public struct ParameterDescription {
|
||||
private readonly string name;
|
||||
private readonly string description;
|
||||
private readonly float defaultValue;
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ using System.Text;
|
||||
|
||||
namespace OpenHardwareMonitor.Hardware {
|
||||
|
||||
internal class SMBIOS {
|
||||
public class SMBIOS {
|
||||
|
||||
private readonly byte[] raw;
|
||||
private readonly Structure[] table;
|
||||
|
||||
Reference in New Issue
Block a user