private void ConnectPort() { try { MainPort.PortName = PortList.SelectedItem.ToString(); MainPort.BaudRate = Convert.ToInt32(RateList.SelectedItem); MainPort.DataBits = Convert.ToInt32(DataBitsList.SelectedItem); MainPort.StopBits = StopBits.One; MainPort.Parity = Parity.None; MainPort.Handshake = Handshake.None; MainPort.DataReceived += new SerialDataReceivedEventHandler(MainPort_DataReceived); MainPort.Open(); btnOpen.Enabled = false; btnClose.Enabled = true; PortList.Enabled = false; RateList.Enabled = false; DataBitsList.Enabled = false; } catch (Exception e) { MessageBox.Show("Port Connect Please!"); Console.WriteLine(e.Message); } }
private void btnClose_Click(object sender, EventArgs e) { conn.Close(); MainPort.Close(); btnOpen.Enabled = true; btnClose.Enabled = false; PortList.Enabled = true; RateList.Enabled = true; DataBitsList.Enabled = true; }
protected override void OnKeyUp(KeyEventArgs e) { KeyConverter t = new KeyConverter(); if (enable_mc == true) { if (MainPort.BytesToRead > 0) { string s = MainPort.ReadLine(); s = Regex.Replace(s, @"\r", string.Empty); try { double load = Convert.ToDouble(s); load = ((load - 0) * (105.369 - 40.92)) / ((1023 - 0) + 40.92); append_load_finecontrol_box(load.ToString()); } catch { } } if (Keyboard.IsKeyUp(Key.Z)) { Console.WriteLine("Stop"); up_control = 0; CommandPacket commands; commands.RunTest = "3"; commands.Displacement = "0"; commands.DisplacementRate = "0"; commands.Retract = "0"; MainPort.Write("<" + commands.RunTest + "," + commands.DisplacementRate + "," + commands.Displacement + "," + commands.Retract + ">"); } if (Keyboard.IsKeyUp(Key.X)) { Console.WriteLine("Stopped"); CommandPacket commands; commands.RunTest = "3"; commands.Displacement = "0"; commands.DisplacementRate = "0"; commands.Retract = "0"; MainPort.Write("<" + commands.RunTest + "," + commands.DisplacementRate + "," + commands.Displacement + "," + commands.Retract + ">"); down_control = 0; } } }
private void MainPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { byte TempBuff = 0x00; int nCount = MainPort.BytesToRead; try { for (int i = 0; i < nCount; i++) { TempBuff = Convert.ToByte(MainPort.ReadByte()); if (TempBuff == 0x0A) { this.Invoke(new MethodInvoker(delegate() { if (RxData.Length > 4) { if (RxData.Substring(0, 4) == "+RCV") { ParsingData(RxData); GetDBData_Last(); } } DataView.MoveLast(); })); RxData = ""; // RxDate init } else { RxData += Convert.ToChar(TempBuff); } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }