/// <summary> /// 接收数据(线程方法) /// </summary> public void RecvData(Fmain f1) { if (!MyPort.IsOpen) { MyPort.Open(); } result = new byte[MyPort.BytesToRead]; //Sresult= MyPort.ReadExisting(); //MyPort.Read(result, 0, MyPort.BytesToRead); //f1.DataBox.AppendText(System.Text.Encoding.ASCII.GetString(result)+ "\n"); #region 读取 for (int i = 0; i < 64; i++) { MyPort.Read(result, 0, MyPort.BytesToRead); try { CSinput[i] = Convert.ToDouble(System.Text.Encoding.ASCII.GetString(result)); } catch (Exception e) { MessageBox.Show(e.ToString()); } } #endregion //MyThread.Start(); test(); }
/// <summary> /// 打开串口方法(直接) /// </summary> /// <param name="f1">获得主窗体引用</param> public void OpenPort() { try { if (!MyPort.IsOpen) { MyPort.Open(); } } catch (Exception e) { MessageBox.Show(e.ToString() + "\n" + "Open faild" + "\n" + "1.Check config" + "\n" + "2.Check device available" + "\n" + "3.Check device driver", "Error"); } }
/// <summary> /// (重载)打开控件所示串口 /// </summary> /// <param name="f1"></param> public void OpenPort(Fmain f1) { try { if (!MyPort.IsOpen) { #region 事务.串口打开 PortID = f1.PortID.Text.ToString(); MyPort.PortName = f1.PortX.SelectedItem.ToString(); MyPort.BaudRate = Convert.ToInt32(f1.BaudX.SelectedItem.ToString()); switch (f1.CheckX.SelectedIndex) { case 0: MyPort.Parity = Parity.None; break; case 1: MyPort.Parity = Parity.Odd; break; case 2: MyPort.Parity = Parity.Even; break; case 3: MyPort.Parity = Parity.Mark; break; case 4: MyPort.Parity = Parity.Space; break; } MyPort.DataBits = Convert.ToInt32(f1.DataX.SelectedItem.ToString()); switch (f1.StopX.SelectedIndex) { case 0: MyPort.StopBits = StopBits.One; break; case 1: MyPort.StopBits = StopBits.Two; break; case 2: MyPort.StopBits = StopBits.OnePointFive; break; } #endregion MyPort.Open(); } } catch (Exception e) { MessageBox.Show(e.ToString() + "Open faild" + "\n" + "1.Check config" + "\n" + "2.Check device available" + "\n" + "3.Check device driver", "Error"); } }
private void button6_Click(object sender, EventArgs e) { if (null != mPort) { mPort.Close(); mPort = null; } mPort = new MyPort(comPort.Text, Convert.ToInt32(comBaud.Text), Convert.ToInt32(comByteSize.Text), StringToParity(comParity.Text), StringToStopBits(comStopBit.Text)); mPort.Open(); textBox1.AppendText(comPort.Text + " open\n"); mPort.mReader += FlowDataReader; //mPort.mReader += VIThermometerReader; mPort.mReporter += FlowErrorReporter; button2.PerformClick(); }