// set the comm parms ... can only be done if port is not open -- silently fails if port is open (fixme -- add some error checking) 
		// 
		public void setCommParms(int baudrate, Parity p, DataBits data, StopBits stop, HandshakeBits h)  
		{ 
			if ( commPort.IsOpen ) return; // bail out if it's already open 
			
			commPort.BaudRate = baudrate; 
			
			switch ( p ) 
			{ 
				case Parity.NONE: 
					commPort.Parity = System.IO.Ports.Parity.None; 
					break; 
				case Parity.ODD:
                    commPort.Parity = System.IO.Ports.Parity.Odd; 
					break; 
				case Parity.EVEN:
                    commPort.Parity = System.IO.Ports.Parity.Even; 
					break; 
				case Parity.MARK:
                    commPort.Parity = System.IO.Ports.Parity.Mark; 
					break; 
				case Parity.SPACE:
                    commPort.Parity = System.IO.Ports.Parity.Space; 
					break; 
				default:
                    commPort.Parity = System.IO.Ports.Parity.None; 
					break; 
			}
									
			switch ( stop ) 
			{
				case StopBits.ONE:
                    commPort.StopBits = System.IO.Ports.StopBits.One;  
					break; 
				case StopBits.ONE_AND_HALF:
                    commPort.StopBits = System.IO.Ports.StopBits.OnePointFive; 
					break; 
				case StopBits.TWO:
                    commPort.StopBits = System.IO.Ports.StopBits.Two; 
					break; 
				default:
                    commPort.StopBits = System.IO.Ports.StopBits.One; 
					break; 
			}
			
			switch ( data ) 
			{
				case DataBits.EIGHT: 
					commPort.DataBits = 8; 
					break;
				case DataBits.SEVEN:
					commPort.DataBits = 7; 
					break; 
				case DataBits.SIX: 
					commPort.DataBits = 6; 
					break; 
				default: 
					commPort.DataBits = 8; 
					break; 
			}

            switch (h)
            {
                case HandshakeBits.RTS:
                    commPort.Handshake = Handshake.RequestToSend;
                    break;

                case HandshakeBits.XOnXOff:
                    commPort.Handshake = Handshake.XOnXOff;
                    break;

                case HandshakeBits.None:
                    commPort.Handshake = Handshake.None;
                    break;
            }
		}
Example #2
0
        // set the comm parms ... can only be done if port is not open -- silently fails if port is open (fixme -- add some error checking)
        //
        public void setCommParms(int baudrate, Parity p, DataBits data, StopBits stop)
        {
            if (commPort.IsOpen)
            {
                return;                                // bail out if it's already open
            }
            commPort.BaudRate = baudrate;

            switch (p)
            {
            case Parity.NONE:
                commPort.Parity = SerialPorts.Parity.None;
                break;

            case Parity.ODD:
                commPort.Parity = SerialPorts.Parity.Odd;
                break;

            case Parity.EVEN:
                commPort.Parity = SerialPorts.Parity.Even;
                break;

            case Parity.MARK:
                commPort.Parity = SerialPorts.Parity.Mark;
                break;

            case Parity.SPACE:
                commPort.Parity = SerialPorts.Parity.Space;
                break;

            default:
                commPort.Parity = SerialPorts.Parity.None;
                break;
            }

            switch (stop)
            {
            case StopBits.ONE:
                commPort.StopBits = SerialPorts.StopBits.One;
                break;

            case StopBits.ONE_AND_HALF:
                commPort.StopBits = SerialPorts.StopBits.OnePointFive;
                break;

            case StopBits.TWO:
                commPort.StopBits = SerialPorts.StopBits.Two;
                break;

            default:
                commPort.StopBits = SerialPorts.StopBits.One;
                break;
            }

            switch (data)
            {
            case DataBits.EIGHT:
                commPort.DataBits = 8;
                break;

            case DataBits.SEVEN:
                commPort.DataBits = 7;
                break;

            case DataBits.SIX:
                commPort.DataBits = 6;
                break;

            default:
                commPort.DataBits = 8;
                break;
            }
        }
 /// <summary>
 /// Sets the serial port options.
 /// </summary>
 /// <param name="portName">Portname.</param>
 /// <param name="baudRate">Baudrate.</param>
 /// <param name="stopBits">Stopbits.</param>
 /// <param name="parity">Parity.</param>
 /// <param name="dataBits">Databits.</param>
 public void SetPort(string portName, int baudRate = 115200, StopBits stopBits = StopBits.One, Parity parity = Parity.None, DataBits dataBits = DataBits.Eight)
 {
     if (_portName != portName || _baudRate != baudRate || stopBits != _stopBits || parity != _parity || dataBits != _dataBits)
     {
         // Change Parameters request
         // Take into account immediately the new connection parameters
         // (do not use the ConnectionWatcher, otherwise strange things will occurs !)
         _portName = portName;
         _baudRate = baudRate;
         _stopBits = stopBits;
         _parity   = parity;
         _dataBits = dataBits;
         if (IsConnected)
         {
             Connect();      // Take into account immediately the new connection parameters
         }
         LogDebug(string.Format("Port parameters changed (port name {0} / baudrate {1} / stopbits {2} / parity {3} / databits {4})", portName, baudRate, stopBits, parity, dataBits));
     }
 }
 public override void SetParameters(int baudRate, DataBits dataBits, StopBits stopBits, Parity parity) => BaudRate = baudRate;
