private void StartButtonOnClick(object sender, RoutedEventArgs e) { try { if (XbeeTransceiver.StartCar()) { StartButton.IsEnabled = false; DisconnectButton.IsEnabled = false; SaveButton.IsEnabled = false; SpeedSlider.IsEnabled = false; MinDistanceSlider.IsEnabled = false; StopButton.IsEnabled = true; Logger.Write("Car started!"); _timer.Start(); _isStopRequested = false; } } catch (XbeeReadException ex) { Logger.Write("Failed to start the car!"); Logger.Write($"Reason: {ex.Error}"); } }
private async void OnLoaded(object sender, RoutedEventArgs e) { Logger.LogWritten += OnLogWritten; _timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(0.5) }; _timer.Tick += TimerOnTick; await Task.Delay(500); Viewport.Camera.LookDirection = new Vector3D(-2, 16, -20); Viewport.ZoomExtents(new Rect3D(0, -10, 0, 20, 20, 20), 20); var status = XbeeTransceiver.ConnectToCar(out string carName); switch (status) { case XbeeConnectStatus.Connected: CarNameTextBlock.Text = carName; break; case XbeeConnectStatus.NoXbeeFound: MessageBox.Show("Please connect the Xbee module to the PC before launching this application.", "Attention!", MessageBoxButton.OK, MessageBoxImage.Information); Application.Current.Shutdown(1); return; case XbeeConnectStatus.NoCarFound: MessageBox.Show("Please turn on the car before launching this application.", "Attention!", MessageBoxButton.OK, MessageBoxImage.Information); Application.Current.Shutdown(2); return; default: break; } try { var speed = XbeeTransceiver.GetSpeedSettings(); var minDistance = XbeeTransceiver.GetMinDistanceSettings(); SpeedSlider.Value = speed; MinDistanceSlider.Value = minDistance; StartButton.IsEnabled = true; DisconnectButton.IsEnabled = true; SaveButton.IsEnabled = true; SpeedSlider.IsEnabled = true; MinDistanceSlider.IsEnabled = true; } catch (XbeeReadException ex) { Logger.Write("Failed to get settings value from the car!"); Logger.Write($"Reason: {ex.Error}"); await ExitAsync(3); } }
private void SaveButtonOnClick(object sender, RoutedEventArgs e) { try { XbeeTransceiver.SetSpeedSettings((int)SpeedSlider.Value); XbeeTransceiver.SetMinDistanceSettings((int)MinDistanceSlider.Value); } catch (XbeeReadException ex) { Logger.Write("Failed to send settings to the car!"); Logger.Write($"Reason: {ex.Error}"); } }
private async void DisconnectButtonOnClick(object sender, RoutedEventArgs e) { try { if (XbeeTransceiver.DisconnectFromCar()) { StartButton.IsEnabled = false; StopButton.IsEnabled = false; DisconnectButton.IsEnabled = false; Logger.Write("Disconnected from car!"); await ExitAsync(0); } } catch (XbeeReadException ex) { Logger.Write("Failed to disconnect from the car!"); Logger.Write($"Reason: {ex.Error}"); } }
private async void TimerOnTick(object sender, EventArgs e) { try { _timer.Stop(); var data = XbeeTransceiver.GetMapData(); await Draw(data); } catch (XbeeReadException ex) { Logger.Write("Failed to get map data from the car!"); Logger.Write($"Reason: {ex.Error}"); } finally { if (!_isStopRequested) { _timer.Start(); } } }