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; } } } } } }
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 }); } }
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)); } } } } } }
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 }); }