ShutMod-Calculator/ShuntCalculator/Form1.cs

201 lines
6.6 KiB
C#

using System;
using System.Windows.Forms;
namespace ShuntCalculator
{
public partial class Form1 : Form
{
private double[] storedpowerlimit = new double[4];
public Form1()
{
InitializeComponent();
}
private void maskedTextBox1_TextChanged(object sender, EventArgs e)
{
Setdefaultlimiter();
}
private void Setdefaultlimiter()
{
try
{
//load value from powerlimit.
float defpl = float.Parse(maskedTextBox1.Text);
//set up power split
float slot = int.Parse(maskedTextBox2.Text);
float plug1 = (defpl - int.Parse(maskedTextBox2.Text)) / 2;
float plug2 = (defpl - int.Parse(maskedTextBox2.Text)) / 2;
float plug3 = 0; //Zero since 2 plug card doesnt have this input.
//3 plug card split
if (radioButton2.Checked)
{
plug1 = (defpl - int.Parse(maskedTextBox2.Text)) / 3;
plug2 = (defpl - int.Parse(maskedTextBox2.Text)) / 3;
plug3 = (defpl - int.Parse(maskedTextBox2.Text)) / 3;
}
//load shunt values
float defaulshunt = float.Parse(maskedTextBox3.Text);
float newshunt = float.Parse(maskedTextBox4.Text);
//workout new shunt value
float newrestance = (defaulshunt * newshunt) / (defaulshunt + newshunt);
//Work out what the sense voltage is for wattage reading circuit.
float sensevoltage1 = (plug1 / 12f) * defaulshunt;
float sensevoltage2 = (plug2 / 12f) * defaulshunt;
float sensevoltage3 = (plug3 / 12f) * defaulshunt;
float sensevoltageslot = (slot / 12f) * defaulshunt;
//Check if stacking or replacing
if (checkBox1.Checked)
{
newrestance = newshunt;
}
//output new resistance value on screen.
Double dc = Math.Round(newrestance, 2);
label9.Text = "New Shunt Restance = " + dc.ToString() + "mΩ";
//Work out what sense circuit voltage is for wattage.
float NewAmps1 = sensevoltage1 / newrestance;
float NewAmps2 = sensevoltage2 / newrestance;
float NewAmps3 = sensevoltage3 / newrestance;
float NewAmpsslot = sensevoltageslot / newrestance;
//work out new power from each input.
double newslot = Math.Round((slot), 1);
double newplug1 = Math.Round((NewAmps1 * 12), 2);
double newplug2 = Math.Round((NewAmps2 * 12), 2);
double newplug3 = Math.Round((NewAmps3 * 12), 2);
// check if slot shunt modded
if (checkBox2.Checked)
{
newslot = Math.Round((NewAmpsslot * 12), 2);
}
double newdefpl = newslot + newplug1 + newplug2 + newplug3;
storedpowerlimit[0] = newslot;
storedpowerlimit[1] = newplug1;
storedpowerlimit[2] = newplug2;
storedpowerlimit[3] = newplug3;
label7.Text = (newdefpl).ToString() + "W";
trackbar1.Value = 100;
plugmaths(newslot, newplug1, newplug2, newplug3);
label11.Text = "HWInfo/GPUz Multiplyer: " + Math.Round((newdefpl / defpl),2).ToString();
}
catch
{
}
}
private void plugmaths(double newslot,double newplug1, double newplug2, double newplug3)
{
newslot = Math.Round(newslot, 1);
newplug1 = Math.Round(newplug1, 1);
newplug2 = Math.Round(newplug2, 1);
newplug3 = Math.Round(newplug3, 1);
if (radioButton1.Checked)
{
label10.Text = "Slot = " + newslot + "W Plug1 = " + Math.Round(newplug1, 1).ToString() + "W Plug2 = " + Math.Round(newplug2, 1).ToString() + "w";
}
else if (radioButton3.Checked)
{
label10.Text = "Slot = " + newslot + "W Plug = " + Math.Round(newplug1 + newplug2, 1).ToString() + "W";
}
else
{
label10.Text = "Slot = " + newslot + "W Plug1 = " + Math.Round(newplug1, 1).ToString() + "W Plug2 = " + Math.Round(newplug2, 1).ToString() + "W Plug3 = " + Math.Round(newplug3, 1).ToString() + "W";
}
}
private void maskedTextBox3_TextChanged(object sender, EventArgs e)
{
Setdefaultlimiter();
}
private void maskedTextBox2_TextChanged(object sender, EventArgs e)
{
Setdefaultlimiter();
}
private void maskedTextBox4_TextChanged(object sender, EventArgs e)
{
Setdefaultlimiter();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
label4.Text = "Replaced With";
}
else
{
label4.Text = "Added Shunt";
}
Setdefaultlimiter();
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
Setdefaultlimiter();
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
Setdefaultlimiter();
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
Setdefaultlimiter();
}
private void Form1_Load(object sender, EventArgs e)
{
Setdefaultlimiter();
}
private void label2_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("https://github.com/bmgjet/ShutMod-Calculator");
}
private void trackbar1_ValueChanged(object sender, EventArgs e)
{
label8.Text = trackbar1.Value.ToString() + "%";
float diff = (trackbar1.Value / 100f);
double boardpower = storedpowerlimit[0] + storedpowerlimit[1] + storedpowerlimit[2] + storedpowerlimit[3];
label7.Text = (Math.Round(diff * boardpower, 2)).ToString() + "W";
plugmaths(diff * storedpowerlimit[0], diff * storedpowerlimit[1],diff * storedpowerlimit[2],diff * storedpowerlimit[3]);
}
private void maskedTextBox2_TextChanged_1(object sender, EventArgs e)
{
Setdefaultlimiter();
}
}
}