public async Task LoadChart()
        {
            var stockInfo = new StockInfoItem
            {
                Id         = StockValueContext.Id,
                MarketType = StockValueContext.ExchangeTypeKey,
                Name       = StockValueContext.Name
            };
            StockChartModel chartModel = await _queryService.GetRealTimeTradeChartAsync(stockInfo);

            // Set the start and end value to y axis
            SetOpenCloseTimeToCharAxis(chartModel);

            // Set the top and bottom value for the chart
            SetUpDownLimitLineToChart(chartModel.StockMessage);

            // Draw the middle, up and down extra line for the chart
            DrawExtraLines(chartModel.StockMessage);

            // 設定股價座標顯示的區間次數
            SetPriceTickInterval(Convert.ToDouble(chartModel.StockMessage.LimitUp), Convert.ToDouble(chartModel.StockMessage.LimitDown), 5);

            // Add stock point to chart
            foreach (var point in chartModel.ChartData)
            {
                DateTime xDateTime = DateTimeUtils.UnixTimeStampToDateTime(Convert.ToDouble(point.Timestemp));
                var      axisPoint = DateTimeAxis.CreateDataPoint(xDateTime, Convert.ToDouble(point.Value));
                ChartDataCollection.Add(axisPoint);
            }
        }
Exemplo n.º 2
0
        public static PlotModel DaylightSavingsBreak()
        {
            var m = new PlotModel();

            var xa = new DateTimeAxis {
                Position = AxisPosition.Bottom
            };

            // TimeZone not available in PCL...

            m.Axes.Add(xa);
            m.Axes.Add(new LinearAxis {
                Position = AxisPosition.Left
            });
            var ls = new LineSeries {
                MarkerType = MarkerType.Circle
            };

            m.Series.Add(ls);

            // set the origin of the curve to 2013-03-31 00:00:00 (UTC)
            var o = new DateTime(2013, 3, 31, 0, 0, 0, DateTimeKind.Utc);

            // add points at 10min intervals
            // at 2am the clocks are turned forward 1 hour (W. Europe Standard Time)
            for (int i = 0; i < 400; i += 10)
            {
                var time = o.AddMinutes(i);
                ls.Points.Add(DateTimeAxis.CreateDataPoint(time, i));
            }

            return(m);
        }
Exemplo n.º 3
0
        public GraficoMexico()
        {
            InitializeComponent();

            List <EstadisticaPais> datos = new GenericRepository <List <EstadisticaPais> >().TraerDatos("dayone/country/mexico").Result;

            PlotModel grafica = new PlotModel();

            DateTimeAxis ejetiempo = new DateTimeAxis();

            LineSeries infectadosSerie  = new LineSeries();
            LineSeries recuperadosSerie = new LineSeries();
            LineSeries muertosSerie     = new LineSeries();

            foreach (var item in datos)
            {
                infectadosSerie.Points.Add(DateTimeAxis.CreateDataPoint(item.Date.DateTime, item.Confirmed));
                recuperadosSerie.Points.Add(DateTimeAxis.CreateDataPoint(item.Date.DateTime, item.Recovered));
                muertosSerie.Points.Add(DateTimeAxis.CreateDataPoint(item.Date.DateTime, item.Deaths));
            }

            infectadosSerie.Title  = "Infectados: " + datos[datos.Count - 1].Confirmed;
            recuperadosSerie.Title = "Recuperdos: " + datos[datos.Count - 1].Recovered;
            muertosSerie.Title     = "Muertos: " + datos[datos.Count - 1].Deaths;;

            grafica.Axes.Add(ejetiempo);
            grafica.Series.Add(infectadosSerie);
            grafica.Series.Add(recuperadosSerie);
            grafica.Series.Add(muertosSerie);

            plotgrafica.Model = grafica;
        }
Exemplo n.º 4
0
        public HistoryDataWindow()
        {
            this.InitializeComponent();
            this.Points = new List <DataPoint>();

            var random = new Random();

            for (var i = 10; i != 0; i--)
            {
                var dt = DateTime.Now.Subtract(TimeSpan.FromSeconds(i));
                var v  = random.NextDouble() * 40;
                this.Points.Add(DateTimeAxis.CreateDataPoint(dt, v));
            }

            this.pltData.InvalidatePlot();

            var timer = new DispatcherTimer(
                TimeSpan.FromSeconds(1), DispatcherPriority.Background,
                (_, __) =>
            {
                var r = new Random();
                this.Points.Add(DateTimeAxis.CreateDataPoint(DateTime.Now, r.NextDouble() * 40));
                this.Points.RemoveAt(0);
                this.pltData.InvalidatePlot();
            },
                this.Dispatcher);
        }
