У меня есть динамический c график, который каждую секунду отображается с таймером на оси X и вычислением, называемым разрядом батареи на оси Y. Разряд батареи - это формула, которая использует таймер для его расчета, так что со временем батарея со временем разряжается до 0. Проблема заключается в том, что на графике он только показывает и рассчитывает начальный заряд батареи. Как мне сделать так, чтобы он динамически вычислял заряд каждую секунду.
Ниже приведен код для расчета разряда батареи с использованием геттера и сеттера.
public double dTime { get { return time; } set { time = value; batteryDischargeCalc(); } }
private double time;
private void batteryDischargeCalc()
{
bEnergy = (nVoltage * capacity * 3600)/1000000; //battery energy in megajoules
energyDischarge = bEnergy - ((motorPower/1000) * time ); //discharge after certain amount of time in megajoules
}
Ниже приведен код, который инициирует рисование графика.
private void button5_Click(object sender, EventArgs e)
{
graphStart = true;
globalTimer.timer.Start();
graphForm.Show();
battery.Capacity = Convert.ToDouble(textBox3.Text);
battery.Nvoltage = Convert.ToDouble(textBox4.Text);
battery.MotorPower = Convert.ToDouble(textBox5.Text);
battery.dTime = Convert.ToDouble(tCount);
Ниже приведен код для построения графика. В тикере.
private void Timer_Tick(object sender, EventArgs e)
{
if (graphStart == true)
{
graphForm.TimeGraph(tCount);
graphForm.chartGraph["Energy Discharge"].Points.AddXY(tCount, battery.energyDischarge);
}
else
{
tCount++;
resform.GiveTime(tCount);
}
}