Ejemplo n.º 1
0
        public void LogAnalogueParameter(string parameterName, double?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);

                        AnalogSeries.Add(vm);
                        AnalogSeriesAdditionalData.Add(metadata);
                        _logs.Add(parameterName, new PointsSeriesAndAdditionalData(vm, metadata, dataSeries, renderSeries));
                    }
                    _logs[parameterName].DataSeries.Append(DateTime.Now, value.Value);
                    _updatable?.Update();
                }
            });
        }
Ejemplo n.º 2
0
        private void AnalogSeriesOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs notifyCollectionChangedEventArgs)
        {
            var additionalDataToRemove = AnalogSeriesAdditionalData.Where(adata => AnalogSeries.All(data => data != adata.ChartSeries)).ToList();

            foreach (var seriesAdditionalData in additionalDataToRemove)
            {
                AnalogSeriesAdditionalData.Remove(seriesAdditionalData);
                RemoveSeries(seriesAdditionalData.ChartSeries);
            }
        }
Ejemplo n.º 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);
            }
        }
Ejemplo n.º 4
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));
            }
        }