Example #5
0
		// set the comm parms ... can only be done if port is not open -- silently fails if port is open (fixme -- add some error checking) 
		// 
		public void setCommParms(int baudrate, Parity p, DataBits data, StopBits stop)  
		{ 
			if ( commPort.IsOpen ) return; // bail out if it's already open 
			
			commPort.BaudRate = baudrate; 
			
			switch ( p ) 
			{ 
				case Parity.NONE: 
					commPort.Parity = SerialPorts.Parity.None; 
					break; 
				case Parity.ODD: 
					commPort.Parity = SerialPorts.Parity.Odd; 
					break; 
				case Parity.EVEN:
					commPort.Parity = SerialPorts.Parity.Even; 
					break; 
				case Parity.MARK: 
					commPort.Parity = SerialPorts.Parity.Mark; 
					break; 
				case Parity.SPACE:
					commPort.Parity = SerialPorts.Parity.Space; 
					break; 
				default: 
					commPort.Parity = SerialPorts.Parity.None; 
					break; 
			}
									
			switch ( stop ) 
			{
				case StopBits.ONE: 
					commPort.StopBits = SerialPorts.StopBits.One;  
					break; 
				case StopBits.ONE_AND_HALF: 
					commPort.StopBits = SerialPorts.StopBits.OnePointFive; 
					break; 
				case StopBits.TWO: 
					commPort.StopBits = SerialPorts.StopBits.Two; 
					break; 
				default: 
					commPort.StopBits = SerialPorts.StopBits.One; 
					break; 
			}
			
			switch ( data ) 
			{
				case DataBits.EIGHT: 
					commPort.DataBits = 8; 
					break;
				case DataBits.SEVEN:
					commPort.DataBits = 7; 
					break; 
				case DataBits.SIX: 
					commPort.DataBits = 6; 
					break; 
				default: 
					commPort.DataBits = 8; 
					break; 
			}			
		}
        // set the comm parms ... can only be done if port is not open -- silently fails if port is open (fixme -- add some error checking)
        //
        public void setCommParms(int baudrate, Parity p, DataBits data, StopBits stop)
        {
            if (commPort.Opened)
            {
                return;                                // bail out if it's already open
            }
            if (commPort.isVirtualPort)
            {
                return;                                       // bail out -- makes no sense for mixw virt port
            }
            commPort.BaudRate = baudrate;
            byte parity_as_int;

            switch (p)
            {
            case Parity.NONE:
                parity_as_int = 0;
                break;

            case Parity.ODD:
                parity_as_int = 1;
                break;

            case Parity.EVEN:
                parity_as_int = 2;
                break;

            case Parity.MARK:
                parity_as_int = 3;
                break;

            case Parity.SPACE:
                parity_as_int = 4;
                break;

            default:
                parity_as_int = 0;
                break;
            }
            commPort.Parity = parity_as_int;
            byte data_bits_as_int;

            switch (data)
            {
            case DataBits.EIGHT:
                data_bits_as_int = 8;
                break;

            case DataBits.SEVEN:
                data_bits_as_int = 7;
                break;

            case DataBits.SIX:
                data_bits_as_int = 6;
                break;

            default:
                data_bits_as_int = 8;
                break;
            }
            commPort.ByteSize = data_bits_as_int;
            byte stop_bits_as_int;

            switch (stop)
            {
            case StopBits.ONE:
                stop_bits_as_int = 0;
                break;

            case StopBits.ONE_AND_HALF:
                stop_bits_as_int = 1;
                break;

            case StopBits.TWO:
                stop_bits_as_int = 2;
                break;

            default:
                stop_bits_as_int = 0;
                break;
            }
            commPort.StopBits = stop_bits_as_int;
        }
        public void SetPort(int PortIndex = 1, int Baud = 9600, DataBits db = DataBits.Eight, StopBits sb = StopBits.One, Parity parity = Parity.None)
        {
            //检验位
            int nParity = P_NONE;

            switch (parity)
            {
            case Parity.None:
                nParity = P_NONE;
                break;

            case Parity.Even:
                nParity = P_EVEN;
                break;

            case Parity.Mark:
                nParity = P_MRK;
                break;

            case Parity.Odd:
                nParity = P_ODD;
                break;

            case Parity.Space:
                nParity = P_SPC;
                break;
            }
            //停止位
            int nStopbits = STOP_1;

            switch (sb)
            {
            case StopBits.One:
                nParity = STOP_1;
                break;

            case StopBits.Two:
                nParity = STOP_2;
                break;
            }
            //数据位
            int nDatabits = BIT_8;

            switch (db)
            {
            case DataBits.Five:
                nDatabits = BIT_5;
                break;

            case DataBits.Six:
                nParity = BIT_6;
                break;

            case DataBits.Seven:
                nParity = BIT_7;
                break;

            case DataBits.Eight:
                nParity = BIT_8;
                break;
            }

            sio_ioctl(PortIndex, (int)((BaudRate)Enum.Parse(typeof(BaudRate), "B" + Baud)), nParity | nDatabits | nStopbits);
        }
