PortSetting.cs 2.9 KB
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MachineDll;
using System.IO.Ports;

namespace serialPortSoft
{
    public partial class PortSetting : Form
    {
        public PortSetting()
        {
            InitializeComponent();
        }

        private void btnConfirm_Click(object sender, EventArgs e)
        {
            bool port = SetPortName();
            bool baud = SetBaudRate();
            bool Data = SetDataBits();
            bool Parity = SetParity();
            bool Stop = SetStopBits();

            if (port && baud && Data && Parity && Stop)
            {
                Close();
            }
            else
            {
                MessageBox.Show("有错误的输入,请检查");
            }
        }
        private bool SetStopBits()
        {
            switch (cmbStopBits.SelectedIndex)
            {
                case 0:
                    SerialPortSetting.StopBits = StopBits.None;
                    return true;
                case 1:
                    SerialPortSetting.StopBits = StopBits.One;
                    return true;
                case 2:
                    SerialPortSetting.StopBits = StopBits.OnePointFive;
                    return true;
                case 3:
                    SerialPortSetting.StopBits = StopBits.Two;
                    return true;
                default:
                    return false;
            }
        }

        private bool SetParity()
        {
            switch (cmbParity.SelectedIndex)
            {
                case 0:
                    SerialPortSetting.Parity = Parity.None;
                    return true;
                case 1:
                    SerialPortSetting.Parity = Parity.Odd;
                    return true;
                case 2:
                    SerialPortSetting.Parity = Parity.Even;
                    return true;
                default:
                    return false;
            }
        }

        private bool SetDataBits()
        {
            int dataBits;
            if (int.TryParse(txtDataBits.Text, out dataBits))
            {
                SerialPortSetting.DataBits = dataBits;
                return true;
            }
            else
            {
                return false;
            }
        }

        private bool SetBaudRate()
        {
            int baudRate;
            if (int.TryParse(txtBaud.Text, out baudRate))
            {
                SerialPortSetting.BautRate = baudRate;
                return true;
            }
            else
            {
                return false;
            }
        }

        private bool SetPortName()
        {
            SerialPortSetting.PortName = cmbPortName.SelectedItem.ToString();
            return true;
        }
    }
}