Exemple #1
0
        private void btnConnect_Click(object sender, EventArgs e)
        {
            try
            {
                if (serial == null)
                {
                    try
                    {
                        string portName = this.cmbPort.Text;

                        SerialPortBaudRates baud =
                            (SerialPortBaudRates)Enum.Parse(typeof(SerialPortBaudRates), cmbBaudRate.Text);
                        SerialPortDatabit databit =
                            (SerialPortDatabit)Enum.Parse(typeof(SerialPortDatabit), cmbDataBit.Text);
                        Parity   parity   = (Parity)Enum.Parse(typeof(Parity), cmbParity.Text);
                        StopBits stopBits = (StopBits)Enum.Parse(typeof(StopBits), cmbStopBit.Text);

                        //使用枚举构造函数
                        //serial = new SerialPortUtil(portName, baud, parity, databit, stopBits);

                        //使用字符串构造函数
                        serial = new SerialPortUtil(portName, cmbBaudRate.Text, cmbParity.Text, cmbDataBit.Text, cmbStopBit.Text);
                        serial.DataReceived += serial_DataReceived;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        serial = null;
                        return;
                    }
                }

                if (!isOpen)
                {
                    //打开串口通讯
                    serial.OpenPort();
                    btnConnect.Text = "断开";

                    //m_receiveT = new Thread(Receive);
                    //m_receiveT.IsBackground = true;
                    //m_receiveT.Start();
                }
                else
                {
                    serial.ClosePort();
                    //m_receiveT.Abort();
                    btnConnect.Text = "连接";
                }

                isOpen = !isOpen;
                this.btnSend.Enabled = isOpen;
                this.labState.Text   = isOpen ? "已连接" : "未连接";
            }
            catch (Exception ex)
            {
                this.labState.Text = ex.Message;
                MessageBox.Show(ex.Message);
            }
        }
 public void SetPortParas(string name, SerialPortBaudRates baud, Parity par, SerialPortDatabits dBits, StopBits sBits)
 {
     comPort.PortName = name;
     comPort.BaudRate = int.Parse(baud.ToString());
     comPort.Parity   = par;
     comPort.DataBits = int.Parse(dBits.ToString());
     comPort.StopBits = sBits;
 }
Exemple #3
0
 /// <summary>
 /// 默认构造函数
 /// </summary>
 public SerialPortIo()
 {
     _portName = "COM1";
     _baudRate = SerialPortBaudRates.BaudRate_9600;
     _parity   = Parity.None;
     _dataBits = SerialPortDatabits.EightBits;
     _stopBits = StopBits.One;
     OpenPort();
 }
Exemple #4
0
 /// <summary>
 /// 参数构造函数(使用字符串参数构造)
 /// </summary>
 /// <param name="baud">波特率</param>
 /// <param name="par">奇偶校验位</param>
 /// <param name="sBits">停止位</param>
 /// <param name="dBits">数据位</param>
 /// <param name="name">串口号</param>
 public SerialPortIo(string name, string baud, string par, string dBits, string sBits)
 {
     _portName = name;
     _baudRate = (SerialPortBaudRates)Enum.Parse(typeof(SerialPortBaudRates), baud);
     _parity   = (Parity)Enum.Parse(typeof(Parity), par);
     _dataBits = (SerialPortDatabits)Enum.Parse(typeof(SerialPortDatabits), dBits);
     _stopBits = (StopBits)Enum.Parse(typeof(StopBits), sBits);
     OpenPort();
 }
Exemple #5
0
 /// <summary>
 /// 参数构造函数(使用枚举参数构造)
 /// </summary>
 /// <param name="baud">波特率</param>
 /// <param name="par">奇偶校验位</param>
 /// <param name="sBits">停止位</param>
 /// <param name="dBits">数据位</param>
 /// <param name="name">串口号</param>
 public SerialPortIo(string name, SerialPortBaudRates baud, Parity par, SerialPortDatabits dBits, StopBits sBits)
 {
     _portName = name;
     _baudRate = baud;
     _parity   = par;
     _dataBits = dBits;
     _stopBits = sBits;
     OpenPort();
 }