Example #8
0
 public Serial(SerialPortNames portName, BaudRate baudRate, int retry, int timeOut, DataBits dataBits,
               Parity parity, StopBits stopBit, bool autoDetectComParams)
     : base(retry, timeOut)
 {
     m_SerialPortNames     = portName;
     m_serialPort.BaudRate = (int)baudRate;
     m_serialPort.DataBits = (int)dataBits;
     m_serialPort.Parity   = parity;
     m_serialPort.StopBits = stopBit;
     m_AutoDetectComParams = autoDetectComParams;
 }
Example #9
0
        void SetUiParams()
        {
            if (m_spParams == null)
            {
                return;
            }
            //
            int selected = -1;

            for (int i = 0; i < cbxSerialPorts.Items.Count; i++)
            {
                string port = cbxSerialPorts.Items[i].ToString();
                if (!string.Equals(port, m_spParams.Name))
                {
                    continue;
                }
                //
                selected = i;
                break;
            }
            cbxSerialPorts.SelectedIndex = selected;
            //
            selected = -1;
            for (int i = 0; i < cbxBaudRate.Items.Count; i++)
            {
                Baudrates bdr = (Baudrates)cbxBaudRate.Items[i];
                if (bdr != m_spParams.Baudrate)
                {
                    continue;
                }
                //
                selected = i;
                break;
            }
            cbxBaudRate.SelectedIndex = selected;
            //
            selected = -1;
            for (int i = 0; i < cbxDataBits.Items.Count; i++)
            {
                DataBits db = (DataBits)cbxDataBits.Items[i];
                if (db != m_spParams.DataBits)
                {
                    continue;
                }
                //
                selected = i;
                break;
            }
            cbxDataBits.SelectedIndex = selected;
            //
            selected = -1;
            for (int i = 0; i < cbxParity.Items.Count; i++)
            {
                Parity pr = (Parity)cbxParity.Items[i];
                if (pr != m_spParams.Parity)
                {
                    continue;
                }
                //
                selected = i;
                break;
            }
            cbxParity.SelectedIndex = selected;
            //
            selected = -1;
            for (int i = 0; i < cbxStopBits.Items.Count; i++)
            {
                StopBits pr = (StopBits)cbxStopBits.Items[i];
                if (pr != m_spParams.StopBits)
                {
                    continue;
                }
                //
                selected = i;
                break;
            }
            cbxStopBits.SelectedIndex = selected;
            //
            selected = -1;
            for (int i = 0; i < cbxHandshake.Items.Count; i++)
            {
                Handshake hs = (Handshake)cbxHandshake.Items[i];
                if (hs != m_spParams.Handshake)
                {
                    continue;
                }
                //
                selected = i;
                break;
            }
            cbxHandshake.SelectedIndex = selected;
            //
        }
        public void SetPort(string PortName = "COM1", int Baud = 9600, DataBits db = DataBits.Eight, StopBits sb = StopBits.One, Parity parity = Parity.None)
        {
            //端口号
            int nPort = Convert.ToInt32(PortName.Substring(3));
            //检验位
            int nParity = P_NONE;

            switch (parity)
            {
            case Parity.None:
                nParity = P_NONE;
                break;

            case Parity.Even:
                nParity = P_EVEN;
                break;

            case Parity.Mark:
                nParity = P_MRK;
                break;

            case Parity.Odd:
                nParity = P_ODD;
                break;

            case Parity.Space:
                nParity = P_SPC;
                break;
            }
            //停止位
            int nStopbits = STOP_1;

            switch (sb)
            {
            case StopBits.One:
                nParity = STOP_1;
                break;

            case StopBits.Two:
                nParity = STOP_2;
                break;
            }
            //数据位
            int nDatabits = BIT_8;

            switch (db)
            {
            case DataBits.Five:
                nDatabits = BIT_5;
                break;

            case DataBits.Six:
                nParity = BIT_6;
                break;

            case DataBits.Seven:
                nParity = BIT_7;
                break;

            case DataBits.Eight:
                nParity = BIT_8;
                break;
            }

            sio_ioctl(nPort, Baud, nParity | nDatabits | nStopbits);
        }
