mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Battery health is now a tooltip similarly to the other tooltips. Is only refreshed once every 15 Minutes at most, and only if the user hovers over the battery panel.
This commit is contained in:
@@ -13,7 +13,7 @@ public static class HardwareControl
|
|||||||
|
|
||||||
public static float? cpuTemp = -1;
|
public static float? cpuTemp = -1;
|
||||||
public static decimal? batteryRate = 0;
|
public static decimal? batteryRate = 0;
|
||||||
public static decimal batteryWear = -1;
|
public static decimal batteryHealth = -1;
|
||||||
public static decimal? designCapacity;
|
public static decimal? designCapacity;
|
||||||
public static decimal? fullCapacity;
|
public static decimal? fullCapacity;
|
||||||
public static int? gpuTemp = null;
|
public static int? gpuTemp = null;
|
||||||
@@ -145,8 +145,13 @@ public static class HardwareControl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void RefreshBatteryHealth()
|
||||||
|
{
|
||||||
|
batteryHealth = GetBatteryHealth() * 100;
|
||||||
|
}
|
||||||
|
|
||||||
public static decimal GetBatteryWear()
|
|
||||||
|
public static decimal GetBatteryHealth()
|
||||||
{
|
{
|
||||||
if (designCapacity is null)
|
if (designCapacity is null)
|
||||||
{
|
{
|
||||||
@@ -159,10 +164,10 @@ public static class HardwareControl
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
decimal batteryHealth = (decimal)fullCapacity / (decimal)designCapacity;
|
decimal health = (decimal)fullCapacity / (decimal)designCapacity;
|
||||||
Logger.WriteLine("Design Capacity: " + designCapacity + "mWh, Full Charge Capacity: " + fullCapacity + "mWh, Health: " + batteryHealth + "%");
|
Logger.WriteLine("Design Capacity: " + designCapacity + "mWh, Full Charge Capacity: " + fullCapacity + "mWh, Health: " + health + "%");
|
||||||
|
|
||||||
return batteryHealth;
|
return health;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ReadSensors()
|
public static void ReadSensors()
|
||||||
@@ -204,7 +209,6 @@ public static class HardwareControl
|
|||||||
gpuTemp = Program.acpi.DeviceGet(AsusACPI.Temp_GPU);
|
gpuTemp = Program.acpi.DeviceGet(AsusACPI.Temp_GPU);
|
||||||
|
|
||||||
batteryRate = GetBatteryRate() / 1000;
|
batteryRate = GetBatteryRate() / 1000;
|
||||||
batteryWear = GetBatteryWear() * 100;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsUsedGPU(int threshold = 10)
|
public static bool IsUsedGPU(int threshold = 10)
|
||||||
|
|||||||
29
app/Settings.Designer.cs
generated
29
app/Settings.Designer.cs
generated
@@ -157,7 +157,7 @@ namespace GHelper
|
|||||||
tableLayoutMatrix.Controls.Add(buttonMatrix, 2, 0);
|
tableLayoutMatrix.Controls.Add(buttonMatrix, 2, 0);
|
||||||
tableLayoutMatrix.Dock = DockStyle.Top;
|
tableLayoutMatrix.Dock = DockStyle.Top;
|
||||||
tableLayoutMatrix.Location = new Point(15, 45);
|
tableLayoutMatrix.Location = new Point(15, 45);
|
||||||
tableLayoutMatrix.Margin = new Padding(6, 6, 6, 6);
|
tableLayoutMatrix.Margin = new Padding(6);
|
||||||
tableLayoutMatrix.Name = "tableLayoutMatrix";
|
tableLayoutMatrix.Name = "tableLayoutMatrix";
|
||||||
tableLayoutMatrix.RowCount = 1;
|
tableLayoutMatrix.RowCount = 1;
|
||||||
tableLayoutMatrix.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
|
tableLayoutMatrix.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
|
||||||
@@ -266,17 +266,18 @@ namespace GHelper
|
|||||||
panelBattery.Location = new Point(8, 805);
|
panelBattery.Location = new Point(8, 805);
|
||||||
panelBattery.Margin = new Padding(0);
|
panelBattery.Margin = new Padding(0);
|
||||||
panelBattery.Name = "panelBattery";
|
panelBattery.Name = "panelBattery";
|
||||||
panelBattery.Padding = new Padding(15, 15, 15, 15);
|
panelBattery.Padding = new Padding(15, 15, 15, 5);
|
||||||
panelBattery.Size = new Size(606, 114);
|
panelBattery.Size = new Size(606, 104);
|
||||||
panelBattery.TabIndex = 5;
|
panelBattery.TabIndex = 5;
|
||||||
//
|
//
|
||||||
// labelBatteryHealth
|
// labelBatteryHealth
|
||||||
//
|
//
|
||||||
labelBatteryHealth.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
labelBatteryHealth.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
labelBatteryHealth.Location = new Point(377, 78);
|
labelBatteryHealth.ForeColor = SystemColors.GrayText;
|
||||||
|
labelBatteryHealth.Location = new Point(377, 75);
|
||||||
labelBatteryHealth.Margin = new Padding(4, 0, 4, 0);
|
labelBatteryHealth.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelBatteryHealth.Name = "labelBatteryHealth";
|
labelBatteryHealth.Name = "labelBatteryHealth";
|
||||||
labelBatteryHealth.Size = new Size(213, 21);
|
labelBatteryHealth.Size = new Size(213, 24);
|
||||||
labelBatteryHealth.TabIndex = 40;
|
labelBatteryHealth.TabIndex = 40;
|
||||||
labelBatteryHealth.Text = " ";
|
labelBatteryHealth.Text = " ";
|
||||||
labelBatteryHealth.TextAlign = ContentAlignment.TopRight;
|
labelBatteryHealth.TextAlign = ContentAlignment.TopRight;
|
||||||
@@ -347,10 +348,10 @@ namespace GHelper
|
|||||||
panelFooter.Controls.Add(buttonQuit);
|
panelFooter.Controls.Add(buttonQuit);
|
||||||
panelFooter.Controls.Add(checkStartup);
|
panelFooter.Controls.Add(checkStartup);
|
||||||
panelFooter.Dock = DockStyle.Top;
|
panelFooter.Dock = DockStyle.Top;
|
||||||
panelFooter.Location = new Point(8, 961);
|
panelFooter.Location = new Point(8, 951);
|
||||||
panelFooter.Margin = new Padding(0);
|
panelFooter.Margin = new Padding(0);
|
||||||
panelFooter.Name = "panelFooter";
|
panelFooter.Name = "panelFooter";
|
||||||
panelFooter.Padding = new Padding(15, 15, 15, 15);
|
panelFooter.Padding = new Padding(15);
|
||||||
panelFooter.Size = new Size(606, 69);
|
panelFooter.Size = new Size(606, 69);
|
||||||
panelFooter.TabIndex = 7;
|
panelFooter.TabIndex = 7;
|
||||||
//
|
//
|
||||||
@@ -411,7 +412,7 @@ namespace GHelper
|
|||||||
panelPerformance.Location = new Point(8, 8);
|
panelPerformance.Location = new Point(8, 8);
|
||||||
panelPerformance.Margin = new Padding(0);
|
panelPerformance.Margin = new Padding(0);
|
||||||
panelPerformance.Name = "panelPerformance";
|
panelPerformance.Name = "panelPerformance";
|
||||||
panelPerformance.Padding = new Padding(15, 15, 15, 15);
|
panelPerformance.Padding = new Padding(15);
|
||||||
panelPerformance.Size = new Size(606, 156);
|
panelPerformance.Size = new Size(606, 156);
|
||||||
panelPerformance.TabIndex = 0;
|
panelPerformance.TabIndex = 0;
|
||||||
//
|
//
|
||||||
@@ -971,7 +972,7 @@ namespace GHelper
|
|||||||
panelKeyboard.Location = new Point(8, 568);
|
panelKeyboard.Location = new Point(8, 568);
|
||||||
panelKeyboard.Margin = new Padding(0);
|
panelKeyboard.Margin = new Padding(0);
|
||||||
panelKeyboard.Name = "panelKeyboard";
|
panelKeyboard.Name = "panelKeyboard";
|
||||||
panelKeyboard.Padding = new Padding(15, 15, 15, 15);
|
panelKeyboard.Padding = new Padding(15);
|
||||||
panelKeyboard.Size = new Size(606, 107);
|
panelKeyboard.Size = new Size(606, 107);
|
||||||
panelKeyboard.TabIndex = 3;
|
panelKeyboard.TabIndex = 3;
|
||||||
//
|
//
|
||||||
@@ -988,7 +989,7 @@ namespace GHelper
|
|||||||
tableLayoutKeyboard.Controls.Add(comboKeyboard, 0, 0);
|
tableLayoutKeyboard.Controls.Add(comboKeyboard, 0, 0);
|
||||||
tableLayoutKeyboard.Dock = DockStyle.Top;
|
tableLayoutKeyboard.Dock = DockStyle.Top;
|
||||||
tableLayoutKeyboard.Location = new Point(15, 45);
|
tableLayoutKeyboard.Location = new Point(15, 45);
|
||||||
tableLayoutKeyboard.Margin = new Padding(6, 6, 6, 6);
|
tableLayoutKeyboard.Margin = new Padding(6);
|
||||||
tableLayoutKeyboard.Name = "tableLayoutKeyboard";
|
tableLayoutKeyboard.Name = "tableLayoutKeyboard";
|
||||||
tableLayoutKeyboard.RowCount = 1;
|
tableLayoutKeyboard.RowCount = 1;
|
||||||
tableLayoutKeyboard.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
|
tableLayoutKeyboard.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
|
||||||
@@ -1034,7 +1035,7 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
pictureColor2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
pictureColor2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
pictureColor2.Location = new Point(141, 9);
|
pictureColor2.Location = new Point(141, 9);
|
||||||
pictureColor2.Margin = new Padding(6, 6, 6, 6);
|
pictureColor2.Margin = new Padding(6);
|
||||||
pictureColor2.Name = "pictureColor2";
|
pictureColor2.Name = "pictureColor2";
|
||||||
pictureColor2.Size = new Size(15, 15);
|
pictureColor2.Size = new Size(15, 15);
|
||||||
pictureColor2.TabIndex = 41;
|
pictureColor2.TabIndex = 41;
|
||||||
@@ -1044,7 +1045,7 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
pictureColor.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
pictureColor.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
pictureColor.Location = new Point(160, 9);
|
pictureColor.Location = new Point(160, 9);
|
||||||
pictureColor.Margin = new Padding(6, 6, 6, 6);
|
pictureColor.Margin = new Padding(6);
|
||||||
pictureColor.Name = "pictureColor";
|
pictureColor.Name = "pictureColor";
|
||||||
pictureColor.Size = new Size(15, 15);
|
pictureColor.Size = new Size(15, 15);
|
||||||
pictureColor.TabIndex = 40;
|
pictureColor.TabIndex = 40;
|
||||||
@@ -1146,7 +1147,7 @@ namespace GHelper
|
|||||||
panelVersion.Controls.Add(labelVersion);
|
panelVersion.Controls.Add(labelVersion);
|
||||||
panelVersion.Controls.Add(labelModel);
|
panelVersion.Controls.Add(labelModel);
|
||||||
panelVersion.Dock = DockStyle.Top;
|
panelVersion.Dock = DockStyle.Top;
|
||||||
panelVersion.Location = new Point(8, 919);
|
panelVersion.Location = new Point(8, 909);
|
||||||
panelVersion.Name = "panelVersion";
|
panelVersion.Name = "panelVersion";
|
||||||
panelVersion.Size = new Size(606, 42);
|
panelVersion.Size = new Size(606, 42);
|
||||||
panelVersion.TabIndex = 6;
|
panelVersion.TabIndex = 6;
|
||||||
@@ -1172,7 +1173,7 @@ namespace GHelper
|
|||||||
MinimizeBox = false;
|
MinimizeBox = false;
|
||||||
MinimumSize = new Size(624, 56);
|
MinimumSize = new Size(624, 56);
|
||||||
Name = "SettingsForm";
|
Name = "SettingsForm";
|
||||||
Padding = new Padding(8, 8, 8, 8);
|
Padding = new Padding(8);
|
||||||
ShowIcon = false;
|
ShowIcon = false;
|
||||||
StartPosition = FormStartPosition.CenterScreen;
|
StartPosition = FormStartPosition.CenterScreen;
|
||||||
Text = "G-Helper";
|
Text = "G-Helper";
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ using GHelper.Mode;
|
|||||||
using GHelper.UI;
|
using GHelper.UI;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace GHelper
|
namespace GHelper
|
||||||
{
|
{
|
||||||
@@ -32,6 +33,7 @@ namespace GHelper
|
|||||||
public Updates? updates;
|
public Updates? updates;
|
||||||
|
|
||||||
static long lastRefresh;
|
static long lastRefresh;
|
||||||
|
static long lastBatteryRefresh;
|
||||||
|
|
||||||
bool isGpuSection = true;
|
bool isGpuSection = true;
|
||||||
|
|
||||||
@@ -173,6 +175,15 @@ namespace GHelper
|
|||||||
sensorTimer.Elapsed += OnTimedEvent;
|
sensorTimer.Elapsed += OnTimedEvent;
|
||||||
sensorTimer.Enabled = true;
|
sensorTimer.Enabled = true;
|
||||||
|
|
||||||
|
panelBattery.MouseEnter += PanelBattery_MouseEnter;
|
||||||
|
labelBatteryTitle.MouseEnter += PanelBattery_MouseEnter;
|
||||||
|
labelBatteryHealth.MouseEnter += PanelBattery_MouseEnter;
|
||||||
|
labelBattery.MouseEnter += PanelBattery_MouseEnter;
|
||||||
|
pictureBattery.MouseEnter += PanelBattery_MouseEnter;
|
||||||
|
sliderBattery.MouseEnter += PanelBattery_MouseEnter;
|
||||||
|
panelBattery.MouseLeave += PanelBattery_MouseLeave;
|
||||||
|
labelBatteryHealth.Text = String.Empty;
|
||||||
|
|
||||||
labelModel.Text = AppConfig.GetModelShort() + (ProcessHelper.IsUserAdministrator() ? "." : "");
|
labelModel.Text = AppConfig.GetModelShort() + (ProcessHelper.IsUserAdministrator() ? "." : "");
|
||||||
TopMost = AppConfig.Is("topmost");
|
TopMost = AppConfig.Is("topmost");
|
||||||
|
|
||||||
@@ -180,6 +191,51 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void PanelBattery_MouseEnter(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ShowBatteryWear();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PanelBattery_MouseLeave(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
labelBatteryHealth.Text = String.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PanelBattery_MouseMove(object? sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
ShowBatteryWear();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ShowBatteryWear()
|
||||||
|
{
|
||||||
|
if (labelBatteryHealth.Text != String.Empty)
|
||||||
|
{
|
||||||
|
//Already visible. Nothing to do here.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Refresh again only after 15 Minutes since the last refresh
|
||||||
|
if (lastBatteryRefresh == 0 || Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastBatteryRefresh) > 15 * 60_000)
|
||||||
|
{
|
||||||
|
lastBatteryRefresh = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||||
|
HardwareControl.RefreshBatteryHealth();
|
||||||
|
}
|
||||||
|
|
||||||
|
string batteryHealth = "";
|
||||||
|
|
||||||
|
if (HardwareControl.batteryHealth == -1)
|
||||||
|
{
|
||||||
|
batteryHealth = Properties.Strings.BatteryHealth + ": " + "?";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
batteryHealth = Properties.Strings.BatteryHealth + ": "
|
||||||
|
+ Math.Round((decimal)HardwareControl.batteryHealth, 1).ToString() + "%";
|
||||||
|
}
|
||||||
|
|
||||||
|
labelBatteryHealth.Text = batteryHealth;
|
||||||
|
}
|
||||||
|
|
||||||
private void SettingsForm_VisibleChanged(object? sender, EventArgs e)
|
private void SettingsForm_VisibleChanged(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
sensorTimer.Enabled = this.Visible;
|
sensorTimer.Enabled = this.Visible;
|
||||||
@@ -762,7 +818,6 @@ namespace GHelper
|
|||||||
string cpuTemp = "";
|
string cpuTemp = "";
|
||||||
string gpuTemp = "";
|
string gpuTemp = "";
|
||||||
string battery = "";
|
string battery = "";
|
||||||
string batteryHealth = "";
|
|
||||||
|
|
||||||
HardwareControl.ReadSensors();
|
HardwareControl.ReadSensors();
|
||||||
|
|
||||||
@@ -775,15 +830,6 @@ namespace GHelper
|
|||||||
battery = Properties.Strings.Charging + ": " + Math.Round((decimal)HardwareControl.batteryRate, 1).ToString() + "W";
|
battery = Properties.Strings.Charging + ": " + Math.Round((decimal)HardwareControl.batteryRate, 1).ToString() + "W";
|
||||||
|
|
||||||
|
|
||||||
if (HardwareControl.batteryWear == -1)
|
|
||||||
{
|
|
||||||
batteryHealth = Properties.Strings.BatteryHealth + ": " + "?";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
batteryHealth = Properties.Strings.BatteryHealth + ": "
|
|
||||||
+ Math.Round((decimal)HardwareControl.batteryWear, 1).ToString() + "%";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (HardwareControl.gpuTemp > 0)
|
if (HardwareControl.gpuTemp > 0)
|
||||||
{
|
{
|
||||||
@@ -799,7 +845,6 @@ namespace GHelper
|
|||||||
labelMidFan.Text = "Mid" + HardwareControl.midFan;
|
labelMidFan.Text = "Mid" + HardwareControl.midFan;
|
||||||
|
|
||||||
labelBattery.Text = battery;
|
labelBattery.Text = battery;
|
||||||
labelBatteryHealth.Text = batteryHealth;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
string trayTip = "CPU" + cpuTemp + " " + HardwareControl.cpuFan;
|
string trayTip = "CPU" + cpuTemp + " " + HardwareControl.cpuFan;
|
||||||
|
|||||||
Reference in New Issue
Block a user