예제 #1
0
        void AutoScan()
        {
            try
            {
                ComPortList = SerialPort.GetPortNames();
                foreach (string port in ComPortList)
                {
                    ComSerial.PortName = port.ToString();
                    PortAvailable      = port.ToString();
                }
                ComSerial.PortName = txtComPort.Text;
                ComSerial.Open();
                if (!string.IsNullOrWhiteSpace(txtBaundRate.Text))
                {
                    ComSerial.BaudRate = Convert.ToInt32(txtBaundRate.Text);
                }
                if (!string.IsNullOrWhiteSpace(cmbParity.Text))
                {
                    ComSerial.Parity = SystemProperties.Getparity(cmbParity.Text);
                }
                if (!string.IsNullOrWhiteSpace(cmbStopBits.Text))
                {
                    ComSerial.StopBits = SystemProperties.GetStopBit(cmbStopBits.Text);
                }
                if (!string.IsNullOrWhiteSpace(txtDataBits.Text))
                {
                    ComSerial.DataBits = Convert.ToInt32(txtDataBits.Text);
                }
                //txtStatus.Text = "";
                ComSerial.DataReceived += new SerialDataReceivedEventHandler(ComSerial_DataReceived);
                //ComSerial.Close();
            }
            catch (Exception ex)
            {
                //ComSerial.Close();
                //ComSerial.ReadTimeout = 100;
                //ComSerial.PortName = PortAvailable;
                //ComSerial.Open();

                //ComSerial.BaudRate = 9600;
                //ComSerial.Parity = Parity.None;
                //ComSerial.StopBits = StopBits.One;
                //ComSerial.DataBits = 8;
                //ComSerial.DataReceived += new SerialDataReceivedEventHandler(ComSerial_DataReceived);

                txtStatus.Text = "Available serial port:  " + Environment.NewLine + PortAvailable + Environment.NewLine + Environment.NewLine + "Defaul settings:" + Environment.NewLine + " BoundRate: 9600, DataBits: 8,StopBits: One,Parity: None ";

                AutoScanTimer.Stop();
                AutoScanTimer.Enabled = false;
                ComSerial.Close();
            }
        }