Example #11
0
 /// <summary>
 /// 设置模块串口信息的命令
 /// </summary>
 /// <param name="baud">波特率</param>
 /// <param name="dataBit">数据位</param>
 /// <param name="stopBit">停止位</param>
 /// <param name="parityBit">校验位</param>
 /// <returns></returns>
 public Byte[] SettingModuleSerialInfoCommand(UInt32 baud, DataBits dataBit, StopBits stopBit, Parity parityBit)
 {
     return GetDatagram(MessageId.Multifunction,
         new List<Parameter>{
             new Parameter(ParameterType.SerialBaud, baud.ToByteArray(3)),
             new Parameter(ParameterType.SerialDataBit, (Byte)dataBit),
             new Parameter(ParameterType.SerialStopBit, (Byte)stopBit),
             new Parameter(ParameterType.SerialParityBit,(Byte)parityBit)
         });
 }
 public MySerialPort(string PortName, BaudRate BaudRate, Parity Parity, DataBits DataBits, StopBits StopBits)
     : base(PortName, (int)BaudRate, Parity, (int)DataBits, StopBits)
 {
 }
		// set the comm parms ... can only be done if port is not open -- silently fails if port is open (fixme -- add some error checking) 
		// 
		public void setCommParms(int baudrate, Parity p, DataBits data, StopBits stop)  
		{ 
			if ( commPort.IsOpen ) return; // bail out if it's already open 
			
			commPort.BaudRate = baudrate;
            commPort.Parity = p;
            commPort.StopBits = stop;						
			
			switch ( data ) 
			{
				case DataBits.EIGHT: 
					commPort.DataBits = 8; 
					break;
				case DataBits.SEVEN:
					commPort.DataBits = 7; 
					break; 
				case DataBits.SIX: 
					commPort.DataBits = 6; 
					break; 
				default: 
					commPort.DataBits = 8; 
					break; 
			}			
		}
