コード例 #1
0
        public void LogDiscreteParameter(string parameterName, bool?value)
        {
            _uiNotifier.Notify(() => {
                if (value.HasValue)
                {
                    if (!_logs.ContainsKey(parameterName))
                    {
                        var dataSeries = new XyDataSeries <DateTime, double> {
                            SeriesName = parameterName
                        };

                        var color = _colors.First(c => _usedColors.All(uc => uc != c));
                        _usedColors.Add(color);
                        var renderSeries = new FastLineRenderableSeries {
                            DataSeries = dataSeries, SeriesColor = color
                        };

                        var vm       = new ChartSeriesViewModel(dataSeries, renderSeries);
                        var metadata = new SeriesAdditionalData(vm);

                        DiscreteSeries.Add(vm);
                        DiscreteSeriesAdditionalData.Add(metadata);

                        _logs.Add(parameterName, new PointsSeriesAndAdditionalData(vm, metadata, dataSeries, renderSeries));
                    }
                    _logs[parameterName].DataSeries.Append(DateTime.Now, value.Value ? 1.0 : 0.0);
                    _updatable?.Update();
                }
            });
        }
コード例 #2
0
        private void DiscreteSeriesOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs notifyCollectionChangedEventArgs)
        {
            var additionalDataToRemove = DiscreteSeriesAdditionalData.Where(adata => DiscreteSeries.All(data => data != adata.ChartSeries)).ToList();

            foreach (var seriesAdditionalData in additionalDataToRemove)
            {
                DiscreteSeriesAdditionalData.Remove(seriesAdditionalData);
                RemoveSeries(seriesAdditionalData.ChartSeries);
            }
        }
コード例 #3
0
        public void RemoveSeries(IChartSeriesViewModel seriesViewModel)
        {
            var logsToRemove = _logs.Where(log => log.Value.SeriesVm == seriesViewModel).ToList();

            foreach (var keyValuePair in logsToRemove)
            {
                _usedColors.Remove(keyValuePair.Value.RenderSeries.SeriesColor);
                AnalogSeries.Remove(keyValuePair.Value.SeriesVm);
                DiscreteSeries.Remove(keyValuePair.Value.SeriesVm);
                _logs.Remove(keyValuePair.Key);
            }
        }
コード例 #4
0
        public MainViewModel()
        {
            var startDateTime = DateTime.Now;

            ChartSeries.Add(GenerateSeries(startDateTime, 1, "analog bobo 1"));
            ChartSeries.Add(GenerateSeries(startDateTime, 1, "analog bobo 2"));

            DiscreteSeries.Add(GenerateDiscreteSeries(startDateTime, 1, "discrete bobo 1"));
            DiscreteSeries.Add(GenerateDiscreteSeries(startDateTime, -1, "discrete bobo3"));
            DiscreteSeries.Add(GenerateDiscreteSeries(startDateTime, 1.5, "discrete bobo4"));
            DiscreteSeries.Add(GenerateDiscreteSeries(startDateTime, -0.5, "discrete bobo5"));
            DiscreteSeries.Add(GenerateDiscreteSeries(startDateTime, -0.3, "discrete bobo6"));
            DiscreteSeries.Add(GenerateDiscreteSeries(startDateTime, 0.3, "discrete bobo7"));

            Annotations.Add(new VerticalLineAnnotation()
            {
                X1     = startDateTime + TimeSpan.FromMilliseconds(60),
                Stroke = new SolidColorBrush(Colors.Aqua)
            });
        }
コード例 #5
0
        private void GenerateSampleData()
        {
//
            var startDateTime = DateTime.Now;

            AnalogSeries.Add(GenerateSeries(startDateTime, 1, "bobo1"));
            RpdAnalogSeriesViewModels.Add(new RpdChartSeriesViewModel(AnalogSeries[0]));

            DiscreteSeries.Add(GenerateSeries(startDateTime, -1, "bobo2"));
            DiscreteSeries.Add(GenerateSeries(startDateTime, 0.2, "bobo3"));
            DiscreteSeries.Add(GenerateSeries(startDateTime, 0.5, "bobo4"));
            DiscreteSeries.Add(GenerateSeries(startDateTime, 0.7, "bobo5"));
            DiscreteSeries.Add(GenerateSeries(startDateTime, 1.2, "bobo6"));
            DiscreteSeries.Add(GenerateSeries(startDateTime, 1.5, "bobo7"));

            foreach (var chartSeriesViewModel in DiscreteSeries)
            {
                RpdDiscreteSeriesViewModels.Add(new DiscreteChartSeriesViewModel(chartSeriesViewModel));
            }
        }