Ejemplo n.º 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();
                }
            });
        }
Ejemplo n.º 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);
            }
        }