⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 Simple Serialport ascii send/receive for WinCe5.0 & XP_SP2.zip
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
  using System.IO.Ports;

namespace CsSerialport
{
    public partial class Form1 : Form
    {
        ////// private System.IO.Ports.SerialPort serialPort2;
        public delegate void delegDataRx(string strPar);
        public delegDataRx objdelegDataRx;

        public Form1()
        {
            InitializeComponent();
        }
        ////////////////////////////////////////////////////
        private void callbkDataRx(string strIn)
        {
            txtOut.Text += strIn + "\r\n";
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            objdelegDataRx = new delegDataRx(callbkDataRx);
            txtBaud.Text = "115200";
        }
        private void serialPort2_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            //Event Listener Thread
            string str = "";
            int iBuf = serialPort2.BytesToRead;
            //int ReadBufferSize  default buffer size is 4096.
            string strErg = serialPort2.ReadExisting();
            //serialPort2.DiscardOutBuffer();
            str = "DRx:";
            str += strErg; //" + e.ToString() + " ; 
            //MessageBox.Show( str.ToString() );
            this.Invoke(this.objdelegDataRx, new object[] { strErg });
        }
        private void serialPort2_ErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
        {
            //string str = "";
            this.Invoke(this.objdelegDataRx, new object[] { "ErrRx" });
            //lblOut.Text = "ErrRx:" + e.ToString();
            MessageBox.Show("ErrRx"+e.ToString() );
        }
        private void serialPort2_PinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e)
        {
            //string str = "";
            this.Invoke(this.objdelegDataRx, new object[] { "PinChg" });
            // lblOut.Text = "PinChg:" + e.ToString();
            MessageBox.Show("ErrRx" + e.ToString());
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {

        }
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {

        }
        private void btnList_Click(object sender, EventArgs e)
        {
            string str = "";
            /// Get a list of serial port names.
            string[] strports = System.IO.Ports.SerialPort.GetPortNames();
            foreach (string strport in strports)
            {
                str += strport.ToString() + " ";
            }
            lblOut.Text = "Ports ava:" + str.ToString();
        }
        private void btnOpen_Click(object sender, EventArgs e)
        {
            string str = "";
            /// serialPort2.Encoding ASCIIEncoding (default), UTF8Encoding, UTF32Encoding, UnicodeEncoding. ArgumentNullException ArgumentException
            try
            {  //// Catch Commport Exception with this
                if (serialPort2.IsOpen)
                {
                    str = "already opened";
                }
                else
                {
                    int iPort = Convert.ToInt32(txtboxPort.Text);
                    switch (iPort)
                    {
                        case 1:
                            serialPort2.PortName = "COM1";
                            break;
                        case 2:
                            serialPort2.PortName = "COM2";
                            break;
                        case 3:
                            serialPort2.PortName = "COM3";
                            break;
                        case 4:
                            serialPort2.PortName = "COM4";
                            break;
                        case 5:
                            serialPort2.PortName = "COM5";
                            break;
                        case 6:
                            serialPort2.PortName = "COM6";
                            break;
                        case 7:
                            serialPort2.PortName = "COM7";
                            break;
                        case 8:
                            serialPort2.PortName = "COM8";
                            break;
                        case 9:
                            serialPort2.PortName = "COM9";
                            break;
                        case 10:
                            serialPort2.PortName = "COM10";
                            break;
                        case 11:
                            serialPort2.PortName = "COM11";
                            break;
                        case 12:
                            serialPort2.PortName = "COM12";
                            break;
                        case 13:
                            serialPort2.PortName = "COM13";
                            break;
                        case 14:
                            serialPort2.PortName = "COM14";
                            break;
                        case 15:
                            serialPort2.PortName = "COM15";
                            break;
                        case 16:
                            serialPort2.PortName = "COM16";
                            break;
                        case 17:
                            serialPort2.PortName = "COM17";
                            break;
                        case 18:
                            serialPort2.PortName = "COM18";
                            break;
                        case 19:
                            serialPort2.PortName = "COM19";
                            break;
                        case 20:
                            serialPort2.PortName = "COM20";
                            break;
                        default:
                            break;
                    };
                    //serialPort2.ReadBufferSize =4096; //default
                    serialPort2.BaudRate    = Convert.ToInt32( txtBaud.Text); /// 9600; //115200;
                    serialPort2.DataBits    = 8;
                    serialPort2.Parity      = System.IO.Ports.Parity.None;
                    serialPort2.StopBits    = System.IO.Ports.StopBits.One;
                    serialPort2.ReadTimeout = 500;
                    serialPort2.WriteTimeout= 500;
                    serialPort2.Handshake   = System.IO.Ports.Handshake.None;
                    serialPort2.Open();
                    str = "OK";
                }
            }
            catch (InvalidOperationException iopex)
            {
                str = "Failed iopex" + iopex.ToString();
            }
            catch (ArgumentOutOfRangeException aorex)
            {
                str = "Failed aorex" + aorex.ToString();
            }
            catch (ArgumentException aex)
            {
                str = "Failed aex" + aex.ToString();
            }
            //catch (IOException ioex) { str = "Failed ioex" + ioex.ToString(); }
            catch (UnauthorizedAccessException uaex)
            {
                str = "Failed uaex" + uaex.ToString();
            }
            catch (Exception ex)
            {
                str = "Failed " + ex.ToString();
            }
            finally
            {

            }
            lblOut.Text = "Open:" + str.ToString();
        }
        private void btnClose_Click(object sender, EventArgs e)
        {
            string str = "";
            try
            {
                if (serialPort2.IsOpen)
                {
                    serialPort2.Close();
                    str = "OK";
                }
            }
            catch (Exception ex)
            {
                str = "Failed"+ex.ToString();
            }
            lblOut.Text = "Close: " + str.ToString();
        }
        private void btnSend_Click(object sender, EventArgs e)
        {
            //string str = "";
            if (serialPort2.IsOpen)
            {
                //int WriteTimeout 
                //serialPort2.WriteBufferSize property ignores any value smaller than 2048 // serialPort2.Write("Hello");
                if (txtboxSend.Text.Length > 0)
                {
                    serialPort2.Write(txtboxSend.Text.ToString());
                }
                lblOut.Text = "Send: " + txtboxSend.Text.ToString();
            }
            else
            {
                lblOut.Text = "No port!";
            };
        }
        private void btnSendB_Click(object sender, EventArgs e)
        {
            //string str = "";
            //lblOut.Text = "Send:";
            //bool bCarrierDetect = serialPort2.CDHolding; 
            //int iBuf = serialPort2.BytesToWrite;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -