private void ExecuteRefreshAvailableCOMPortsCommand() { AvailableComPorts.Clear(); foreach (var item in _serialPortManager.AvailablePorts) { AvailableComPorts.Add(item); } }
/// <summary> /// Verbindet den COM-Port /// </summary> private void ConnectPort() { #region richtigen COM-Port ermitteln if (AvailableComPorts.Count < 1) { OnRaiseGsmSystemEvent(new GsmEventArgs(11011512, "Es sind keine COM-Ports vorhanden")); } if (!AvailableComPorts.Contains(CurrentComPortName)) { CurrentComPortName = AvailableComPorts.LastOrDefault(); } #endregion OnRaiseGsmSystemEvent(new GsmEventArgs(11051108, string.Format("Öffne Port {0}...", CurrentComPortName))); #region Wenn Port bereits vebunden ist, trennen if (Port != null && Port.IsOpen) { ClosePort(); } #endregion #region Verbinde ComPort receiveNow = new AutoResetEvent(false); SerialPort port = new SerialPort(); try { port.PortName = CurrentComPortName; //COM1 port.BaudRate = Properties.Settings.Default.Baudrate; //9600 port.DataBits = Properties.Settings.Default.DataBits; //8 port.StopBits = StopBits.One; //1 port.Parity = Parity.None; //None port.ReadTimeout = 300; //300 port.WriteTimeout = 300; //300 port.Encoding = Encoding.GetEncoding("iso-8859-1"); port.DataReceived += new SerialDataReceivedEventHandler(Port_DataReceived); port.Open(); port.DtrEnable = true; port.RtsEnable = true; } catch (Exception ex) { OnRaiseGsmSystemEvent(new GsmEventArgs(11011514, string.Format("COM-Port {0} konnte nicht verbunden werden. \r\n{1}\r\n{2}", CurrentComPortName, ex.GetType(), ex.Message))); } Port = port; #endregion }
public void LoadAvailableComPorts() { string[] ports = SerialPort.GetPortNames(); var autoPort = (from p in ports where !p.Contains("COM1") select p); if (autoPort.Count() != 0) { SelectedComPort = autoPort.Last(); } foreach (var p in ports) { AvailableComPorts.Add(p); } }