Example #14
0
        // set the comm parms ... can only be done if port is not open -- silently fails if port is open (fixme -- add some error checking)
        //
        public void setCommParms(int baudrate, Parity p, DataBits data, StopBits stop, HandshakeBits h)
        {
            if (commPort.IsOpen)
            {
                return;                                // bail out if it's already open
            }
            commPort.BaudRate = baudrate;

            switch (p)
            {
            case Parity.NONE:
                commPort.Parity = System.IO.Ports.Parity.None;
                break;

            case Parity.ODD:
                commPort.Parity = System.IO.Ports.Parity.Odd;
                break;

            case Parity.EVEN:
                commPort.Parity = System.IO.Ports.Parity.Even;
                break;

            case Parity.MARK:
                commPort.Parity = System.IO.Ports.Parity.Mark;
                break;

            case Parity.SPACE:
                commPort.Parity = System.IO.Ports.Parity.Space;
                break;

            default:
                commPort.Parity = System.IO.Ports.Parity.None;
                break;
            }

            switch (stop)
            {
            case StopBits.ONE:
                commPort.StopBits = System.IO.Ports.StopBits.One;
                break;

            case StopBits.ONE_AND_HALF:
                commPort.StopBits = System.IO.Ports.StopBits.OnePointFive;
                break;

            case StopBits.TWO:
                commPort.StopBits = System.IO.Ports.StopBits.Two;
                break;

            default:
                commPort.StopBits = System.IO.Ports.StopBits.One;
                break;
            }

            switch (data)
            {
            case DataBits.EIGHT:
                commPort.DataBits = 8;
                break;

            case DataBits.SEVEN:
                commPort.DataBits = 7;
                break;

            case DataBits.SIX:
                commPort.DataBits = 6;
                break;

            default:
                commPort.DataBits = 8;
                break;
            }

            switch (h)
            {
            case HandshakeBits.RTS:
                commPort.Handshake = Handshake.RequestToSend;
                break;

            case HandshakeBits.XOnXOff:
                commPort.Handshake = Handshake.XOnXOff;
                break;

            case HandshakeBits.None:
                commPort.Handshake = Handshake.None;
                break;
            }
        }
        public override void SetParameters(int baudRate, DataBits dataBits, StopBits stopBits, Parity parity)
        {
            if ((mBaudRate == baudRate) && (mDataBits == (int)dataBits) &&
                (mStopBits == (int)stopBits) && (mParity == (int)parity))
            {
                // Make sure no action is performed if there is nothing to change
                return;
            }

            byte[] lineRequestData = new byte[7];

            lineRequestData[0] = (byte)(baudRate & 0xff);
            lineRequestData[1] = (byte)((baudRate >> 8) & 0xff);
            lineRequestData[2] = (byte)((baudRate >> 16) & 0xff);
            lineRequestData[3] = (byte)((baudRate >> 24) & 0xff);

            switch (stopBits)
            {
            case StopBits._1:
                lineRequestData[4] = 0;
                break;

            case StopBits._1_5:
                lineRequestData[4] = 1;
                break;

            case StopBits._2:
                lineRequestData[4] = 2;
                break;

            default:
                throw new IllegalArgumentException("Unknown stopBits value: " + stopBits);
            }

            switch (parity)
            {
            case Parity.None:
                lineRequestData[5] = 0;
                break;

            case Parity.Odd:
                lineRequestData[5] = 1;
                break;

            case Parity.Even:
                lineRequestData[5] = 2;
                break;

            case Parity.Mark:
                lineRequestData[5] = 3;
                break;

            case Parity.Space:
                lineRequestData[5] = 4;
                break;

            default:
                throw new IllegalArgumentException("Unknown parity value: " + parity);
            }

            lineRequestData[6] = (byte)dataBits;

            CtrlOut(SET_LINE_REQUEST, 0, 0, lineRequestData);

            ResetDevice();

            mBaudRate = baudRate;
            mDataBits = (int)dataBits;
            mStopBits = (int)stopBits;
            mParity   = (int)parity;
        }
