Example #1
0
        /// <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);
            }
        }
Example #2
0
 /// <summary>
 /// Returns a list of all serial ports.
 /// </summary>
 public static string[] GetPortNames()
 {
     // TODO: currently only supports windows
     return(WinStream.GetPortNames());
 }