private static bool SendData(byte[] data, int length) { if (ComDevice.IsOpen) { try { ComDevice.Write(data, 0, length);//发送数据 return(true); } catch (Exception ex) { if (sendDataError != null) { sendDataError(ex.Message); } } } return(false); }
// connect to a shimmer, comPort must be set public void Connect() { selectedItem = deviceDropdown.SelectedDevice; if (selectedItem == null) { Debug.Log("NO DEVICE SELECTED!"); return; } Debug.Log("CONNECT AND STREAM CLICKED"); this.comPort = selectedItem.ComPort.ToString(); Debug.Log("USING COM" + this.comPort); txtOutput.text = "Connecting..."; sc = new ShimmerController(this); txtOutput.text += "\nTrying to connect on COM" + this.comPort; sc.Connect("COM" + this.comPort); IsConnecting = true; }
public bool SendData(byte[] data) { if (ComDevice.IsOpen) { try { ComDevice.Write(data, 0, data.Length);//发送数据 return(true); } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { //MessageBox.Show("串口未打开", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); AddContent("串口未打开\r\n"); } return(false); }
/// <summary> /// 串口接收中断处理函数 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Com_DataReceived(object sender, SerialDataReceivedEventArgs e) { if (ComDevice.IsOpen) { try { //ShowMsg("接收成功"); int Rx_Length = ComDevice.BytesToRead; //要接收的数据长度 byte[] RxBuffer = new byte[Rx_Length]; //接收数据数组 ComDevice.Read(RxBuffer, 0, Rx_Length); for (int i = 0; i < Rx_Length; i++) { ReceiveAndCheck(RxBuffer[i]); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
/// <summary> /// 打开串口 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Btn_Open_Click(object sender, EventArgs e) { if (ComDevice.IsOpen == false) { try { string[] portList = SerialPort.GetPortNames(); if (portList.Length > 0) { ComDevice.PortName = portList[0]; } //打开串口 ComDevice.Open(); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } Btn_Open.Text = "关闭串口"; Lab_Flag.BackColor = Color.Green; //标志显示绿色,表示串口已成功打开 } else { try { ComDevice.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } Btn_Open.Text = "打开串口"; Lab_Flag.BackColor = Color.Red; //标识显示红色,表示串口未打开 } }
private void Com_DataReceived(object sender, SerialDataReceivedEventArgs e) { byte[] ReDatas = new byte[ComDevice.BytesToRead]; ComDevice.Read(ReDatas, 0, ReDatas.Length); //读取数据 this.AddData(ReDatas); //输出数据 }
private void btnOpen_Click_1(object sender, EventArgs e) { if (ComDevice.IsOpen == false) { ComDevice.PortName = cbbComList.Text;// cbbComList.SelectedItem.ToString(); ComDevice.BaudRate = Convert.ToInt32(cbbbaut.Text); if (ccbEO.Text == "无") { ComDevice.Parity = Parity.None; //(Parity)Convert.ToInt32(cbbParity.SelectedIndex.ToString()); } else if (ccbEO.Text == "偶") { ComDevice.Parity = Parity.Even; } else if (ccbEO.Text == "奇") { ComDevice.Parity = Parity.Odd; } else if (ccbEO.Text == "0") { ComDevice.Parity = Parity.Space; } else { ComDevice.Parity = Parity.Mark; } ComDevice.DataBits = Convert.ToInt16(ccbDb.Text);//Convert.ToInt32(cbbDataBits.SelectedItem.ToString()); if (cbbStp.Text == "1") { ComDevice.StopBits = StopBits.One;// 1;//(StopBits)Convert.ToInt32(cbbStopBits.SelectedItem.ToString()); } else if (cbbStp.Text == "1.5") { ComDevice.StopBits = StopBits.OnePointFive; } else if (cbbStp.Text == "2") { ComDevice.StopBits = StopBits.Two; } else { ComDevice.StopBits = StopBits.None; } try { ComDevice.Open(); btnSnd.Enabled = true; } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } btnOpen.Text = "关闭串口"; // pictureBox1.BackgroundImage = Properties.Resources.green; } else { try { ComDevice.Close(); btnSnd.Enabled = false; } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } btnOpen.Text = "打开串口"; //pictureBox1.BackgroundImage = Properties.Resources.red; } }