Exemplo n.º 5
0
        private void CreateSeriesPoints(ISparqlQueryResult result)
        {
            AreaSeries series = CreateSeries("Facts x 1000", OxyColor.Parse("#119eda"));

            int    d  = 0;
            int    n  = 0;
            double y0 = 0;
            double y1 = 0;

            foreach (BindingSet binding in result.GetBindings())
            {
                DateTime x = DateTime.Parse(binding["time"].ToString());
                double   y = Convert.ToInt32(binding["facts"]);

                if (n == 0)
                {
                    y0 = y;
                }

                if (d != x.DayOfYear)
                {
                    d = x.DayOfYear;

                    n++;
                }

                y1 = y;

                series.Points.Add(DateTimeAxis.CreateDataPoint(x, y / 1000));
            }

            AverageDelta = n > 0 ? (y1 - y0) / n : 0;

            Model.Series.Add(series);
        }
Exemplo n.º 6
0
        public MainViewModel()
        {
            TempDataPoints = new ObservableCollection <DataPoint>();
            HumiDataPoints = new ObservableCollection <DataPoint>();

            Model = new PlotModel()
            {
                Title = "Simple Example", Subtitle = "using OxyPlot"
            };
            var series1 = new LineSeries {
                Title = "梁業", MarkerType = MarkerType.Circle, Smooth = true
            };
            var series2 = new LineSeries {
                Title = "物業", MarkerType = MarkerType.Star, Smooth = true, MarkerStroke = OxyColors.Red
            };
            var dateTimeAxis1 = new DateTimeAxis();

            dateTimeAxis1.Title = "Time";
            Model.Axes.Add(dateTimeAxis1);
            Model.Series.Add(series1);
            Model.Series.Add(series2);

            Random rd = new Random();

            Task.Run(
                () =>
            {
                while (true)
                {
                    series1.Points.Add(DateTimeAxis.CreateDataPoint(DateTime.Now, rd.Next(10, 30)));
                    series2.Points.Add(DateTimeAxis.CreateDataPoint(DateTime.Now, rd.Next(10, 30)));
                    if (series1.Points.Count > 100)
                    {
                        series1.Points.RemoveAt(0);
                        series2.Points.RemoveAt(0);
                    }
                    Model.InvalidatePlot(true);
                    Thread.Sleep(1000);
                }
            });
            Task.Run(
                () =>
            {
                while (true)
                {
                    var date = DateTime.Now;
                    App.Current.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        TempDataPoints.Add(DateTimeAxis.CreateDataPoint(date, (double)(rd.Next(100, 500) / 10.0)));
                        HumiDataPoints.Add(DateTimeAxis.CreateDataPoint(date, (double)(rd.Next(500, 800) / 10.0)));
                        if (TempDataPoints.Count > 300)
                        {
                            TempDataPoints.RemoveAt(0);
                            HumiDataPoints.RemoveAt(0);
                        }
                    }));
                    Thread.Sleep(1000);
                }
            });
        }
