예제 #1
0
        /**
         * @brief Time series plot update procedure.
         * @param t X axis data: Time stamp [ms].
         * @param d Y axis data: Real-time measurement [-].
         */
        private void UpdatePlot_IMU(double t, double d, int which_imu_data)
        {
            LineSeries lineSeries  = IMUChart.Series[0] as LineSeries;
            LineSeries lineSeries2 = IMUChart.Series[1] as LineSeries;
            LineSeries lineSeries3 = IMUChart.Series[2] as LineSeries;

            if (which_imu_data == 0)
            {
                lineSeries.Points.Add(new DataPoint(t, d));
            }
            if (which_imu_data == 1)
            {
                lineSeries2.Points.Add(new DataPoint(t, d));
            }
            if (which_imu_data == 2)
            {
                lineSeries3.Points.Add(new DataPoint(t, d));
            }


            if (lineSeries.Points.Count > config.MaxSampleNumber)
            {
                lineSeries.Points.RemoveAt(0);
            }

            if (t >= config.XAxisMax)
            {
                IMUChart.Axes[0].Minimum = (t - config.XAxisMax);
                IMUChart.Axes[0].Maximum = t + config.SampleTime / 1000.0;;
            }



            IMUChart.InvalidatePlot(true);
        }
예제 #2
0
        /**
         * @brief RequestTimer start procedure.
         */
        private void StartTimer()
        {
            if (RequestTimer == null)
            {
                RequestTimer          = new Timer(config.SampleTime);
                RequestTimer.Elapsed += new ElapsedEventHandler(RequestTimerElapsed);
                RequestTimer.Enabled  = true;

                IMUChart.ResetAllAxes();
            }
        }
예제 #3
0
        public List <ChartItem> GetIMUChartData(long ID, DateTime start, DateTime end)
        {
            var res = _chartRepository.GetIMUByID(ID, start, end);

            if (res.ToList().Count != 0)
            {
                var charts = new IMUChart();
                foreach (var line in res)
                {
                    charts.acc_x.Add(new DataItem {
                        Date = line.Date, Value = line.acc_x
                    });
                    charts.acc_y.Add(new DataItem {
                        Date = line.Date, Value = line.acc_x
                    });
                    charts.acc_z.Add(new DataItem {
                        Date = line.Date, Value = line.acc_x
                    });

                    charts.mag_x.Add(new DataItem {
                        Date = line.Date, Value = line.mag_x
                    });
                    charts.mag_y.Add(new DataItem {
                        Date = line.Date, Value = line.mag_y
                    });
                    charts.mag_z.Add(new DataItem {
                        Date = line.Date, Value = line.mag_z
                    });

                    charts.gyro_xangle.Add(new DataItem {
                        Date = line.Date, Value = line.gyro_xangle
                    });
                    charts.gyro_yangle.Add(new DataItem {
                        Date = line.Date, Value = line.gyro_yangle
                    });
                    charts.gyro_zangle.Add(new DataItem {
                        Date = line.Date, Value = line.gyro_zangle
                    });
                }
                List <ChartItem> chitem = new List <ChartItem>();
                chitem.Add(new ChartItem {
                    Label = IMULabels.acc_x, Data = charts.acc_x
                });
                chitem.Add(new ChartItem {
                    Label = IMULabels.acc_y, Data = charts.acc_y
                });
                chitem.Add(new ChartItem {
                    Label = IMULabels.acc_z, Data = charts.acc_z
                });
                chitem.Add(new ChartItem {
                    Label = IMULabels.mag_x, Data = charts.mag_x
                });
                chitem.Add(new ChartItem {
                    Label = IMULabels.mag_y, Data = charts.mag_y
                });
                chitem.Add(new ChartItem {
                    Label = IMULabels.mag_z, Data = charts.mag_z
                });
                chitem.Add(new ChartItem {
                    Label = IMULabels.gyro_xangle, Data = charts.gyro_xangle
                });
                chitem.Add(new ChartItem {
                    Label = IMULabels.gyro_yangle, Data = charts.gyro_yangle
                });
                chitem.Add(new ChartItem {
                    Label = IMULabels.gyro_zangle, Data = charts.gyro_zangle
                });
                return(chitem);
            }
            else
            {
                return(null);
            }
        }