mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Merge branch 'seerge:main' into german-translation
This commit is contained in:
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@@ -20,9 +20,9 @@ jobs:
|
|||||||
- name: Publish
|
- name: Publish
|
||||||
run: |
|
run: |
|
||||||
dotnet publish app/GHelper.sln --configuration Release --runtime win-x64 -p:PublishSingleFile=true --no-self-contained
|
dotnet publish app/GHelper.sln --configuration Release --runtime win-x64 -p:PublishSingleFile=true --no-self-contained
|
||||||
powershell Compress-Archive app/bin/x64/Release/net7.0-windows8.0/win-x64/publish/GHelper.exe GHelper.zip
|
powershell Compress-Archive app/bin/x64/Release/net7.0-windows8.0/win-x64/publish/* GHelper.zip
|
||||||
- name: Upload
|
- name: Upload
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ github.token }}
|
GH_TOKEN: ${{ github.token }}
|
||||||
run: |
|
run: |
|
||||||
gh release upload ${{ github.ref_name }} app/bin/x64/Release/net7.0-windows8.0/win-x64/publish/GHelper.exe GHelper.zip
|
gh release upload ${{ github.ref_name }} GHelper.zip
|
||||||
|
|||||||
@@ -106,8 +106,7 @@ public class AsusACPI
|
|||||||
public const int GPUModeStandard = 1;
|
public const int GPUModeStandard = 1;
|
||||||
public const int GPUModeUltimate = 2;
|
public const int GPUModeUltimate = 2;
|
||||||
|
|
||||||
|
public static int MaxTotal => AppConfig.ContainsModel("G513QY") ? 250 : 150;
|
||||||
public const int MaxTotal = 150;
|
|
||||||
public const int MinTotal = 5;
|
public const int MinTotal = 5;
|
||||||
public const int DefaultTotal = 125;
|
public const int DefaultTotal = 125;
|
||||||
|
|
||||||
|
|||||||
@@ -179,13 +179,11 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static IEnumerable<HidDevice> GetHidDevices(int[] deviceIds, int minInput = 18, int minFeatures = 1)
|
private static IEnumerable<HidDevice> GetHidDevices(int[] deviceIds, int minFeatures = 1)
|
||||||
{
|
{
|
||||||
HidDevice[] HidDeviceList = HidDevices.Enumerate(ASUS_ID, deviceIds).ToArray();
|
HidDevice[] HidDeviceList = HidDevices.Enumerate(ASUS_ID, deviceIds).ToArray();
|
||||||
foreach (HidDevice device in HidDeviceList)
|
foreach (HidDevice device in HidDeviceList)
|
||||||
if (device.IsConnected
|
if (device.IsConnected && device.Capabilities.FeatureReportByteLength >= minFeatures)
|
||||||
&& device.Capabilities.FeatureReportByteLength >= minFeatures
|
|
||||||
&& device.Capabilities.InputReportByteLength >= minInput)
|
|
||||||
yield return device;
|
yield return device;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -235,7 +233,7 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
var devices = GetHidDevices(deviceIds, 0);
|
var devices = GetHidDevices(deviceIds);
|
||||||
foreach (HidDevice device in devices)
|
foreach (HidDevice device in devices)
|
||||||
{
|
{
|
||||||
device.OpenDevice();
|
device.OpenDevice();
|
||||||
@@ -263,7 +261,7 @@ namespace GHelper
|
|||||||
byte[] msg = { AURA_HID_ID, 0xba, 0xc5, 0xc4, (byte)brightness };
|
byte[] msg = { AURA_HID_ID, 0xba, 0xc5, 0xc4, (byte)brightness };
|
||||||
byte[] msgBackup = { INPUT_HID_ID, 0xba, 0xc5, 0xc4, (byte)brightness };
|
byte[] msgBackup = { INPUT_HID_ID, 0xba, 0xc5, 0xc4, (byte)brightness };
|
||||||
|
|
||||||
var devices = GetHidDevices(deviceIds, 0);
|
var devices = GetHidDevices(deviceIds);
|
||||||
foreach (HidDevice device in devices)
|
foreach (HidDevice device in devices)
|
||||||
{
|
{
|
||||||
device.OpenDevice();
|
device.OpenDevice();
|
||||||
@@ -289,7 +287,7 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
byte[] msgBackup = { INPUT_HID_ID, 0xba, 0xc5, 0xc4, (byte)brightness };
|
byte[] msgBackup = { INPUT_HID_ID, 0xba, 0xc5, 0xc4, (byte)brightness };
|
||||||
|
|
||||||
var devicesBackup = GetHidDevices(deviceIds, 0);
|
var devicesBackup = GetHidDevices(deviceIds);
|
||||||
foreach (HidDevice device in devicesBackup)
|
foreach (HidDevice device in devicesBackup)
|
||||||
{
|
{
|
||||||
device.OpenDevice();
|
device.OpenDevice();
|
||||||
@@ -312,13 +310,15 @@ namespace GHelper
|
|||||||
|
|
||||||
|
|
||||||
var devices = GetHidDevices(deviceIds);
|
var devices = GetHidDevices(deviceIds);
|
||||||
//Logger.WriteLine("USB-KB = " + BitConverter.ToString(msg));
|
|
||||||
|
|
||||||
foreach (HidDevice device in devices)
|
foreach (HidDevice device in devices)
|
||||||
{
|
{
|
||||||
device.OpenDevice();
|
device.OpenDevice();
|
||||||
device.WriteFeatureData(msg);
|
if (device.ReadFeatureData(out byte[] data, AURA_HID_ID))
|
||||||
Logger.WriteLine("USB-KB " + device.Attributes.ProductHexId + ":" + BitConverter.ToString(msg));
|
{
|
||||||
|
device.WriteFeatureData(msg);
|
||||||
|
Logger.WriteLine("USB-KB " + device.Attributes.ProductHexId + ":" + BitConverter.ToString(msg));
|
||||||
|
}
|
||||||
device.CloseDevice();
|
device.CloseDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -351,23 +351,19 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
byte[] msg = AuraMessage(Mode, Color1, Color2, _speed);
|
byte[] msg = AuraMessage(Mode, Color1, Color2, _speed);
|
||||||
|
|
||||||
var devices = GetHidDevices(deviceIds);
|
var devices = GetHidDevices(deviceIds);
|
||||||
|
|
||||||
if (devices.Count() == 0)
|
|
||||||
{
|
|
||||||
Logger.WriteLine("USB-KB : not found");
|
|
||||||
devices = GetHidDevices(deviceIds, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (HidDevice device in devices)
|
foreach (HidDevice device in devices)
|
||||||
{
|
{
|
||||||
device.OpenDevice();
|
device.OpenDevice();
|
||||||
device.WriteFeatureData(msg);
|
if (device.ReadFeatureData(out byte[] data, AURA_HID_ID))
|
||||||
device.WriteFeatureData(MESSAGE_SET);
|
{
|
||||||
device.WriteFeatureData(MESSAGE_APPLY);
|
device.WriteFeatureData(msg);
|
||||||
|
//device.WriteFeatureData(MESSAGE_SET);
|
||||||
|
device.WriteFeatureData(MESSAGE_APPLY);
|
||||||
|
Logger.WriteLine("USB-KB " + device.Capabilities.FeatureReportByteLength + "|" + device.Capabilities.InputReportByteLength + device.Description + device.DevicePath + ":" + BitConverter.ToString(msg));
|
||||||
|
}
|
||||||
device.CloseDevice();
|
device.CloseDevice();
|
||||||
Logger.WriteLine("USB-KB " + device.Capabilities.FeatureReportByteLength + "|" + device.Capabilities.InputReportByteLength + device.Description + device.DevicePath + ":" + BitConverter.ToString(msg));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (AppConfig.ContainsModel("TUF"))
|
if (AppConfig.ContainsModel("TUF"))
|
||||||
@@ -385,7 +381,7 @@ namespace GHelper
|
|||||||
var payload = new byte[300];
|
var payload = new byte[300];
|
||||||
Array.Copy(msg, payload, msg.Length);
|
Array.Copy(msg, payload, msg.Length);
|
||||||
|
|
||||||
foreach (HidDevice device in GetHidDevices(new int[] { 0x1970 }, 0, 300))
|
foreach (HidDevice device in GetHidDevices(new int[] { 0x1970 }, 300))
|
||||||
{
|
{
|
||||||
device.OpenDevice();
|
device.OpenDevice();
|
||||||
Logger.WriteLine("XGM " + device.Attributes.ProductHexId + "|" + device.Capabilities.FeatureReportByteLength + ":" + BitConverter.ToString(msg));
|
Logger.WriteLine("XGM " + device.Attributes.ProductHexId + "|" + device.Capabilities.FeatureReportByteLength + ":" + BitConverter.ToString(msg));
|
||||||
|
|||||||
12
app/Fans.cs
12
app/Fans.cs
@@ -133,14 +133,14 @@ namespace GHelper
|
|||||||
labelFansResult.Visible = false;
|
labelFansResult.Visible = false;
|
||||||
|
|
||||||
|
|
||||||
trackUV.Minimum = -30;
|
trackUV.Minimum = Undervolter.MinCPUUV;
|
||||||
trackUV.Maximum = 0;
|
trackUV.Maximum = Undervolter.MaxCPUUV;
|
||||||
|
|
||||||
trackUViGPU.Minimum = -20;
|
trackUViGPU.Minimum = Undervolter.MinIGPUUV;
|
||||||
trackUViGPU.Maximum = 0;
|
trackUViGPU.Maximum = Undervolter.MaxIGPUUV;
|
||||||
|
|
||||||
trackTemp.Minimum = 75;
|
trackTemp.Minimum = Undervolter.MinTemp;
|
||||||
trackTemp.Maximum = 97;
|
trackTemp.Maximum = Undervolter.MaxTemp;
|
||||||
|
|
||||||
|
|
||||||
FillModes();
|
FillModes();
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.88</AssemblyVersion>
|
<AssemblyVersion>0.89</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ namespace GHelper.Gpu;
|
|||||||
public class NvidiaGpuControl : IGpuControl
|
public class NvidiaGpuControl : IGpuControl
|
||||||
{
|
{
|
||||||
|
|
||||||
public const int MaxCoreOffset = 250;
|
public static int MaxCoreOffset => AppConfig.Get("max_gpu_core", 250);
|
||||||
public const int MaxMemoryOffset = 250;
|
public static int MaxMemoryOffset => AppConfig.Get("max_gpu_memory", 250);
|
||||||
|
|
||||||
public const int MinCoreOffset = -250;
|
public const int MinCoreOffset = -250;
|
||||||
public const int MinMemoryOffset = -250;
|
public const int MinMemoryOffset = -250;
|
||||||
@@ -79,6 +79,12 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
core = states.Clocks[PerformanceStateId.P0_3DPerformance][0].FrequencyDeltaInkHz.DeltaValue / 1000;
|
core = states.Clocks[PerformanceStateId.P0_3DPerformance][0].FrequencyDeltaInkHz.DeltaValue / 1000;
|
||||||
memory = states.Clocks[PerformanceStateId.P0_3DPerformance][1].FrequencyDeltaInkHz.DeltaValue / 1000;
|
memory = states.Clocks[PerformanceStateId.P0_3DPerformance][1].FrequencyDeltaInkHz.DeltaValue / 1000;
|
||||||
Logger.WriteLine($"GET GPU CLOCKS: {core}, {memory}");
|
Logger.WriteLine($"GET GPU CLOCKS: {core}, {memory}");
|
||||||
|
|
||||||
|
foreach (var delta in states.Voltages[PerformanceStateId.P0_3DPerformance])
|
||||||
|
{
|
||||||
|
Logger.WriteLine("GPU VOLT:" + delta.IsEditable + " - " + delta.ValueDeltaInMicroVolt.DeltaValue);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -117,7 +123,7 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int SetClocks(int core, int memory)
|
public int SetClocks(int core, int memory, int voltage = 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (core < MinCoreOffset || core > MaxCoreOffset) return 0;
|
if (core < MinCoreOffset || core > MaxCoreOffset) return 0;
|
||||||
@@ -127,9 +133,10 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
|
|
||||||
var coreClock = new PerformanceStates20ClockEntryV1(PublicClockDomain.Graphics, new PerformanceStates20ParameterDelta(core * 1000));
|
var coreClock = new PerformanceStates20ClockEntryV1(PublicClockDomain.Graphics, new PerformanceStates20ParameterDelta(core * 1000));
|
||||||
var memoryClock = new PerformanceStates20ClockEntryV1(PublicClockDomain.Memory, new PerformanceStates20ParameterDelta(memory * 1000));
|
var memoryClock = new PerformanceStates20ClockEntryV1(PublicClockDomain.Memory, new PerformanceStates20ParameterDelta(memory * 1000));
|
||||||
|
var voltageEntry = new PerformanceStates20BaseVoltageEntryV1(PerformanceVoltageDomain.Core, new PerformanceStates20ParameterDelta(voltage));
|
||||||
|
|
||||||
PerformanceStates20ClockEntryV1[] clocks = { coreClock, memoryClock };
|
PerformanceStates20ClockEntryV1[] clocks = { coreClock, memoryClock };
|
||||||
PerformanceStates20BaseVoltageEntryV1[] voltages = { };
|
PerformanceStates20BaseVoltageEntryV1[] voltages = { };
|
||||||
|
|
||||||
PerformanceState20[] performanceStates = { new PerformanceState20(PerformanceStateId.P0_3DPerformance, clocks, voltages) };
|
PerformanceState20[] performanceStates = { new PerformanceState20(PerformanceStateId.P0_3DPerformance, clocks, voltages) };
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,16 @@ namespace Ryzen
|
|||||||
{
|
{
|
||||||
internal class Undervolter
|
internal class Undervolter
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public const int MinCPUUV = -30;
|
||||||
|
public const int MaxCPUUV = 0;
|
||||||
|
|
||||||
|
public const int MinIGPUUV = -20;
|
||||||
|
public const int MaxIGPUUV = 0;
|
||||||
|
|
||||||
|
public const int MinTemp = 75;
|
||||||
|
public const int MaxTemp = 98;
|
||||||
|
|
||||||
public static string[] FAM = { "RAVEN", "PICASSO", "DALI", "RENOIR/LUCIENNE", "MATISSE", "VANGOGH", "VERMEER", "CEZANNE/BARCELO", "REMBRANDT", "PHOENIX", "RAPHAEL/DRAGON RANGE" };
|
public static string[] FAM = { "RAVEN", "PICASSO", "DALI", "RENOIR/LUCIENNE", "MATISSE", "VANGOGH", "VERMEER", "CEZANNE/BARCELO", "REMBRANDT", "PHOENIX", "RAPHAEL/DRAGON RANGE" };
|
||||||
public static int FAMID { get; protected set; }
|
public static int FAMID { get; protected set; }
|
||||||
|
|
||||||
|
|||||||
@@ -1156,17 +1156,17 @@ namespace GHelper
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (cpuUV >= -40 && cpuUV <= 0)
|
if (cpuUV >= Undervolter.MinCPUUV && cpuUV <= Undervolter.MaxCPUUV)
|
||||||
{
|
{
|
||||||
SendCommand.set_coall(cpuUV);
|
SendCommand.set_coall(cpuUV);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (igpuUV >= -40 && igpuUV <= 0)
|
if (igpuUV >= Undervolter.MinIGPUUV && igpuUV <= Undervolter.MaxIGPUUV)
|
||||||
{
|
{
|
||||||
SendCommand.set_cogfx(igpuUV);
|
SendCommand.set_cogfx(igpuUV);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cpuTemp >= 70 && cpuTemp <= 97)
|
if (cpuTemp >= Undervolter.MinTemp && cpuTemp <= Undervolter.MaxTemp)
|
||||||
{
|
{
|
||||||
SendCommand.set_tctl_temp((uint)cpuTemp);
|
SendCommand.set_tctl_temp((uint)cpuTemp);
|
||||||
SendCommand.set_apu_skin_temp_limit((uint)cpuTemp);
|
SendCommand.set_apu_skin_temp_limit((uint)cpuTemp);
|
||||||
|
|||||||
Reference in New Issue
Block a user