/**
         * @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);
        }
Пример #2
0
        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();
        }