/// <summary> /// Opens a new serial port connection. /// </summary> public void Open() { if (IsOpen) { throw new InvalidOperationException("Port is already open"); } if (IsUserProvidedStream) { throw new InvalidOperationException("User Provided Stream cannot be re-opened"); } if (SerialStreamSocket.IsCompatible(_portName)) { SerialStreamSocket devStream = SerialStreamSocket.CreateInstance(_portName); _stream = (Stream)devStream; _streamCtrl = (ISerialStreamCtrl)devStream; } else { WinStream devStream = new WinStream( _baudRate, _dataBits, _discardNull, _dtrEnable, _handshake, _parity, _parityReplace, _portName, _readBufferSize, _readTimeout, _receivedBytesThreshold, _rtsEnable, _stopBits, _writeBufferSize, _writeTimeout ); _stream = (Stream)devStream; _streamCtrl = (ISerialStreamCtrl)devStream; _streamCtrl.ErrorEvent += new SerialErrorEventHandler(ForwardErrorEvents); _streamCtrl.PinChangedEvent += new SerialPinChangedEventHandler(ForwardPinChangedEvents); _streamCtrl.ReceivedEvent += new SerialReceivedEventHandler(ForwardReceivedEvents); } }
/// <summary> /// Returns a list of all serial ports. /// </summary> public static string[] GetPortNames() { // TODO: currently only supports windows return(WinStream.GetPortNames()); }