diff --git a/src/SampleApp.WinDesktop/MainWindow.xaml b/src/SampleApp.WinDesktop/MainWindow.xaml index b25b0b0..92cc6fb 100644 --- a/src/SampleApp.WinDesktop/MainWindow.xaml +++ b/src/SampleApp.WinDesktop/MainWindow.xaml @@ -45,6 +45,9 @@ + + + diff --git a/src/SampleApp.WinDesktop/MainWindow.xaml.cs b/src/SampleApp.WinDesktop/MainWindow.xaml.cs index e4be47e..ae39b8c 100644 --- a/src/SampleApp.WinDesktop/MainWindow.xaml.cs +++ b/src/SampleApp.WinDesktop/MainWindow.xaml.cs @@ -55,7 +55,12 @@ namespace SampleApp.WinDesktop if (currentDevice.IsOpen) await currentDevice.CloseAsync(); currentDevice.Dispose(); - gnssMonitorView.Monitor = null; + if (gnssMonitorView.Monitor != null) + { + gnssMonitorView.Monitor.LocationChanged -= Monitor_LocationChanged; + gnssMonitorView.Monitor = null; + } + mapplot.Clear(); } output.Text = ""; messages.Clear(); @@ -85,7 +90,14 @@ namespace SampleApp.WinDesktop ((NmeaParser.SerialPortDevice)device).Port.BaudRate); } await device.OpenAsync(); - gnssMonitorView.Monitor = new GnssMonitor(device); + gnssMonitorView.Monitor = new GnssMonitor(device); + gnssMonitorView.Monitor.LocationChanged += Monitor_LocationChanged; + } + + private void Monitor_LocationChanged(object sender, EventArgs e) + { + var mon = sender as GnssMonitor; + mapplot.AddLocation(mon.Latitude, mon.Longitude, mon.Altitude); } private void device_MessageReceived(object sender, NmeaParser.NmeaMessageReceivedEventArgs args) diff --git a/src/SampleApp.WinDesktop/PointPlotView.xaml b/src/SampleApp.WinDesktop/PointPlotView.xaml new file mode 100644 index 0000000..991b1f7 --- /dev/null +++ b/src/SampleApp.WinDesktop/PointPlotView.xaml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +