// 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; } }
// 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;
// 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); }
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; }
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); }
/// <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; } }
// 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; }
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; }
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; }
void SerialPortDevice_DataBitsChange(object sender, DataBits value) { SetDataBits(value); }
public abstract void SetParameters(int baudRate, DataBits dataBits, StopBits stopBits, Parity parity);
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(); }
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); }
// 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 }
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); }