/** * @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(double t, double d, double p, double h) { LineSeries lineSeriesTemp = DataPlotModel.Series[0] as LineSeries; lineSeriesTemp.Points.Add(new DataPoint(t, d)); if (lineSeriesTemp.Points.Count > config.GetSettings().MaxSampleNumber) { lineSeriesTemp.Points.RemoveAt(0); } LineSeries lineSeriesPress = DataPlotModel.Series[1] as LineSeries; lineSeriesPress.Points.Add(new DataPoint(t, p)); if (lineSeriesPress.Points.Count > config.GetSettings().MaxSampleNumber) { lineSeriesPress.Points.RemoveAt(0); } LineSeries lineSeriesHum = DataPlotModel.Series[2] as LineSeries; lineSeriesHum.Points.Add(new DataPoint(t, h)); if (lineSeriesHum.Points.Count > config.GetSettings().MaxSampleNumber) { lineSeriesHum.Points.RemoveAt(0); } if (t >= config.GetSettings().XAxisMax) { DataPlotModel.Axes[0].Minimum = (t - config.GetSettings().XAxisMax); DataPlotModel.Axes[0].Maximum = t + config.GetSettings().SampleTime / 1000.0;; } DataPlotModel.InvalidatePlot(true); }
private void AssembleMainWindow() { MainWindow = new MainWindow(); //Initialize all the various modules here var dataPlotView = (FrameworkElement)MainWindow.FindName("DataPlot"); var chartView = (ICustomChart)dataPlotView.FindName("theChart"); var dataPlotModel = new DataPlotModel(chartView); //var dataPlotModel = new DataPlotModel(); var dataPlotViewModel = new DataPlotViewModel(dataPlotModel, dataPlotView); dataPlotView.DataContext = dataPlotViewModel; var windowFactory = new PieFactory(); var dataSeriesFactory = new DataSeriesFactory(); FMI.DataSeriesFactory = dataSeriesFactory; Fingrid.DataSeriesFactory = dataSeriesFactory; var sidebarModel = new SidebarModel(dataPlotModel, windowFactory); var sidebarViewModel = new SidebarViewModel(sidebarModel); var sidebarView = ((FrameworkElement)MainWindow.FindName("Sidebar")); sidebarView.DataContext = sidebarViewModel; MainWindow.Show(); }