Ejemplo n.º 1
0
        /// <summary>
        /// Sets the graph point.
        /// </summary>
        /// <param name="i">The point index.</param>
        /// <param name="response">The response from the microcontroller.</param>
        private void SetGraphPoint(int i, PollResponse response)
        {
            if (!this.UpdateGraphPlots.IsAlive)
            {
                return;
            }

            if (this.chartsSensorGraphs[i].InvokeRequired)
            {
                SetResponseCallbackGraph d = new SetResponseCallbackGraph(this.SetGraphPoint);
                this.Invoke(d, new object[] { i, response });
            }
            else
            {
                if (response.ConvertData() != null)
                {
                    foreach (Series series in this.chartsSensorGraphs[i].Series)
                    {
                        while ((series.Points.Count > 0) && ((series.Points[series.Points.Count - 1].XValue - series.Points[0].XValue) > LiveGraphLength))
                        {
                            series.Points.RemoveAt(0);
                        }

                        series.Points.Add(new DataPoint((double)response.Time, response.ConvertData()));
                        this.CreateDataPointToolTip(series.Points[series.Points.Count - 1], this.controller.SensorController.ReturnUnit(i));
                        this.chartsSensorGraphs[i].ChartAreas[0].AxisX.Maximum = response.Time;
                    }

                    this.chartsSensorGraphs[i].Width = (this.chartsSensorGraphs[i].Series[0].Points.Count * 10) + 170;
                    this.labelsSensorGraphsValues[i].Text = "Value: " + response.ConvertData();
                }
            }
        }