protected virtual void Dispose(bool disposing) { CleanupPollingThread(); if (myWindow != null) { myWindow.Dispose(); myWindow = null; } }
public SideBarInfo(SensorsViewModel sensorsViewModel, SensorWindow sensorWindow) { this.sensorsViewModel = sensorsViewModel; this.sensorWindow = sensorWindow; this.incomingQueue = Mqtt.GetIncomingQueue(); Mqtt.Subscribe(new string[] { "temperature" }); Run(); }
public SensorsViewModel(SensorWindow sensorWindow) { this.sensorWindow = sensorWindow; lineX = new GLineSeries { Values = new GearedValues <double> { }.WithQuality(Quality.Medium), PointGeometry = null, Fill = Brushes.Transparent }; lineY = new GLineSeries { Values = new GearedValues <double> { }.WithQuality(Quality.Medium), PointGeometry = null, Fill = Brushes.Transparent }; lineZ = new GLineSeries { Values = new GearedValues <double> { }.WithQuality(Quality.Medium), PointGeometry = null, Fill = Brushes.Transparent }; lineRoll = new GLineSeries { Values = new GearedValues <double> { }.WithQuality(Quality.Medium), PointGeometry = null, Fill = Brushes.Transparent }; linePitch = new GLineSeries { Values = new GearedValues <double> { }.WithQuality(Quality.Medium), PointGeometry = null, Fill = Brushes.Transparent }; lineYaw = new GLineSeries { Values = new GearedValues <double> { }.WithQuality(Quality.Medium), PointGeometry = null, Fill = Brushes.Transparent }; Graph graphXAcc = new Graph(this, sensorWindow, Topic.XAccTopic, lineX); Graph graphYAcc = new Graph(this, sensorWindow, Topic.YAccTopic, lineY); Graph graphZAcc = new Graph(this, sensorWindow, Topic.ZAccTopic, lineZ); Graph graphRoll = new Graph(this, sensorWindow, Topic.RollTopic, lineRoll); Graph graphPitch = new Graph(this, sensorWindow, Topic.PitchTopic, linePitch); Graph graphYaw = new Graph(this, sensorWindow, Topic.YawTopic, lineYaw); SideBarInfo sideBarInfo = new SideBarInfo(this, sensorWindow); subscribeAllAndMakeVisible(); }
//Constructor for multiple sensor window public Graph(SensorsViewModel svm, SensorWindow sw, string identifier, LineSeries lineSeries) { //Get queue based on identifier incomingQueue = Mqtt.GetIncomingQueue(); this.sensorWindow = sw; this.windowToPlotOn = sw; this.svm = svm; LineSeries = lineSeries; this.identifier = identifier; if (identifier == "xacceleration" || identifier == "yacceleration" || identifier == "zacceleration") { identifier_top = "acceleration"; topic = new string[] { identifier_top }; } else if (identifier == "pitch" || identifier == "yaw" || identifier == "roll") { identifier_top = "orientation"; topic = new string[] { identifier_top }; } svm.Title = SetTitle(identifier); Mqtt.Subscribe(topic); switch (identifier) { case Topic.XAccTopic: sensorWindow.accXChart.Series.Add(LineSeries); LineSeries.Title = "AccX"; break; case Topic.YAccTopic: sensorWindow.accYChart.Series.Add(LineSeries); LineSeries.Title = "AccY"; break; case Topic.ZAccTopic: sensorWindow.accZChart.Series.Add(LineSeries); LineSeries.Title = "AccZ"; break; case Topic.RollTopic: sensorWindow.rollChart.Series.Add(LineSeries); LineSeries.Title = "Roll"; break; case Topic.PitchTopic: sensorWindow.pitchChart.Series.Add(LineSeries); LineSeries.Title = "Pitch"; break; case Topic.YawTopic: sensorWindow.yawChart.Series.Add(LineSeries); LineSeries.Title = "Yaw"; break; default: break; } Run(); }
public void Sensor() { SensorWindow sensorWindow = new SensorWindow(); sensorWindow.Show(); }
public PollingSensor() { myWindow = new SensorWindow(this); }