in sensors/Tools/SensorExplorer/SensorDisplay.cs [143:369]
public SensorDisplay(int sensorType, int index, int totalIndex, int minValue, int maxValue, int scale, Color[] color)
{
SensorType = sensorType;
Index = index;
this.totalIndex = totalIndex;
string[] vAxisLabel = new string[scale + 1];
var resourceLoader = ResourceLoader.GetForCurrentView();
StackPanelSensor.Children.Clear();
expanderProperty.Content = scrollViewerProperty;
scrollViewerProperty.Content = StackPanelProperty;
expanderPLD.Content = scrollViewerPLD;
scrollViewerPLD.Content = stackPanelPLD;
for (int i = 0; i <= scale; i++)
{
if (sensorType == Sensor.ACTIVITYSENSOR)
{
if (i < 2)
{
vAxisLabel[i] = ((ActivitySensorReadingConfidence)i).ToString();
}
else
{
vAxisLabel[i] = "None";
}
}
else if (sensorType == Sensor.SIMPLEORIENTATIONSENSOR)
{
vAxisLabel[i] = ((SimpleOrientation)(maxValue - i)).ToString().Replace("DegreesCounterclockwise", "°↺");
}
else
{
vAxisLabel[i] = (maxValue - Convert.ToDouble(i) / scale * (maxValue - minValue)).ToString();
}
}
PlotCanvas = new PlotCanvas(minValue, maxValue, color, canvasSensor, vAxisLabel);
stackPanelSwitch.Children.Add(buttonSensor);
if (sensorType == Sensor.ACCELEROMETER || sensorType == Sensor.ACCELEROMETERGRAVITY || sensorType == Sensor.ACCELEROMETERLINEAR)
{
Grid gridAccelerometer = new Grid();
gridAccelerometer.Children.Add(new Ellipse() { Width = 100, Height = 100, Stroke = new SolidColorBrush(Colors.Black), StrokeThickness = 5 });
gridAccelerometer.Children.Add(new Ellipse() { Width = 50, Height = 50, Stroke = new SolidColorBrush(Colors.Black), StrokeThickness = 5 });
gridAccelerometer.Children.Add(ellipseAccelerometer);
StackPanelTop.Children.Add(gridAccelerometer);
}
else if (sensorType == Sensor.COMPASS)
{
StackPanelTop.Children.Add(imageCompass);
}
else if (sensorType == Sensor.GYROMETER)
{
StackPanel stackPanelX = new StackPanel() { Orientation = Orientation.Vertical, Margin = new Thickness(10), Width = 60 };
stackPanelX.Children.Add(imageGyrometerX);
stackPanelX.Children.Add(new TextBlock() { Text = "X", HorizontalAlignment = HorizontalAlignment.Center });
StackPanel stackPanelY = new StackPanel() { Orientation = Orientation.Vertical, Margin = new Thickness(10), Width = 60 };
stackPanelY.Children.Add(imageGyrometerY);
stackPanelY.Children.Add(new TextBlock() { Text = "Y", HorizontalAlignment = HorizontalAlignment.Center });
StackPanel stackPanelZ = new StackPanel() { Orientation = Orientation.Vertical, Margin = new Thickness(10), Width = 60 };
stackPanelZ.Children.Add(imageGyrometerZ);
stackPanelZ.Children.Add(new TextBlock() { Text = "Z", HorizontalAlignment = HorizontalAlignment.Center });
StackPanelTop.Children.Add(stackPanelX);
StackPanelTop.Children.Add(stackPanelY);
StackPanelTop.Children.Add(stackPanelZ);
}
else if (sensorType == Sensor.INCLINOMETER)
{
StackPanel stackPanelX = new StackPanel() { Orientation = Orientation.Vertical, Margin = new Thickness(10), Width = 60 };
stackPanelX.Children.Add(imageInclinometerPitch);
stackPanelX.Children.Add(new TextBlock() { Text = "Pitch", HorizontalAlignment = HorizontalAlignment.Center });
StackPanel stackPanelY = new StackPanel() { Orientation = Orientation.Vertical, Margin = new Thickness(10), Width = 60 };
stackPanelY.Children.Add(imageInclinometerRoll);
stackPanelY.Children.Add(new TextBlock() { Text = "Roll", HorizontalAlignment = HorizontalAlignment.Center });
StackPanel stackPanelZ = new StackPanel() { Orientation = Orientation.Vertical, Margin = new Thickness(10), Width = 60 };
stackPanelZ.Children.Add(imageInclinometerYaw);
stackPanelZ.Children.Add(new TextBlock() { Text = "Yaw", HorizontalAlignment = HorizontalAlignment.Center });
StackPanelTop.Children.Add(stackPanelX);
StackPanelTop.Children.Add(stackPanelY);
StackPanelTop.Children.Add(stackPanelZ);
}
else if (sensorType == Sensor.ACTIVITYSENSOR || sensorType == Sensor.LIGHTSENSOR || sensorType == Sensor.PEDOMETER || sensorType == Sensor.PROXIMITYSENSOR)
{
StackPanelTop.Children.Add(textBlockSensor);
}
else
{
StackPanelTop.Height = 0;
}
textBlockProperty = new TextBlock[color.Length + 1];
textBlockValue = new TextBlock[textBlockProperty.Length];
textBlockMinValue = new TextBlock[textBlockProperty.Length];
textBlockMaxValue = new TextBlock[textBlockProperty.Length];
textBlockProperty[color.Length] = new TextBlock() { HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center };
stackPanelDataName.Children.Add(textBlockProperty[color.Length]);
textBlockValue[color.Length] = new TextBlock() { Text = resourceLoader.GetString("Value"), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center };
stackPanelValue.Children.Add(textBlockValue[color.Length]);
textBlockMinValue[color.Length] = new TextBlock() { Text = resourceLoader.GetString("Min"), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center };
stackPanelMinValue.Children.Add(textBlockMinValue[color.Length]);
textBlockMaxValue[color.Length] = new TextBlock() { Text = resourceLoader.GetString("Max"), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center };
stackPanelMaxValue.Children.Add(textBlockMaxValue[color.Length]);
for (int i = 0; i < color.Length; i++)
{
textBlockProperty[i] = new TextBlock() { HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Center };
textBlockProperty[i].Foreground = new SolidColorBrush(color[i]);
stackPanelDataName.Children.Add(textBlockProperty[i]);
textBlockValue[i] = new TextBlock() { HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Center };
textBlockValue[i].Foreground = new SolidColorBrush(color[i]);
stackPanelValue.Children.Add(textBlockValue[i]);
textBlockMinValue[i] = new TextBlock() { HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Center };
textBlockMinValue[i].Foreground = new SolidColorBrush(color[i]);
stackPanelMinValue.Children.Add(textBlockMinValue[i]);
textBlockMaxValue[i] = new TextBlock() { HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Center };
textBlockMaxValue[i].Foreground = new SolidColorBrush(color[i]);
stackPanelMaxValue.Children.Add(textBlockMaxValue[i]);
}
stackPanelExpander.Children.Add(expanderProperty);
stackPanelExpander.Children.Add(expanderPLD);
stackPanelBottom.Children.Add(stackPanelExpander);
if (sensorType == Sensor.LIGHTSENSOR)
{
stackPanelBottomData.Children.Add(stackPanelDataName);
stackPanelBottomData.Children.Add(stackPanelValue);
stackPanelBottomData.Children.Add(stackPanelMinValue);
stackPanelBottomData.Children.Add(stackPanelMaxValue);
stackPanelBottomRightCol.Children.Add(stackPanelBottomData);
stackPanelBottomRightCol.Children.Add(MALTButton);
MALTButton.Click += Scenario1View.Scenario1.MALTButton;
MALTDisplayInitialization();
for (int i = 0; i < textBlockMALTPropertyName1.Length - 3; i++)
{
stackPanelMALTPropertyName1.Children.Add(textBlockMALTPropertyName1[i]);
stackPanelMALTPropertyValue1.Children.Add(TextBlockMALTPropertyValue1[i]);
stackPanelMALTPropertyName2.Children.Add(textBlockMALTPropertyName2[i]);
stackPanelMALTPropertyValue2.Children.Add(TextBlockMALTPropertyValue2[i]);
}
StackPanelMALTData.Children.Add(textblockMALTData1);
StackPanelMALTData.Children.Add(stackPanelMALTPropertyName1);
StackPanelMALTData.Children.Add(stackPanelMALTPropertyValue1);
StackPanelMALTData.Children.Add(textblockMALTData2);
StackPanelMALTData.Children.Add(stackPanelMALTPropertyName2);
StackPanelMALTData.Children.Add(stackPanelMALTPropertyValue2);
StackPanelMALTData.Children.Add(hideMALTButton);
hideMALTButton.Click += Scenario1View.Scenario1.HideMALTButton;
stackPanelBottom.Children.Add(stackPanelBottomRightCol);
stackPanelBottom.Children.Add(StackPanelMALTData);
}
else
{
stackPanelBottom.Children.Add(stackPanelDataName);
stackPanelBottom.Children.Add(stackPanelValue);
stackPanelBottom.Children.Add(stackPanelMinValue);
stackPanelBottom.Children.Add(stackPanelMaxValue);
}
textBlockPropertyName = new TextBlock[properties.Length];
textBlockPropertyValue = new TextBlock[textBlockPropertyName.Length];
for (int i = 0; i < properties.Length; i++)
{
textBlockPropertyName[i] = new TextBlock() { Text = properties[i], HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Center };
textBlockPropertyValue[i] = new TextBlock() { Text = (i == 0 ? "\r\n" : "") + " -", HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Center };
stackPanelPropertyName.Children.Add(textBlockPropertyName[i]);
if (i == 0)
{
textBlockPropertyName[i].Height = 60;
textBlockPropertyValue[i].Height = 60;
buttonReportInterval.Click += Scenario1View.Scenario1.ReportIntervalButton;
StackPanel stackPanelReportInterval = new StackPanel();
stackPanelReportInterval.Orientation = Orientation.Horizontal;
stackPanelReportInterval.Children.Add(textBlockPropertyValue[i]);
stackPanelReportInterval.Children.Add(TextboxReportInterval);
stackPanelReportInterval.Children.Add(buttonReportInterval);
stackPanelPropertyValue.Children.Add(stackPanelReportInterval);
}
else
{
stackPanelPropertyValue.Children.Add(textBlockPropertyValue[i]);
}
}
StackPanelProperty.Children.Add(stackPanelPropertyName);
StackPanelProperty.Children.Add(stackPanelPropertyValue);
textBlockPLDName = new TextBlock[pld.Length];
textBlockPLDValue = new TextBlock[textBlockPLDName.Length];
for (int i = 0; i < pld.Length; i++)
{
textBlockPLDName[i] = new TextBlock() { Text = pld[i], HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Center };
textBlockPLDValue[i] = new TextBlock() { Text = (i == 0 ? "\r\n" : "") + " -", HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Center };
stackPanelPLDName.Children.Add(textBlockPLDName[i]);
stackPanelPLDValue.Children.Add(textBlockPLDValue[i]);
}
stackPanelPLD.Children.Add(stackPanelPLDName);
stackPanelPLD.Children.Add(stackPanelPLDValue);
StackPanelSensor.Children.Add(StackPanelTop);
StackPanelSensor.Children.Add(canvasSensor);
StackPanelSensor.Children.Add(stackPanelBottom);
}