Example #16
0
 public Serial(SerialPortNames portName, BaudRate baudRate, int retry, int timeOut, DataBits dataBits,
               Parity parity, StopBits stopBit)
     : base(retry, timeOut)
 {
     m_SerialPortNames     = portName;
     m_serialPort.BaudRate = (int)baudRate;
     m_serialPort.DataBits = (int)dataBits;
     m_serialPort.Parity   = parity;
     m_serialPort.StopBits = stopBit;
 }
		// set the comm parms ... can only be done if port is not open -- silently fails if port is open (fixme -- add some error checking) 
		// 
		public void setCommParms(int baudrate, Parity p, DataBits data, StopBits stop)  
		{ 
			if ( commPort.Opened ) return; // bail out if it's already open 
			if ( commPort.isVirtualPort ) return; // bail out -- makes no sense for mixw virt port 

			commPort.BaudRate = baudrate; 
			byte parity_as_int; 
			switch ( p ) 
			{ 
				case Parity.NONE: 
					parity_as_int = 0; 
					break; 
				case Parity.ODD: 
					parity_as_int = 1; 
					break; 
				case Parity.EVEN:
					parity_as_int = 2; 
					break; 
				case Parity.MARK: 
					parity_as_int = 3; 
					break; 
				case Parity.SPACE:
					parity_as_int = 4; 
					break; 
				default: 
					parity_as_int = 0; 
					break; 
			}
			commPort.Parity = parity_as_int; 
			byte data_bits_as_int; 
			switch ( data ) 
			{
				case DataBits.EIGHT: 
					data_bits_as_int = 8; 
					break;
				case DataBits.SEVEN:
					data_bits_as_int = 7; 
					break; 
				case DataBits.SIX: 
					data_bits_as_int = 6; 
					break; 
				default: 
					data_bits_as_int = 8; 
					break; 
			}
			commPort.ByteSize = data_bits_as_int; 
			byte stop_bits_as_int; 
			switch ( stop ) 
			{
				case StopBits.ONE: 
					stop_bits_as_int = 0; 
					break; 
				case StopBits.ONE_AND_HALF: 
					stop_bits_as_int = 1; 
					break; 
				case StopBits.TWO: 
					stop_bits_as_int = 2; 
					break; 
				default: 
					stop_bits_as_int = 0; 
					break; 
			}
			commPort.StopBits = stop_bits_as_int; 
		}
Example #18
0
        public override void SetParameters(int baudRate, DataBits dataBits, StopBits stopBits, Parity parity)
        {
            if ((_baudRate == baudRate) && (_dataBits == dataBits) && (_stopBits == stopBits) && (_parity == parity))
            {
                return;
            }

            byte[] lineRequestData = new byte[7];

            lineRequestData[0] = unchecked ((byte)(baudRate & 0xff));
            lineRequestData[1] = unchecked ((byte)((baudRate >> 8) & 0xff));
            lineRequestData[2] = unchecked ((byte)((baudRate >> 16) & 0xff));
            lineRequestData[3] = unchecked ((byte)((baudRate >> 24) & 0xff));

            switch (stopBits)
            {
            case StopBits.One:
                lineRequestData[4] = 0;
                break;

            case StopBits.OnePointFive:
                lineRequestData[4] = 1;
                break;

            case StopBits.Two:
                lineRequestData[4] = 2;
                break;

            default:
                throw new ArgumentException($"Unknown stopBits value: {stopBits}");
            }

            switch (parity)
            {
            case Parity.None:
                lineRequestData[5] = 0;
                break;

            case Parity.Odd:
                lineRequestData[5] = 1;
                break;

            case Parity.Even:
                lineRequestData[5] = 2;
                break;

            case Parity.Mark:
                lineRequestData[5] = 3;
                break;

            case Parity.Space:
                lineRequestData[5] = 4;
                break;

            default:
                throw new ArgumentException($"Unknown parity value: {parity}");
            }

            lineRequestData[6] = (byte)dataBits;

            CtrlOut(SET_LINE_REQUEST, 0, 0, lineRequestData);

            ResetDevice();

            _baudRate = baudRate;
            _dataBits = dataBits;
            _stopBits = stopBits;
            _parity   = parity;
        }
