示例#1
0
        private void ChartView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            StationLib.StationSocketListener plistener;

            {
                ComboBox combo = sender as ComboBox;

                if (combo == null)
                {
                    return;
                }
                plistener = combo.DataContext as StationLib.StationSocketListener;
                if (plistener != null)
                {
                    for (int i = 0; i < m_SensorMaps.Count; i++)
                    {
                        SensorMapToScatterLine            map          = m_SensorMaps[i];
                        LineSeries                        lineseries   = map.LineSeries;
                        IObservableVector <StationSensor> SennsorValue = map.Sensors;

                        for (int k = 0; k < plistener.StationSensors.SensorValues.Count; k++)
                        {
                            StationLib.StationSensors sensors = plistener.StationSensors;
                            if (sensors.SensorValues == SennsorValue)
                            {
                                Telerik.UI.Xaml.Controls.Chart.PropertyNameDataPointBinding Ybinding = lineseries.ValueBinding as Telerik.UI.Xaml.Controls.Chart.PropertyNameDataPointBinding;
                                ChartViewType viewType = (ChartViewType)combo.SelectedItem;

                                if (Ybinding.PropertyName != viewType.ViewPropertyName)
                                {
                                    Ybinding.PropertyName = viewType.ViewPropertyName;
                                    fillChart(SennsorValue, lineseries);
                                }

                                break;
                            }
                        }
                    }
                }
            }
        }
示例#2
0
        private void fillChart(IObservableVector <StationSensor> SennsorValue, LineSeries lineseries)
        {
            int nSensorValue = 0;


            lineseries.DataPoints.Clear();

            Telerik.UI.Xaml.Controls.Chart.PropertyNameDataPointBinding Ybinding = lineseries.ValueBinding as Telerik.UI.Xaml.Controls.Chart.PropertyNameDataPointBinding;


            if (Ybinding != null)
            {
                if (Ybinding.PropertyName == "Temperature")
                {
                    nSensorValue = 0;
                }
                else if (Ybinding.PropertyName == "Pressure")
                {
                    nSensorValue = 1;
                }
                else if (Ybinding.PropertyName == "FillingLevel")
                {
                    nSensorValue = 2;
                }
                else if (Ybinding.PropertyName == "FillingVolume")
                {
                    nSensorValue = 3;
                }
                else if (Ybinding.PropertyName == "HCSR04MeasTime")
                {
                    nSensorValue = 4;
                }
                else if (Ybinding.PropertyName == "HCSR04MeasTimeDistance")
                {
                    nSensorValue = 5;
                }
                else if (Ybinding.PropertyName == "Distance")
                {
                    nSensorValue = 6;
                }
                else if (Ybinding.PropertyName == "Humidity")
                {
                    nSensorValue = 7;
                }
                else
                {
                    nSensorValue = 8;
                }
            }


            double YValue;

            for (int i = 0; i < SennsorValue.Count; i++)
            {
                StationSensor sensor = SennsorValue[i];

                if (nSensorValue == 0)
                {
                    YValue = sensor.Temperature;
                }
                else if (nSensorValue == 1)
                {
                    YValue = sensor.PressurehPaSeaLevel;
                }
                else if (nSensorValue == 2)
                {
                    YValue = sensor.FillingLevel;
                }
                else if (nSensorValue == 3)
                {
                    YValue = sensor.FillingVolume;
                }
                else if (nSensorValue == 4)
                {
                    YValue = sensor.HCSR04MeasTime;
                }
                else if (nSensorValue == 5)
                {
                    YValue = sensor.HCSR04MeasTimeDistance;
                }
                else if (nSensorValue == 6)
                {
                    YValue = sensor.Distance;
                }
                else if (nSensorValue == 7)
                {
                    YValue = sensor.Humidity;
                }
                else
                {
                    YValue = 0;
                }

                DateTime dt = FillingLevelApp.Helpers.DateTimeConverter.UnixTimeStampToUTCDateTime(sensor.UnixTime).ToLocalTime();
                //          new CategoricalDataPoint(9, DateTime.Now)
                lineseries.DataPoints.Add(new CategoricalDataPoint()
                {
                    Category = dt, Value = YValue
                });
            }
        }
