Ввод данных с ввода не может отображаться на графике - PullRequest
0 голосов
/ 21 января 2019

Я хотел бы вывести на график из button_start, который является произвольными входными данными от sensor_input, но я не могу получить значение из button_start и отобразить его на графике.

public partial class Form1 : Form
{
    public double dt;
    public double t;
    public double[] RawAcX = new double[500];

    public void init()
    {
        dt = 0.01;
        t = 0;
        RawAcX = null;
    }

    private void sensor_input()
    {
        for (int i = 0; i < 500; i++)
        {
            RawAcX[i] = Math.Sin(t);
            RawAcX[i] = Convert.ToDouble(RawAcX[i]);
            t += dt;
        }
    }

    private void button_start_Click(object sender, EventArgs e)
    {
        sensor_input();
        graph_acX.Series.Clear();
        graph_filter_acX.Series.Clear();
        Series AcX = graph_acX.Series.Add("AcX");
        Series F_AcX = graph_filter_acX.Series.Add("F_AcX");
        AcX.ChartType = SeriesChartType.Line;
        for (int k=0; k < 500; k++)
        {
            AcX.Points.AddXY(k*0.1, RawAcX[k]);
        }
    }
}

1 Ответ

0 голосов
/ 21 января 2019

Комментарии и пояснения в строке.

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }
    //I moved the initialization of dt to the declaration
    public double dt = 0.01;
    //t will be initialized to 0 by default
    public double t;
    public double[] RawAcX = new double[500];
    //this method is never called so I commented it out
    //public void init()
    //{
    //    dt = 0.01;
    //    t = 0;
    //    RawAcX = null;
    //}
    private void sensor_input()
    {
        for (int i = 0; i < 500; i++)
        {
            RawAcX[i] = Math.Sin(t);
            //this seems unnecessary since RawAcs is declared as double
            //RawAcX[i] = Convert.ToDouble(RawAcX[i]);
            t += dt;
        }
    }
    private void button2_Click(object sender, EventArgs e)
    {
        sensor_input();
        graph_acX.Series.Clear();
        graph_filter_acX.Series.Clear();
        Series AcX = graph_acX.Series.Add("AcX");
        Series F_AcX = graph_filter_acX.Series.Add("F_AcX");
        AcX.ChartType = SeriesChartType.Line;
        for (int k = 0; k < 500; k++)
        {
            AcX.Points.AddXY(k * 0.1, RawAcX[k]);
        }
        //I get a sine wave on graph_filter and nothing in graph_filter_acX
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...