예제 #1
0
        /// <summary>
        /// 打开串口
        /// </summary>
        /// <returns></returns>
        public SerialPort OpenPort(SerialPara serialPara)
        {
            if (ParaService.Install().GetPort().Length == 0)
            {
                MessageBox.Show("打开串口错误,本机没有串口!", "警告");
                return(null);
            }
            if (!sp.IsOpen)
            {
                try
                {
                    string port     = serialPara.Port;
                    string baudRate = serialPara.BaudRate;
                    string dataBits = serialPara.DataBits;
                    string stopBits = serialPara.StopBit;
                    string parity   = serialPara.Parity;

                    sp.PortName = port;
                    sp.BaudRate = int.Parse(baudRate);
                    sp.DataBits = int.Parse(dataBits);
                    sp.StopBits = (StopBits)int.Parse(stopBits);
                    switch (parity)             //校验位
                    {
                    case "none":
                        sp.Parity = Parity.None;
                        break;

                    case "odd":
                        sp.Parity = Parity.Odd;
                        break;

                    case "even":
                        sp.Parity = Parity.Even;
                        break;
                    }
                    //sp.ReadTimeout = 1000;
                    //sp.WriteTimeout = 1000;
                    sp.ReceivedBytesThreshold = 1;
                    sp.DataReceived          += new SerialDataReceivedEventHandler(comPort_DataReceived);
                    sp.Open();
                    return(sp);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("串口参数设置错误!" + ex.Message, "错误");
                    return(null);
                }
            }
            return(sp);
        }
예제 #2
0
        /// <summary>
        /// 从参数文件加载串口参数
        /// </summary>
        /// <returns></returns>
        public SerialPara LoadPara()
        {
            SerialPara serialPara = new SerialPara();
            Type       serialType = serialPara.GetType();
            object     obj        = Activator.CreateInstance(serialType);

            PropertyInfo[] serialArray = serialType.GetProperties();
            foreach (PropertyInfo item in serialArray)
            {
                string name  = item.Name;
                string value = INIHelper.Read("Parameter", name, "", filePath);
                item.SetValue(obj, value, null);
            }
            serialPara = obj as SerialPara;
            return(serialPara);
        }