Exemple #6
0
        /// <summary>
        /// 参数构造函数(使用字符串参数构造)
        /// </summary>
        /// <param name="baud">波特率</param>
        /// <param name="par">奇偶校验位</param>
        /// <param name="sBits">停止位</param>
        /// <param name="dBits">数据位</param>
        /// <param name="name">串口号</param>
        public SerialPortUtil(string name, string baud, string par, string dBits, string sBits)
        {
            _portName = name;
            _baudRate = (SerialPortBaudRates)Enum.Parse(typeof(SerialPortBaudRates), baud);
            _parity   = (Parity)Enum.Parse(typeof(Parity), par);
            _dataBits = (SerialPortDatabits)Enum.Parse(typeof(SerialPortDatabits), dBits);
            _stopBits = (StopBits)Enum.Parse(typeof(StopBits), sBits);

            comPort.DataReceived  += new SerialDataReceivedEventHandler(comPort_DataReceived);
            comPort.ErrorReceived += new SerialErrorReceivedEventHandler(comPort_ErrorReceived);
        }
Exemple #7
0
        /// <summary>
        /// 默认构造函数
        /// </summary>
        public SerialPortUtil()
        {
            _portName = "COM1";
            _baudRate = SerialPortBaudRates.BaudRate_9600;
            _parity   = Parity.None;
            _dataBits = SerialPortDatabits.EightBits;
            _stopBits = StopBits.One;

            comPort.DataReceived  += new SerialDataReceivedEventHandler(comPort_DataReceived);
            comPort.ErrorReceived += new SerialErrorReceivedEventHandler(comPort_ErrorReceived);
        }
Exemple #8
0
        /// <summary>
        /// 参数构造函数(使用字符串参数构造)
        /// </summary>
        /// <param name="baud">波特率</param>
        /// <param name="par">奇偶校验位</param>
        /// <param name="sBits">停止位</param>
        /// <param name="dBits">数据位</param>
        /// <param name="name">串口号</param>
        public Controller(string name, string baud, string par, string dBits, string sBits)
        {
            _portName = name;
            _baudRate = (SerialPortBaudRates)Enum.Parse(typeof(SerialPortBaudRates), baud);
            _parity   = (Parity)Enum.Parse(typeof(Parity), par);
            _dataBits = (SerialPortDatabits)Enum.Parse(typeof(SerialPortDatabits), dBits);
            _stopBits = (StopBits)Enum.Parse(typeof(StopBits), sBits);

            _port.DataReceived  += DataReceived;
            _port.ErrorReceived += ErrorReceived;
        }
Exemple #9
0
        /// <summary>
        /// 参数构造函数(使用枚举参数构造)
        /// </summary>
        /// <param name="baud">波特率</param>
        /// <param name="par">奇偶校验位</param>
        /// <param name="sBits">停止位</param>
        /// <param name="dBits">数据位</param>
        /// <param name="name">串口号</param>
        public Controller(string name, SerialPortBaudRates baud, Parity par, SerialPortDatabits dBits, StopBits sBits)
        {
            _portName = name;
            _baudRate = baud;
            _parity   = par;
            _dataBits = dBits;
            _stopBits = sBits;

            _port.DataReceived  += DataReceived;
            _port.ErrorReceived += ErrorReceived;
        }
Exemple #10
0
        /// <summary>
        /// 默认构造函数
        /// </summary>
        public Controller()
        {
            _portName = "COM4";
            _baudRate = SerialPortBaudRates.BaudRate_115200;
            _parity   = Parity.None;
            _dataBits = SerialPortDatabits.EightBits;
            _stopBits = StopBits.One;

            _port.DataReceived  += DataReceived;
            _port.ErrorReceived += ErrorReceived;
        }
