From bd3b2647b4c2d747da17124916f9c012fdf3bbef Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Tue, 12 Sep 2023 19:31:51 +0200 Subject: [PATCH] Fixed exception at Fans+Power https://github.com/seerge/g-helper/issues/1303 --- app/AppConfig.cs | 5 +++++ app/AsusACPI.cs | 4 +++- app/Fan/FanSensorControl.cs | 4 ++++ app/Fans.cs | 2 -- app/GHelper.csproj | 2 +- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/AppConfig.cs b/app/AppConfig.cs index 70a7ec02..bbb1687a 100644 --- a/app/AppConfig.cs +++ b/app/AppConfig.cs @@ -356,6 +356,11 @@ public static class AppConfig ContainsModel("FX507Z"); } + public static bool IsFanScale() + { + return ContainsModel("GU604"); + } + public static bool IsFanRequired() { return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R"); diff --git a/app/AsusACPI.cs b/app/AsusACPI.cs index 4f192368..f087c54e 100644 --- a/app/AsusACPI.cs +++ b/app/AsusACPI.cs @@ -400,7 +400,9 @@ public class AsusACPI if (curve.All(singleByte => singleByte == 0)) return -1; int result; - int fanScale = AppConfig.Get("fan_scale", 100); + + int defaultScale = (AppConfig.IsFanScale() && (device == AsusFan.CPU || device == AsusFan.GPU)) ? 130 : 100; + int fanScale = AppConfig.Get("fan_scale", defaultScale); if (fanScale != 100 && device == AsusFan.CPU) Logger.WriteLine("Custom fan scale: " + fanScale); diff --git a/app/Fan/FanSensorControl.cs b/app/Fan/FanSensorControl.cs index 70a2267d..6b9da019 100644 --- a/app/Fan/FanSensorControl.cs +++ b/app/Fan/FanSensorControl.cs @@ -7,6 +7,8 @@ namespace GHelper.Fan public const int DEFAULT_FAN_MIN = 18; public const int DEFAULT_FAN_MAX = 58; + public const int XGM_FAN_MAX = 72; + public const int INADEQUATE_MAX = 90; const int FAN_COUNT = 3; @@ -70,6 +72,8 @@ namespace GHelper.Fan public static int GetFanMax(AsusFan device) { + if (device == AsusFan.XGM) return XGM_FAN_MAX; + if (_fanMax[(int)device] < 0 || _fanMax[(int)device] > INADEQUATE_MAX) SetFanMax(device, DEFAULT_FAN_MAX); diff --git a/app/Fans.cs b/app/Fans.cs index 242df75c..5441c304 100644 --- a/app/Fans.cs +++ b/app/Fans.cs @@ -592,8 +592,6 @@ namespace GHelper int Min = FanSensorControl.DEFAULT_FAN_MIN; int Max = FanSensorControl.GetFanMax(device); - if (device == AsusFan.XGM) Max = 72; - if (fanRpm) return (200 * Math.Round((float)(Min * 100 + (Max - Min) * percentage) / 200)).ToString() + unit; else diff --git a/app/GHelper.csproj b/app/GHelper.csproj index 6699e67f..2536d616 100644 --- a/app/GHelper.csproj +++ b/app/GHelper.csproj @@ -15,7 +15,7 @@ AnyCPU False True - 0.122 + 0.123