/** * @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); }
/** * @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(); } }
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); } }