public async Task <bool> Connect(CancellationToken token) { if ((currentDevice != null) || (baudRate == 0)) { return(false); // disconenct first } try { var device = new NmeaParser.SerialPortDevice(new System.IO.Ports.SerialPort(portName, baudRate)); currentDevice = device; device.MessageReceived += Device_MessageReceived; fixTimer = new System.Timers.Timer(4000); // try for 4 secs fixTimer.Elapsed += OnFixTimedEvent; fixTimer.AutoReset = false; fixTimer.Enabled = true; gotGPSFix = new TaskCompletionSource <bool>(); connected = true; await device.OpenAsync(); Notification.ShowSuccess(Locale.Loc.Instance["LblGPSConnected"] + " " + portName); return(await gotGPSFix.Task); } catch (System.Exception ex) { Logger.Error(ex); Notification.ShowError(Locale.Loc.Instance["LblGPSConnectFail"] + " " + portName); return(false); } }
//Creates a serial port device from the selected settings private void ConnectToSerialButton_Click(object sender, RoutedEventArgs e) { var portName = serialPorts.Text as string; var baudRate = int.Parse(baudRates.Text); var device = new NmeaParser.SerialPortDevice(new System.IO.Ports.SerialPort(portName, baudRate)); StartDevice(device); }
//Creates a serial port device from the selected settings private void ConnectToSerialButton_Click(object sender, RoutedEventArgs e) { try { var portName = serialPorts.Text as string; var baudRate = int.Parse(baudRates.Text); var device = new NmeaParser.SerialPortDevice(new System.IO.Ports.SerialPort(portName, baudRate)); StartDevice(device); } catch (System.Exception ex) { MessageBox.Show("Error connecting: " + ex.Message); } }