Exemplo n.º 1
0
 /// <summary>
 /// Create SerialPort with specified underlying stream/streamCtrl objects.
 /// </summary>
 /// <param name="stream"></param>
 /// <param name="streamCtrl"></param>
 public SerialPort(Stream stream, ISerialStreamCtrl streamCtrl)
 {
     _isUserProvidedStream = true;
     _stream                      = stream;
     _streamCtrl                  = streamCtrl;
     _streamCtrl.ErrorEvent      += new SerialErrorEventHandler(ForwardErrorEvents);
     _streamCtrl.PinChangedEvent += new SerialPinChangedEventHandler(ForwardPinChangedEvents);
     _streamCtrl.ReceivedEvent   += new SerialReceivedEventHandler(ForwardReceivedEvents);
 }
Exemplo n.º 2
0
 /// <summary>
 /// Closes the port connection, sets to false and disposes of the internal Stream object.
 /// </summary>
 public void Close()
 {
     if( IsOpen )
     {
         _stream.Flush();
         _stream.Close();
         _stream = null;
         _streamCtrl = null;
     }
 }
Exemplo n.º 3
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);
            }
        }
Exemplo n.º 4
0
 /// <summary>
 /// Create SerialPort with specified underlying stream/streamCtrl objects.
 /// </summary>
 /// <param name="stream"></param>
 /// <param name="streamCtrl"></param>
 public SerialPort( Stream stream, ISerialStreamCtrl streamCtrl )
 {
     _isUserProvidedStream		= true;
     _stream						= stream;
     _streamCtrl					= streamCtrl;
     _streamCtrl.ErrorEvent		+= new SerialErrorEventHandler(ForwardErrorEvents);
     _streamCtrl.PinChangedEvent += new SerialPinChangedEventHandler(ForwardPinChangedEvents);
     _streamCtrl.ReceivedEvent	+= new SerialReceivedEventHandler(ForwardReceivedEvents);
 }