Exemple #11
0
        /// <summary>
        /// 参数构造函数(使用枚举参数构造)
        /// </summary>
        /// <param name="baud">波特率</param>
        /// <param name="par">奇偶校验位</param>
        /// <param name="sBits">停止位</param>
        /// <param name="dBits">数据位</param>
        /// <param name="name">串口号</param>
        public SerialPortUtil(string name, SerialPortBaudRates baud, Parity par, SerialPortDatabits dBits, StopBits sBits)
        {
            _portName = name;
            _baudRate = baud;
            _parity   = par;
            _dataBits = dBits;
            _stopBits = sBits;

            comPort.DataReceived  += new SerialDataReceivedEventHandler(comPort_DataReceived);
            comPort.ErrorReceived += new SerialErrorReceivedEventHandler(comPort_ErrorReceived);
        }
Exemple #12
0
        public static byte EndByte = 0x23;//string End = "#";
        /// <summary>
        /// 使用枚举构造
        /// </summary>
        /// <param name="frm"></param>
        /// <param name="name"></param>
        /// <param name="baud"></param>
        /// <param name="par"></param>
        /// <param name="dbits"></param>
        /// <param name="sbits"></param>
        public api(Form1 frm, string name, SerialPortBaudRates baud,
                   Parity par, SerialPortDatabits dbits, StopBits sbits)
        {
            _portName = name;
            _baudRate = baud;
            _parity   = par;
            _dataBits = dbits;
            _stopBits = sbits;
            _frm      = frm;

            _frm.serialPort1.DataReceived  += new SerialDataReceivedEventHandler(_serial_DataReceived);
            _frm.serialPort1.ErrorReceived += new SerialErrorReceivedEventHandler(_serial_Error);
        }
Exemple #13
0
        private void btnStop_Click(object sender, EventArgs e)
        {
            try
            {
                if (_serial == null)
                {
                    try
                    {
                        string portname             = this.cbox0PortName.Text;
                        SerialPortBaudRates rate    = (SerialPortBaudRates)Enum.Parse(typeof(SerialPortBaudRates), this.cbox1BaudRate.Text);
                        Parity             parity   = (Parity)Enum.Parse(typeof(Parity), cbox3Parity.Text);
                        SerialPortDatabits dataBits = (SerialPortDatabits)Enum.Parse(typeof(SerialPortDatabits), cbox2DataBits.Text);
                        StopBits           stopBits = (StopBits)Enum.Parse(typeof(StopBits), cbox4StopBits.Text);

                        _serial = new api(this, portname, this.cbox1BaudRate.Text, cbox3Parity.Text, cbox2DataBits.Text, cbox4StopBits.Text);

                        _serial.DataReceived += new DataReceivedEventHandler(_serial_DataReceived);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        _serial = null;
                        throw;
                    }

                    if (!isOpened)
                    {
                        _serial.OpenPort();
                        btnStop.Text = "断开";
                    }
                    else
                    {
                        _serial.ClosePort();
                        _serial = null;

                        btnStop.Text = "连接";
                    }

                    isOpened             = !isOpened;
                    this.btnSend.Enabled = isOpened;

                    this.lblmsg0.Text = isOpened ? "已连接" : "未连接";
                }
            }
            catch (Exception ex)
            {
                this.lblmsg0.Text = ex.Message;
                MessageBox.Show(ex.Message);
            }
        }