Example #19
0
 void SerialPortDevice_DataBitsChange(object sender, DataBits value)
 {
     SetDataBits(value);
 }
Example #20
0
 public abstract void SetParameters(int baudRate, DataBits dataBits, StopBits stopBits, Parity parity);
 public MySerialPort(string PortName, BaudRate BaudRate, Parity Parity, DataBits DataBits, StopBits StopBits)
     : base(PortName, (int)BaudRate, Parity, (int)DataBits, StopBits)
 {
 }
Example #22
0
        public Serial(COMPorts port, DataBits dataBits, ParityBits parityBits, StopBits stopBits, BaudRates baudRate, Interrupts interrupts)
        {
            this.port = port;
            this.dataBits = dataBits;
            this.parityBits = parityBits;
            this.stopBits = stopBits;
            this.baudRate = baudRate;
            this.interrupts = interrupts;

            Init();
        }
Example #23
0
 public SerialPort(string portName, BaudRate baudRate, Parity parity, DataBits dataBits, StopBits stopBits, Handshake handshake)
     : base(portName, (int)baudRate, (_Parity)parity, (int)dataBits, (_StopBits)stopBits)
 {
     this.Handshake = (_Handshake)handshake;
 }
 /// <summary>
 /// Sets the serial port options.
 /// </summary>
 /// <param name="portName">Portname.</param>
 /// <param name="baudRate">Baudrate.</param>
 /// <param name="stopBits">Stopbits.</param>
 /// <param name="parity">Parity.</param>
 /// <param name="dataBits">Databits.</param>
 public void SetPort(string portName, int baudRate = 115200, StopBits stopBits = StopBits.One, Parity parity = Parity.None, DataBits dataBits = DataBits.Eight)
 {
     if (_portName != portName)
     {
         // set to error so that the connection watcher will reconnect
         // using the new port
         gotReadWriteError = true;
     }
     _portName = portName;
     _baudRate = baudRate;
     _stopBits = stopBits;
     _parity   = parity;
     _dataBits = dataBits;
 }
        public override void SetParameters(int baudRate, DataBits dataBits, StopBits stopBits, Parity parity)
        {
            byte stopBitsByte;

            switch (stopBits)
            {
            case StopBits.One:
                stopBitsByte = 0;
                break;

            case StopBits.OnePointFive:
                stopBitsByte = 1;
                break;

            case StopBits.Two:
                stopBitsByte = 2;
                break;

            default:
                throw new ArgumentException("Bad value for stopBits: " + stopBits);
            }

            byte parityBitesByte;

            switch (parity)
            {
            case Parity.None:
                parityBitesByte = 0;
                break;

            case Parity.Odd:
                parityBitesByte = 1;
                break;

            case Parity.Even:
                parityBitesByte = 2;
                break;

            case Parity.Mark:
                parityBitesByte = 3;
                break;

            case Parity.Space:
                parityBitesByte = 4;
                break;

            default:
                throw new ArgumentException("Bad value for parity: " + parity);
            }

            byte[] msg =
            {
                unchecked ((byte)(baudRate & 0xff)),
                unchecked ((byte)((baudRate >> 8) & 0xff)),
                unchecked ((byte)((baudRate >> 16) & 0xff)),
                unchecked ((byte)((baudRate >> 24) & 0xff)),
                stopBitsByte,
                parityBitesByte,
                (byte)dataBits
            };
            SendAcmControlMessage(SET_LINE_CODING, 0, msg);
        }
Example #26
0
        // private Stream theBaseStream;

        public SafeSerialPort(string portName, BaudRates baudRate, DataBits dataBits, Parity parity, StopBits stopBits)
            : base(portName, (int)baudRate, parity, (int)dataBits, stopBits)
        {
            // SerialPort.DataBits
        }
Example #27
0
 public EasySerialPort Setup(string portname, BaudRate baudrate = BaudRate.BR_115200, DataBits dataBits = DataBits.DB_8, StopBits stopbits = StopBits.One, Parity parity = Parity.None)
 {
     this.PortName = portname;
     this.BaudRate = baudrate;
     this.DataBits = dataBits;
     this.StopBits = stopbits;
     this.Parity   = parity;
     return(this);
 }