Exemplo n.º 7
0
        public static PlotModel DaylightSavingsBreak()
        {
            var m = new PlotModel();

            var xa = new DateTimeAxis(AxisPosition.Bottom);

#if PCL
            // TimeZone is not available in PCL...
#else
#if !SILVERLIGHT
            //TEST  xa.TimeZone = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
            xa.TimeZone = new MyTimeZoneInfo(TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time"));
#endif
#endif
            m.Axes.Add(xa);
            m.Axes.Add(new LinearAxis(AxisPosition.Left));
            var ls = new LineSeries {
                MarkerType = MarkerType.Circle
            };
            m.Series.Add(ls);

            // set the origin of the curve to 2013-03-31 00:00:00 (UTC)
            var o = new DateTime(2013, 3, 31, 0, 0, 0, DateTimeKind.Utc);

            // add points at 10min intervals
            // at 2am the clocks are turned forward 1 hour (W. Europe Standard Time)
            for (int i = 0; i < 400; i += 10)
            {
                var time = o.AddMinutes(i);
                ls.Points.Add(DateTimeAxis.CreateDataPoint(time, i));
            }

            return(m);
        }
Exemplo n.º 8
0
        private IDisposable CreateSymbolLineSeries(SymbolObservationViewModel symbol)
        {
            var lineSeries = CreateLineSeriesAndAxis(symbol);
            var disposable = new CompositeDisposable();

            RescaleAxisDistances();

            dataPoints[symbol.Name] = new List <DataPoint> {
                DateTimeAxis.CreateDataPoint(DateTime.Now, Convert.ToDouble(symbol.Value))
            };


            Observable.FromEventPattern <PropertyChangedEventHandler, PropertyChangedEventArgs>(
                handler => handler.Invoke,
                h => symbol.PropertyChanged += h,
                h => symbol.PropertyChanged -= h)
            .Where(args => args.EventArgs.PropertyName == "Value" && pause == false)
            .ObserveOnDispatcher()
            .Subscribe(x => { UpdateDatapoints(symbol); }).AddDisposableTo(disposable);


            Observable.Interval(TimeSpan.FromSeconds(1))
            .Where(x => pause == false)
            .ObserveOnDispatcher()
            .Subscribe(x => { UpdateLineseries(symbol, lineSeries); })
            .AddDisposableTo(disposable);

            raisePropertyChanged("PlotModel");

            // Need to invalidate oxyplot graph after removal of line series in order to have it really removed from UI
            Disposable.Create(() => PlotModel.InvalidatePlot(true))
            .AddDisposableTo(disposable);

            return(disposable);
        }
Exemplo n.º 9
0
        public List <DataPoint>[] getDataForOpenHighLowCloseForShares(string symbol, string tsType, string interval)
        {
            List <DataPoint>[] dataPoints = new List <DataPoint> [5];
            for (int i = 0; i < dataPoints.Length; i++)
            {
                dataPoints[i] = new List <DataPoint>();
            }

            Dictionary <DateTime, TimeSerie> data = getDataForShares(symbol, tsType, interval);

            if (data == null)
            {
                return(null);
            }

            DataPoint dp;

            foreach (KeyValuePair <DateTime, TimeSerie> kv in data)
            {
                dp = DateTimeAxis.CreateDataPoint(kv.Key, kv.Value.Open);
                dataPoints[0].Add(dp);
                dp = DateTimeAxis.CreateDataPoint(kv.Key, kv.Value.High);
                dataPoints[1].Add(dp);
                dp = DateTimeAxis.CreateDataPoint(kv.Key, kv.Value.Low);
                dataPoints[2].Add(dp);
                dp = DateTimeAxis.CreateDataPoint(kv.Key, kv.Value.Close);
                dataPoints[3].Add(dp);
                dp = DateTimeAxis.CreateDataPoint(kv.Key, kv.Value.Volume);
                dataPoints[4].Add(dp);
            }

            return(dataPoints);
        }
        public void ShowBytes(IList <byte> bytes)
        {
            _debugBytes = bytes;
            // TODO: rework for big endian and little endian archs

            var value1 = _addPoints1AsSigned
                ? ConvertHelp.ToInt16(_debugBytes[0], _debugBytes[1]) * 1.0
                : ConvertHelp.ToUInt16(_debugBytes[0], _debugBytes[1]) * 1.0;
            var value2 = _addPoints2AsSigned
                ? ConvertHelp.ToInt16(_debugBytes[2], _debugBytes[3]) * 1.0
                : ConvertHelp.ToUInt16(_debugBytes[2], _debugBytes[3]) * 1.0;
            var value3 = _addPoints3AsSigned
                ? ConvertHelp.ToInt16(_debugBytes[4], _debugBytes[5]) * 1.0
                : ConvertHelp.ToUInt16(_debugBytes[4], _debugBytes[5]) * 1.0;
            var value4 = _addPoints4AsSigned
                ? ConvertHelp.ToInt16(_debugBytes[6], _debugBytes[7]) * 1.0
                : ConvertHelp.ToUInt16(_debugBytes[6], _debugBytes[7]) * 1.0;

            _points1.Points.Add(DateTimeAxis.CreateDataPoint(DateTime.Now, value1));
            _points2.Points.Add(DateTimeAxis.CreateDataPoint(DateTime.Now, value2));
            _points3.Points.Add(DateTimeAxis.CreateDataPoint(DateTime.Now, value3));
            _points4.Points.Add(DateTimeAxis.CreateDataPoint(DateTime.Now, value4));

            PlotVm.InvalidatePlot(true);
        }
Exemplo n.º 11
0
        private void CreateSeriesPoints(ISparqlQueryResult result)
        {
            AreaSeries series = CreateSeries("Size / MB", OxyColors.Orange);

            int    d  = 0;
            int    n  = 0;
            double y0 = 0;
            double y1 = 0;

            foreach (BindingSet binding in result.GetBindings())
            {
                DateTime x = DateTime.Parse(binding["time"].ToString());
                double   y = Convert.ToDouble(binding["size"]);

                if (n == 0)
                {
                    y0 = y;
                }

                if (d != x.DayOfYear)
                {
                    d = x.DayOfYear;

                    n++;
                }

                y1 = y;

                series.Points.Add(DateTimeAxis.CreateDataPoint(x, ToMegaByte(y, 2)));
            }

            AverageDelta = n > 0 ? ToKiloByte((y0 - y1) / n, 2) : 0;

            Model.Series.Add(series);
        }
        public void UpdateDataPoints()
        {
            Application.Current.Dispatcher.Invoke(() =>
            {
                var machineData = GetMachineData(_currentIngotID, _startID, _availableProcessIDs);

                if (machineData != null && machineData.Item1.Count > 0)
                {
                    _startID = machineData.Item2 + 1;

                    if (!ShowPlot)
                    {
                        ShowPlot = true;
                        RaisePropertyChanged("ShowPlot");
                    }

                    foreach (var target in DataSeries)
                    {
                        var dataPoints = GetDataPoints(_plantName, target.Key, machineData.Item1);

                        foreach (var data in dataPoints)
                        {
                            target.Value.Add(DateTimeAxis.CreateDataPoint(data.Timestamp, data.Value));
                        }
                    }
                }
            });
        }
Exemplo n.º 13
0
        public void C02_DateTimeAxis_WithSomeUndefinedPoints()
        {
            var plot = new PlotModel("DateTime axis")
            {
                PlotMargins = new OxyThickness(100, 40, 20, 100)
            };
            var xaxis = new DateTimeAxis(AxisPosition.Bottom, "DateTime X", null, DateTimeIntervalType.Days)
            {
                Angle = -46, MajorStep = 1
            };
            var yaxis = new DateTimeAxis(AxisPosition.Left, "DateTime Y", null, DateTimeIntervalType.Days)
            {
                Angle = -45, MajorStep = 1
            };

            plot.Axes.Add(xaxis);
            plot.Axes.Add(yaxis);

            var ls = new LineSeries();

            ls.Points.Add(DateTimeAxis.CreateDataPoint(new DateTime(2011, 1, 1), new DateTime(2011, 3, 1)));
            ls.Points.Add(DateTimeAxis.CreateDataPoint(double.NaN, new DateTime(2011, 3, 8)));
            ls.Points.Add(DateTimeAxis.CreateDataPoint(new DateTime(2011, 1, 6), new DateTime(2011, 3, 12)));
            ls.Points.Add(DateTimeAxis.CreateDataPoint(new DateTime(2011, 1, 10), double.NaN));
            ls.Points.Add(DateTimeAxis.CreateDataPoint(new DateTime(2011, 1, 19), new DateTime(2011, 3, 14)));
            plot.Series.Add(ls);

            OxyAssert.AreEqual(plot, "C02");
        }
Exemplo n.º 14
0
        private List <DataPoint> getDataPoints(Dictionary <DateTime, Dictionary <string, string> > dataCrypto, string partOfKey)
        {
            List <DataPoint> dataPoints = new List <DataPoint>();

            if (dataCrypto == null)
            {
                return(dataPoints);
            }

            DataPoint dp;

            foreach (KeyValuePair <DateTime, Dictionary <string, string> > kv1 in dataCrypto)
            {
                foreach (KeyValuePair <string, string> kv2 in kv1.Value)
                {
                    if (kv2.Key.Contains(partOfKey))
                    {
                        try
                        {
                            dp = DateTimeAxis.CreateDataPoint(kv1.Key, Double.Parse(kv2.Value));
                            dataPoints.Add(dp);
                        }
                        catch { }

                        break;
                    }
                }
            }

            return(dataPoints);
        }
        private void FillSeries(ObservableCollection <DataPoint> target, IList <DataPointViewModel> dataPoints)
        {
            target.Clear();

            foreach (var data in dataPoints)
            {
                target.Add(DateTimeAxis.CreateDataPoint(data.Timestamp, data.Value));
            }
        }
Exemplo n.º 16
0
        private void PlotUnitKills(PlotModel m)
        {
            if (EmpiresUnitKills == null)
            {
                return;
            }

            AddXDatesAxis(m);

            LinearAxis citiesY = new LinearAxis();

            citiesY.Title    = Labels.KilledUnits;
            citiesY.Key      = "units_kills";
            citiesY.Position = AxisPosition.Right;
            m.Axes.Add(citiesY);

            long   lastKills  = -1;
            double killsValue = 0;

            foreach (var empire in EmpiresUnitKills.OrderBy(x => x.Key.UnitsKillsRank))
            {
                lastKills  = -1;
                killsValue = 0;
                OxyPlot.Series.StairStepSeries s = new OxyPlot.Series.StairStepSeries();
                s.XAxisKey = "x";
                s.YAxisKey = "units_kills";
                s.VerticalStrokeThickness = 0.2;
                s.MarkerType = MarkerType.None;
                s.Title      = string.Format("{0} ({1})", empire.Key.PlayerName, empire.Key.AlianceName);

                foreach (var hr in empire.Value.OrderBy(x => x.CreateDT.Value))
                {
                    if (DiffKillsScore)
                    {
                        if (lastKills < 0)
                        {
                            //pierwszy wynik, zaczynam od zera
                            lastKills  = hr.Score;
                            killsValue = 0;
                        }
                        else
                        {
                            killsValue = hr.Score - lastKills;
                            lastKills  = hr.Score;
                        }
                    }
                    else
                    {
                        killsValue = hr.Score;
                    }

                    s.Points.Add(DateTimeAxis.CreateDataPoint(hr.CreateDT.Value, killsValue));
                }

                m.Series.Add(s);
            }
        }
Exemplo n.º 17
0
        private void UpdateDatapoints(SymbolObservationViewModel symbol)
        {
            var refreshTime = DateTime.Now;

            dataPoints[symbol.Name].Add(DateTimeAxis.CreateDataPoint(refreshTime, Convert.ToDouble(symbol.Value)));

            var expireLimit = DateTimeAxis.ToDouble(DateTime.Now.Subtract(ExpiresAfter));

            dataPoints[symbol.Name].RemoveAll(point => point.X < expireLimit);
        }
Exemplo n.º 18
0
        private void LoadActivities(string fileUrl)
        {
            SuspendLayout();

            string queryString = @"
                PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
                PREFIX nfo: <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#>
                PREFIX prov: <http://www.w3.org/ns/prov#>

                SELECT ?agent ?startTime ?endTime WHERE
                {
                  ?activity prov:qualifiedAssociation ?association .
                  ?activity prov:startedAtTime ?startTime .
                  ?activity prov:endedAtTime ?endTime .
                  ?activity prov:used ?entity .

                  ?association prov:agent ?agent .

                  ?entity nfo:fileUrl """ + Uri.EscapeUriString(fileUrl) + @""" .
                }
                ORDER BY DESC(?startTime)";

            IModel model = Models.GetAllActivities();

            SparqlQuery        query  = new SparqlQuery(queryString);
            ISparqlQueryResult result = model.ExecuteQuery(query, true);

            foreach (BindingSet binding in result.GetBindings())
            {
                Agent    agent     = new Agent(new Uri(binding["agent"].ToString()));
                DateTime startTime = ((DateTime)binding["startTime"]).RoundToMinute();
                DateTime endTime   = ((DateTime)binding["endTime"]).RoundToMinute();

                OxyColor color = _palette[agent];

                // Since we're going backward in time, we see the close activities first.
                PolygonAnnotation annotation = new PolygonAnnotation();
                annotation.Layer = AnnotationLayer.BelowAxes;
                annotation.Fill  = OxyColor.FromArgb(125, color.R, color.G, color.B);
                annotation.Points.Add(DateTimeAxis.CreateDataPoint(startTime, 0));
                annotation.Points.Add(DateTimeAxis.CreateDataPoint(startTime, 2));
                annotation.Points.Add(DateTimeAxis.CreateDataPoint(endTime, 2));
                annotation.Points.Add(DateTimeAxis.CreateDataPoint(endTime, 0));

                Model.Annotations.Add(annotation);
            }

            ResumeLayout();
        }
Exemplo n.º 19
0
        public static LineSeries LineSeries(string seriesTitle, DateTime[] x, double[] y, System.Drawing.Color markerColor, MarkerType mType)
        {
            var lineSeries = new LineSeries();
            lineSeries.Title = seriesTitle;
            for (int i = 0; i < x.Length; i++)
            {
                var b = DateTimeAxis.CreateDataPoint(x[i], y[i]);

                lineSeries.Points.Add(b);
            }
            lineSeries.Color = OxyColor.FromRgb(markerColor.R, markerColor.G, markerColor.B);
            //lineSeries.MarkerFill = 
            lineSeries.MarkerType = mType;
            return lineSeries;
        }
Exemplo n.º 20
0
 private void RecordValue(Channel channel, double value, DateTime time)
 {
     if (channelSeriesMap.ContainsKey(channel))
     {
         var seriesList = channelSeriesMap[channel];
         seriesList.ForEach(series =>
         {
             if (series.Points.Count >= NumPoints)
             {
                 series.Points.RemoveAt(0);
             }
             series.Points.Add(DateTimeAxis.CreateDataPoint(time, value));
             series.PlotModel?.InvalidatePlot(true);
         });
     }
 }
Exemplo n.º 21
0
        private void PlotOffRep(PlotModel m)
        {
            if (OffReputations == null)
            {
                return;
            }

            //miasta
            LinearAxis yAxis = new LinearAxis();

            yAxis.Title              = Labels.OffReputation;
            yAxis.Key                = "off_rep";
            yAxis.Position           = AxisPosition.Right;
            yAxis.MajorGridlineStyle = LineStyle.None;
            yAxis.MinorGridlineStyle = LineStyle.None;
            m.Axes.Add(yAxis);

            foreach (var empire in OffReputations.OrderBy(x => x.Key.OffReputation))
            {
                var s = new OxyPlot.Series.StairStepSeries();
                s.XAxisKey  = "x";
                s.YAxisKey  = "off_rep";
                s.LineStyle = LineStyle.Dash;
                //s.VerticalStrokeThickness = 0.2;

                s.MarkerType = MarkerType.Diamond;
                s.Title      = string.Format("A: {0} ({1})", empire.Key.PlayerName, empire.Key.AlianceName);

                DateTime?lastTime  = null;
                long     lastScore = 0;

                foreach (var hr in empire.Value.OrderBy(x => x.CreateDT.Value))
                {
                    s.Points.Add(DateTimeAxis.CreateDataPoint(hr.CreateDT.Value, hr.Score));
                    lastScore = hr.Score;
                    lastTime  = hr.CreateDT;
                }

                //sztucznie dodaję pomiar, żeb widać było poziomą kreskę
                if (lastTime.HasValue)
                {
                    s.Points.Add(DateTimeAxis.CreateDataPoint(lastTime.Value.AddHours(1), lastScore));
                }

                m.Series.Add(s);
            }
        }
Exemplo n.º 22
0
        /// <summary>
        /// Timer-Tick-Event of the OHM-Service
        /// </summary>
        /// <param name="args"></param>
        private void OpenHardwareMonitorManagementServiceTimerTickEventHandler(OpenHardwareMonitorManagementServiceTimerTickEventArgs args)
        {
            var areaSeries = (AreaSeries)this.CPUPlot.Series[0];

            if (areaSeries.Points.Count > 60)
            {
                areaSeries.Points.RemoveAt(0);
            }

            if (this.openHardwareManagementService.CPU != null)
            {
                // Update CPU-Values
                this.openHardwareManagementService.CPU.Update();

                // Get CPU-Temperature
                this.CPUTemperature = (this.openHardwareManagementService.CPUTemperatureSensor.Value != null) ? (double)this.openHardwareManagementService.CPUTemperatureSensor.Value : default(double);

                // Update values
                this.OnPropertyChanged(() => this.CPUPowerConsumption);
                this.OnPropertyChanged(() => this.CPUCoreWorkloadSensors);
                this.OnPropertyChanged(() => this.CPUCoreClockSpeedSensors);
                this.OnPropertyChanged(() => this.CPUCoreTemperatureSensors);
                this.OnPropertyChanged(() => this.CPUCorePowerConsumption);
            }

            // Update-Plot
            //double x = areaSeries.Points.Count > 0 ? areaSeries.Points[areaSeries.Points.Count - 1].X + 1 : 0;
            double percentage = default(double);

            if (this.openHardwareManagementService.CPUWorkloadSensor.Value != null && this.openHardwareManagementService.CPUWorkloadSensor.Value.HasValue)
            {
                percentage = (double)this.openHardwareManagementService.CPUWorkloadSensor.Value;
            }

            areaSeries.Points.Add(new DataPoint(DateTimeAxis.ToDouble(this.time), percentage));
            areaSeries.Points2.Add(DateTimeAxis.CreateDataPoint(this.time, 0));

            time = time.AddSeconds(1);

            this.CPUUtilization = percentage / 100;

            this.CPUClockSpeed = this.openHardwareManagementService.CPUClockSpeed;

            this.CPUPlot.InvalidatePlot(true);
        }
Exemplo n.º 23
0
        private List <DataPoint> getVolumes(Dictionary <DateTime, TimeSerie> data)
        {
            List <DataPoint> dataPoints = new List <DataPoint>();

            if (data == null)
            {
                return(dataPoints);
            }

            DataPoint dp;

            foreach (KeyValuePair <DateTime, TimeSerie> kv in data)
            {
                dp = DateTimeAxis.CreateDataPoint(kv.Key, kv.Value.Volume);
                dataPoints.Add(dp);
            }

            return(dataPoints);
        }
Exemplo n.º 24
0
 /// <summary>
 /// 更新气压曲线
 /// </summary>
 public void UpDataPrePoints(object sender, EventArgs e)
 {
     if (IsUpDataPrePoint)
     {
         var date     = DateTime.Now;
         var injects  = injectorDevice.GetSeleteced();
         int pressure = 0;
         ObservableCollection <DataPoint>[] prepoints = { Pre1Points, Pre2Points, Pre3Points, Pre4Points };
         Random rd = new Random();
         foreach (var inject in injects)
         {
             pressure = injectorDevice.GetPressure(inject.Index);
             prepoints[inject.Index].Add(DateTimeAxis.CreateDataPoint(date, (double)pressure));
             if (prepoints[inject.Index].Count > 50)
             {
                 prepoints[inject.Index].RemoveAt(0);
             }
         }
     }
 }
Exemplo n.º 25
0
        public void SetPositionMarker(DateTime time)
        {
            DataPoint p0 = DateTimeAxis.CreateDataPoint(time, -5);
            DataPoint p1 = DateTimeAxis.CreateDataPoint(time, _y.Maximum + 5);

            _positionMarker.StrokeThickness = 2;
            _positionMarker.LineStyle       = LineStyle.Solid;
            _positionMarker.LineJoin        = LineJoin.Miter;
            _positionMarker.Color           = Palette.AccentColor.ToOxyColor();
            _positionMarker.Points.Clear();
            _positionMarker.Points.Add(p0);
            _positionMarker.Points.Add(p1);

            if (!Model.Annotations.Contains(_positionMarker))
            {
                Model.Annotations.Add(_positionMarker);
            }

            Model.InvalidatePlot(false);
        }
Exemplo n.º 26
0
        private void UpdateLineseries(SymbolObservationViewModel symbol, LineSeries lineSeries)
        {
            var newPoints = dataPoints[symbol.Name]
                            .Where(point => !lineSeries.Points.Select(oldPoint => oldPoint.X).Contains(point.X));

            if (!newPoints.Any() && dataPoints[symbol.Name].Any())
            {
                var lastPoint = dataPoints[symbol.Name].LastOrDefault();
                newPoints = new[] { DateTimeAxis.CreateDataPoint(DateTime.Now, lastPoint.Y) };
            }

            lineSeries.Points.AddRange(newPoints);

            var expireLimit = DateTimeAxis.ToDouble(DateTime.Now.Subtract(ExpiresAfter));

            lineSeries.Points.RemoveAll(point => point.X < expireLimit);

            PlotModel.InvalidatePlot(true);
            raisePropertyChanged("PlotModel");
        }
Exemplo n.º 27
0
        /*
         * If we are graphing the time, we have to treat this a little differently
         * There is only one time per date,so we will be using a line graph
         *
         */
        private PlotModel CreateTimeModel()
        {
            List <WorkoutTimeDB> data = (List <WorkoutTimeDB>)database.GetWorkoutTimes();

            var model = new PlotModel
            {
                Title                 = name,
                LegendPlacement       = LegendPlacement.Outside,
                LegendPosition        = LegendPosition.BottomCenter,
                LegendOrientation     = LegendOrientation.Horizontal,
                LegendBorderThickness = 0
            };
            var series = new LineSeries()
            {
                Color                 = OxyColors.SkyBlue,
                MarkerType            = MarkerType.Circle,
                MarkerSize            = 6,
                MarkerStroke          = OxyColors.White,
                MarkerFill            = OxyColors.SkyBlue,
                MarkerStrokeThickness = 1.5
            };
            DateTimeAxis xaxis = new DateTimeAxis {
                Position = AxisPosition.Bottom
            };

            xaxis.StringFormat = "M/d";
            xaxis.Minimum      = DateTimeAxis.ToDouble(DateTime.Parse(data[0].Date));
            DateTimeAxis yaxis = new DateTimeAxis {
                Position = AxisPosition.Left
            };

            model.Axes.Add(xaxis);
            model.Axes.Add(yaxis);
            foreach (WorkoutTimeDB _data in data)
            {
                series.Points.Add(DateTimeAxis.CreateDataPoint(DateTime.Parse(_data.Date), DateTime.Parse(_data.Time)));
            }

            model.Series.Add(series);
            return(model);
        }
Exemplo n.º 28
0
        private List <DataPoint> getUsd(Dictionary <DateTime, Dictionary <string, string> > dataCrypto)
        {
            List <DataPoint> dataPoints = new List <DataPoint>();

            if (dataCrypto == null)
            {
                return(dataPoints);
            }

            DataPoint dp;

            foreach (KeyValuePair <DateTime, Dictionary <string, string> > kv in dataCrypto)
            {
                try
                {
                    dp = DateTimeAxis.CreateDataPoint(kv.Key, Double.Parse(kv.Value["1b. price (USD)"]));
                    dataPoints.Add(dp);
                }
                catch { }
            }

            return(dataPoints);
        }
Exemplo n.º 29
0
        private void Graficar()
        {
            PlotModel    grafica           = new PlotModel();
            DateTimeAxis ejeTiempo         = new DateTimeAxis();
            LineSeries   temperatura       = new LineSeries();
            LineSeries   humeadadAmbiental = new LineSeries();
            LineSeries   luminosidad       = new LineSeries();

            foreach (var item in model.LecturasDelDispositivo)
            {
                temperatura.Points.Add(DateTimeAxis.CreateDataPoint(item.FechaHora, item.Temperatura));
                humeadadAmbiental.Points.Add(DateTimeAxis.CreateDataPoint(item.FechaHora, item.Humedad));
                luminosidad.Points.Add(DateTimeAxis.CreateDataPoint(item.FechaHora, item.Luminosidad));
            }
            temperatura.Title       = "Temperatura °C";
            humeadadAmbiental.Title = "Humedad ambiental %";
            luminosidad.Title       = "Luminosidad";
            grafica.Axes.Add(ejeTiempo);
            grafica.Series.Add(temperatura);
            grafica.Series.Add(humeadadAmbiental);
            grafica.Series.Add(luminosidad);
            plotGrafica.Model = grafica;
        }
Exemplo n.º 30
0
        /// <summary>
        /// Update network speed plot
        /// </summary>
        private void UpdateNetworkSpeedPlot()
        {
            var areaSeries = (AreaSeries)this.NetworkSpeedPlot.Series[0];

            if (areaSeries.Points.Count > 60)
            {
                areaSeries.Points.RemoveAt(0);
            }

            areaSeries.Points.Add(new DataPoint(DateTimeAxis.ToDouble(this.time), this.DownloadSpeedBytesPerSecond));
            areaSeries.Points2.Add(DateTimeAxis.CreateDataPoint(this.time, 0));

            var speedAxe = NetworkSpeedPlot.Axes.Where(a => a is LinearAxis).FirstOrDefault();

            if (speedAxe != null)
            {
                speedAxe.Title = this.DownloadSpeedFormatted;
            }

            time = time.AddSeconds(1);

            this.NetworkSpeedPlot.UpdateData();
        }