Exemple #14
0
        /// <summary>
        /// 默认构造函数
        /// </summary>
        public MySerialPort( )
        {
            _portName = "COM1";
            _baudRate = SerialPortBaudRates.BaudRate_115200;
            _parity   = Parity.None;
            _dataBit  = SerialPortDataBits.EightBits;
            _stopBit  = StopBits.One;

            _comPort.DataReceived  += new SerialDataReceivedEventHandler(comPort_DataReceived);
            _comPort.ErrorReceived += new SerialErrorReceivedEventHandler(comPort_ErrorReceived);

            //this._thrdDataMessageHandler = new Thread(ThrdDataMessageHandler);
            //this._thrdDataMessageHandler.IsBackground = true;
            //this._thrdDataMessageHandler.Start();
        }
        /// <summary>
        /// 参数构造函数(使用枚举参数构造)
        /// </summary>
        /// <param name="baud">波特率</param>
        /// <param name="par">奇偶校验位</param>
        /// <param name="sBits">停止位</param>
        /// <param name="dBits">数据位</param>
        /// <param name="name">串口号</param>
        public SerialPortUtil(string name, SerialPortBaudRates baud, Parity par, SerialPortDatabits dBits, StopBits sBits)
        {
            this._portName = name;
            this._baudRate = baud;
            this._parity   = par;
            this._dataBits = dBits;
            this._stopBits = sBits;

            this.comPort = new SerialPort(this._portName, (int)this._baudRate, this._parity, (int)this._dataBits, this._stopBits)
            {
                WriteTimeout = 3000, ReadTimeout = 3000, ReceivedBytesThreshold = 1
            };

            this.comPort.DataReceived  += comPort_DataReceived;
            this.comPort.ErrorReceived += comPort_ErrorReceived;
        }
Exemple #16
0
        public MySerialPort(string port, SerialPortBaudRates baud, SerialPortDataBits databits, Parity parity, StopBits stopbits)
        {
            this.MyPortName  = port;
            this.MyBaudRates = baud;
            this.MyDataBits  = databits;
            this.MyParity    = parity;
            this.MyStopBits  = stopbits;

            MserialPort.DataReceived          += new SerialDataReceivedEventHandler(SerialPort_DataReceived); //将SerialPort_DataReceived方法委托到串口接收事件
            MserialPort.ReceivedBytesThreshold = 1;

            ListDataFormat = new List <DataFormat>();

            //直接使用这一句就可以将串口的编码改为GB2312 即可以使用中文发送
            //serialPort.Encoding = System.Text.Encoding.GetEncoding("gb2312");
        }
        /// <summary>
        /// 参数构造函数(使用枚举参数构造)
        /// </summary>
        /// <param name="baud">波特率</param>
        /// <param name="par">奇偶校验位</param>
        /// <param name="sBits">停止位</param>
        /// <param name="dBits">数据位</param>
        /// <param name="name">串口号</param>
        /// <param name="sameCount">连续相同重量次数</param>
        /// <param name="minWeight">最小重量起</param>
        /// <param name="errLimit">误差范围</param>
        public void InitScale(string name, SerialPortBaudRates baud, Parity par, SerialPortDatabits dBits, StopBits sBits, int sameCount, decimal minWeight, decimal errLimit)
        {
            //串口设置
            _portName = name;
            _baudRate = baud;
            _parity   = par;
            _dataBits = dBits;
            _stopBits = sBits;

            //计算重量
            _sameCount  = sameCount;
            _minWeight  = minWeight;
            _errorLimit = errLimit;

            comPort.DataReceived  += new SerialDataReceivedEventHandler(comPort_DataReceived);
            comPort.ErrorReceived += new SerialErrorReceivedEventHandler(comPort_ErrorReceived);
        }
Exemple #18
0
 public SerialPortUtil(string name, string baud, string par, string dBits, string sBits)
 {
     this.ReceiveEventFlag            = false;
     this.EndByte                     = 0x23;
     this.string_0                    = "COM1";
     this.serialPortBaudRates_0       = SerialPortBaudRates.BaudRate_57600;
     this.parity_0                    = System.IO.Ports.Parity.None;
     this.stopBits_0                  = System.IO.Ports.StopBits.One;
     this.serialPortDatabits_0        = SerialPortDatabits.EightBits;
     this.serialPort_0                = new SerialPort();
     this.string_0                    = name;
     this.serialPortBaudRates_0       = (SerialPortBaudRates)Enum.Parse(typeof(SerialPortBaudRates), baud);
     this.parity_0                    = (System.IO.Ports.Parity)Enum.Parse(typeof(System.IO.Ports.Parity), par);
     this.serialPortDatabits_0        = (SerialPortDatabits)Enum.Parse(typeof(SerialPortDatabits), dBits);
     this.stopBits_0                  = (System.IO.Ports.StopBits)Enum.Parse(typeof(System.IO.Ports.StopBits), sBits);
     this.serialPort_0.DataReceived  += new SerialDataReceivedEventHandler(this.serialPort_0_DataReceived);
     this.serialPort_0.ErrorReceived += new SerialErrorReceivedEventHandler(this.serialPort_0_ErrorReceived);
 }
