Files
ReLibreHardwareMonitor/LibreHardwareMonitorLib/Hardware/Controller/MSI/MsiDevice.cs
T
Blacktempel 9af84004a5 Add MSI controller for AIOs. (#2207)
* Add MSI controller for AIOs.
Fan RPM read, thermal sensor & fan control.

* PR comments & rename controller.

* PR review

* PR review

* PR review
2026-02-11 12:39:29 +01:00

81 lines
2.3 KiB
C#

// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
// If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// Copyright (C) Florian K. (Blacktempel)
// All Rights Reserved.
namespace LibreHardwareMonitor.Hardware.Controller.MSI;
public enum MsiDeviceType
{
S280,
S360,
S360MEG,
X360,
X240,
D360,
D240,
}
public class MsiDevice
{
public MsiDevice(MsiDeviceType msiDeviceType, int vendorId, int productId, int productIdController)
{
DeviceType = msiDeviceType;
VendorId = vendorId;
ProductId = productId;
ProductIdController = productIdController;
}
public MsiDeviceType DeviceType { get; }
public int VendorId { get; }
public int ProductId { get; }
public int ProductIdController { get; }
public string Name
{
get
{
switch (DeviceType)
{
case MsiDeviceType.S280:
return "MSI CoreLiquid S280";
case MsiDeviceType.S360:
return "MSI CoreLiquid S360";
case MsiDeviceType.S360MEG:
return "MSI CoreLiquid S360 MEG";
case MsiDeviceType.X360:
return "MSI CoreLiquid X360";
case MsiDeviceType.X240:
return "MSI CoreLiquid X240";
case MsiDeviceType.D360:
return "MSI CoreLiquid D360";
case MsiDeviceType.D240:
return "MSI CoreLiquid D240";
default:
return "Other";
}
}
}
//Relevant for further HWMonitoring later
public bool SupportsHWMonitorIndex13and14(uint firmwareVersion)
{
switch (DeviceType)
{
case MsiDeviceType.S280:
case MsiDeviceType.S360:
return (firmwareVersion & byte.MaxValue) >= 10;
case MsiDeviceType.S360MEG:
return (firmwareVersion & byte.MaxValue) >= 7;
case MsiDeviceType.X360:
case MsiDeviceType.X240:
return (firmwareVersion & byte.MaxValue) >= 3;
case MsiDeviceType.D360:
case MsiDeviceType.D240:
return true;
}
return false;
}
}