How can i write data from serial port in a chart C#

Viewed 45

For an WindowForm Application i'm receiving data from an Arduino Leonardo with SerialPort. I can show my data from serial in a RichTextBox. But i want to display my data in a chart.

private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
   if (serialPort1.IsOpen)
   {
      serialDataIn = serialPort1.ReadLine();
      listDataStr.Add(serialDataIn); 
      this.Invoke(new EventHandler(ShowData));
   }
}
private void ShowData(object sender, EventArgs e)
{
   rtbReceive.Text += serialDataIn;
   Display();
}

Here i'm trying to show my data in a chart :

private void Display()
{
    var graphData = chDataExp.ChartAreas[0];
    graphData.AxisX.Maximum = listData.Count;

    chSignal.Series.Clear();
    chSignal.Series.Add("Serie1");
    chSignal.Series[0].ChartType = SeriesChartType.Line;

    // Add point to chart
    for (int j = 0; j < listDataStr.Count; j++)
    {
        chSignal.Series[0].Points.AddXY(j, listDataStr[j]);
    }
    listDataStr.Clear();
}

I receive data from serialPort without interrupt. Maybe using a list for saving my data is not the right solution ?

I don't know how to do it in an other way.

Thanks for your answer.

A begginner in C#

0 Answers
Related