Dynami c расчет графика в реальном времени - PullRequest
0 голосов
/ 05 марта 2020

У меня есть динамический 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);
        }  
    }
...