private void ConnectDisconnect()
        {
            if (_port != null && _port.IsOpen)
            {
                _port.Close();
                _port.Dispose();
                _nmea.Dispose();

                _port = null;
                _nmea = null;

                ButtonText = "Connect";
                StatusText = "Not Connected.";
            }
            else
            {
                try
                {
                    _port = new SerialPort(Port, Baud);
                    _port.Open();
                    _nmea = new StreamDevice(_port.BaseStream);
                    _nmea.OpenAsync().Wait();

                    _nmea.MessageReceived += (sender, args) => { Received?.Invoke(sender, args); };
                    ButtonText             = "Disconnect";
                    StatusText             = $"Connected to {Port}";
                }
                catch (Exception e)
                {
                    StatusText = $"Not connected: {e.GetType()}";
                    _port      = null;
                    _nmea      = null;
                }
            }
        }