示例#3
0
 private void Chart_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
 {
     Telerik.UI.Xaml.Controls.Chart.RadCartesianChart chart = sender as RadCartesianChart;
     if (chart != null)
     {
         StationLib.StationSocketListener plistener = chart.DataContext as StationLib.StationSocketListener;
         if (plistener != null)
         {
             StationLib.StationSensors SennsorValue = plistener.StationSensors;
             if (SennsorValue != null)
             {
                 for (int i = 0; i < chart.Series.Count; i++)
                 {
                     //   ScatterLineSeries lineseries = chart.Series[i] as ScatterLineSeries;
                     LineSeries lineseries = chart.Series[i] as LineSeries;
                     if (lineseries != null)
                     {
                         Telerik.UI.Xaml.Controls.Chart.PropertyNameDataPointBinding Ybinding = lineseries.ValueBinding as Telerik.UI.Xaml.Controls.Chart.PropertyNameDataPointBinding;
                         ChartViewType viewType = (ChartViewType)ChartViewCombo.SelectedItem;
                         Ybinding.PropertyName = viewType.ViewPropertyName;
                         //m_MapTemperatureChart.Add(SennsorValue.SensorValues, lineseries);
                         fillChart(SennsorValue.SensorValues, lineseries);
                         m_SensorMaps.Add(new SensorMapToScatterLine(lineseries, SennsorValue.SensorValues));
                     }
                 }
             }
         }
     }
 }
示例#4
0
        private void insertintoChart(Windows.Foundation.Collections.IObservableVector <StationSensor> SennsorValue, LineSeries lineseries, int Idx)
        {
            if (Idx >= SennsorValue.Count)
            {
                return;
            }


            StationSensor sensor = SennsorValue[Idx];
            double        YValue = 0;

            Telerik.UI.Xaml.Controls.Chart.PropertyNameDataPointBinding Ybinding = lineseries.ValueBinding as Telerik.UI.Xaml.Controls.Chart.PropertyNameDataPointBinding;
            if (Ybinding != null)
            {
                if (Ybinding.PropertyName == "Temperature")
                {
                    YValue = sensor.Temperature;
                }
                else if (Ybinding.PropertyName == "FillingLevel")
                {
                    YValue = sensor.FillingLevel;
                }
                else if (Ybinding.PropertyName == "FillingVolume")
                {
                    YValue = sensor.FillingVolume;
                }
                else if (Ybinding.PropertyName == "Pressure")
                {
                    YValue = sensor.PressurehPaSeaLevel;
                }
                else if (Ybinding.PropertyName == "HCSR04MeasTime")
                {
                    YValue = sensor.HCSR04MeasTime;
                }
                else if (Ybinding.PropertyName == "HCSR04MeasTimeDistance")
                {
                    YValue = sensor.HCSR04MeasTimeDistance;
                }
                else if (Ybinding.PropertyName == "Distance")
                {
                    YValue = sensor.Distance;
                }
                else if (Ybinding.PropertyName == "Humidity")
                {
                    YValue = sensor.Humidity;
                }
                else
                {
                    YValue = 0;
                }
            }

            ChartViewType viewType = (ChartViewType)ChartViewCombo.SelectedItem;

            if (viewType != null)
            {
                viewType.ActValue = YValue;
            }

            DateTime dt = FillingLevelApp.Helpers.DateTimeConverter.UnixTimeStampToUTCDateTime(sensor.UnixTime).ToLocalTime();

            lineseries.DataPoints.Add(new CategoricalDataPoint()
            {
                Category = dt, Value = YValue
            });
        }