2015. 3. 10. 10:49
C# with SerialPort
프로그램 설명
인스턴스 메시지 기능으로 통신하는 프로그램입니다.
사용한 시리얼포트는 COM3(write), COM4(read) 이며, 설정 화면은 아래와 같습니다.
실행 후
메시지 전송 후
프로그램 작성
public Form1() { InitializeComponent(); } private static string RxString = string.Empty; #region initButton click method private void initButton_Click(object sender, EventArgs e) { try { // 시리얼 포트가 열려 있는지 확인 if (!serialPortWrite.IsOpen && !serialPortRead.IsOpen) { // 메시지 출력 richTextBoxCom4.Text = serialPortWrite.PortName + " Ready!!!" + Environment.NewLine; richTextBoxCom4.AppendText(serialPortRead.PortName + " Ready!!!" + Environment.NewLine); // 포트 오픈 serialPortRead.Open(); serialPortWrite.Open(); // 버튼 비활성화 initButton.Enabled = false; } else { richTextBoxCom4.Text = "Port isn't opened"; } } catch(UnauthorizedAccessException ex) { MessageBox.Show(ex.Message, "Error"); } } #endregion #region Form1_FormClosing method private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (serialPortWrite.IsOpen) serialPortWrite.Close(); if (serialPortRead.IsOpen) serialPortRead.Close(); } #endregion #region serialPortRead DataReceived method private void serialPortRead_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { try { RxString = serialPortRead.ReadExisting(); this.Invoke(new EventHandler(DisplayText)); } catch (TimeoutException ex) { } } #endregion #region Displaytext private void DisplayText(object sender, EventArgs e) { richTextBoxCom4.AppendText(RxString); } #endregion #region sendButton click method private void sendButton_Click(object sender, EventArgs e) { serialPortWrite.Write(richTextBoxCom3.Text + Environment.NewLine); } #endregion #region richTextBoxCom3 KeyPress method private void richTextBoxCom3_KeyPress(object sender, KeyPressEventArgs e) { if(!serialPortWrite.IsOpen || !instanceMS.Checked) return; char[] buffer = new char[1]; buffer[0] = e.KeyChar; serialPortWrite.Write(buffer, 0, buffer.Length); } #endregion #region clearButton click method private void clearButton_Click(object sender, EventArgs e) { richTextBoxCom3.Text = ""; richTextBoxCom4.Text = ""; } #endregion
소스 파일 :
'C# with SerialPort' 카테고리의 다른 글
[Program C#] 시리얼포트로 읽기/쓰기 - 기본 (0) | 2015.03.09 |
---|