// proceso que maneja la llegada de data al puerto serial private void serialDataReceivedEventHandler(object sender, SerialDataReceivedEventArgs e) { try // en caso de que ya este proceso haya iniciado y se precione el boton de cerrar el puerto, produce un error { SerialPort sData = sender as SerialPort; string recvData = sData.ReadLine(); //LOG.BeginInvoke((MethodInvoker)delegate { LOG.AppendText("Received: " + recvData); }); // initialization of chart update double data; bool result = Double.TryParse(recvData, out data); if (result) { medicion m = new medicion(recvData, tag, data); if (tag == null) { m = new medicion(recvData, " ", data); } else { m = new medicion(recvData, tag, data); tag = null; } //datarecorded.Add(recvData); this.Invoke((MethodInvoker) delegate { updatechart(m); }); } } catch { //MessageBox.Show("failed");//do nothing ... mensaje de prueba } }
private void updatechart(medicion data) { chart1.Series["Series1"].Points.AddXY(data.etiqueta, data.numvalor); recorded.Add(data); chart1.ChartAreas[0].AxisX.ScaleView.Position = chart1.Series["Series1"].Points.Count - 500;// ubica siempre la pantalla al final }