Exemple #19
0
 public SerialPortUtil()
 {
     this.ReceiveEventFlag            = false;
     this.EndByte                     = 0x23;
     this.string_0                    = "COM1";
     this.serialPortBaudRates_0       = SerialPortBaudRates.BaudRate_57600;
     this.parity_0                    = System.IO.Ports.Parity.None;
     this.stopBits_0                  = System.IO.Ports.StopBits.One;
     this.serialPortDatabits_0        = SerialPortDatabits.EightBits;
     this.serialPort_0                = new SerialPort();
     this.string_0                    = "COM1";
     this.serialPortBaudRates_0       = SerialPortBaudRates.BaudRate_9600;
     this.parity_0                    = System.IO.Ports.Parity.None;
     this.serialPortDatabits_0        = SerialPortDatabits.EightBits;
     this.stopBits_0                  = System.IO.Ports.StopBits.One;
     this.serialPort_0.DataReceived  += new SerialDataReceivedEventHandler(this.serialPort_0_DataReceived);
     this.serialPort_0.ErrorReceived += new SerialErrorReceivedEventHandler(this.serialPort_0_ErrorReceived);
 }
Exemple #20
0
        /// <summary>
        /// 默认构造函数
        /// </summary>
        public SerialPortUtil()
        {
            _portName = "COM3";
            _baudRate = SerialPortBaudRates.BaudRate_9600;
            _parity = Parity.None;
            _dataBits = SerialPortDatabits.EightBits;
            _stopBits = StopBits.One;

            comPort.DataReceived += new SerialDataReceivedEventHandler(comPort_DataReceived);
            comPort.ErrorReceived += new SerialErrorReceivedEventHandler(comPort_ErrorReceived);
        }
Exemple #21
0
        /// <summary>
        /// 参数构造函数(使用字符串参数构造)
        /// </summary>
        /// <param name="baud">波特率</param>
        /// <param name="par">奇偶校验位</param>
        /// <param name="sBits">停止位</param>
        /// <param name="dBits">数据位</param>
        /// <param name="name">串口号</param>
        public SerialPortUtil(string name, string baud, string par, string dBits, string sBits)
        {
            _portName = name;
            _baudRate = (SerialPortBaudRates)Enum.Parse(typeof(SerialPortBaudRates), baud);
            _parity = (Parity)Enum.Parse(typeof(Parity), par);
            _dataBits = (SerialPortDatabits)Enum.Parse(typeof(SerialPortDatabits), dBits);
            _stopBits = (StopBits)Enum.Parse(typeof(StopBits), sBits);

            comPort.DataReceived += new SerialDataReceivedEventHandler(comPort_DataReceived);
            comPort.ErrorReceived += new SerialErrorReceivedEventHandler(comPort_ErrorReceived);
        }
Exemple #22
0
        private StopBits _stopBits = StopBits.One; //停止位

        #endregion Fields

        #region Constructors

        /// <summary>
        /// 参数构造函数(使用枚举参数构造)
        /// </summary>
        /// <param name="baud">波特率</param>
        /// <param name="par">奇偶校验位</param>
        /// <param name="sBits">停止位</param>
        /// <param name="dBits">数据位</param>
        /// <param name="name">串口号</param>
        public SerialPortUtil(string name, SerialPortBaudRates baud, Parity par, SerialPortDatabits dBits, StopBits sBits)
        {
            _portName = name;
            _baudRate = baud;
            _parity = par;
            _dataBits = dBits;
            _stopBits = sBits;

            comPort.DataReceived += new SerialDataReceivedEventHandler(comPort_DataReceived);
            comPort.ErrorReceived += new SerialErrorReceivedEventHandler(comPort_ErrorReceived);
        }