COM 번호, BAUDRATE 은 한번만 셋팅하고 그냥 사용하는 값들인데,
이러한 것들이 메인폼에 있으면 자리만 차리할 뿐입니다.
OPEN, CLOSE 와 함께 메뉴에 넣어 안보이게 하겠습니다.
전체 소스
메뉴 만들기
[새로만들기] : 새로운 포트를 엽니다.
[연결하기] : 새로운 포트를 엽니다.
[연결끊기] : 포트를 닫습니다.
[새로만들기]에 사용할 폼디자인
폼은 솔루션명을 선택한후 오른쪽 마우스를 눌러 [추가]=>[Windows Form]을 선택해서 추가할수 있습니다.
파일명을 frmConnectInfo.cs로 하고 폼을 아래처럼 다지인하겠습니다.
[새로만들기]메뉴에 코드 연결하기
[새로만들기]메뉴를 더블클릭하여 소스를 추가할수 있습니다.
private void 새로만들기ToolStripMenuItem_Click(object sender, EventArgs e) { if(null != m_sp1) { MessageBox.Show("현재 접속을 먼저 끊어 주세요","새로 만들기 에러"); return; } frmConnectInfo frmConnect = new frmConnectInfo(); if(DialogResult.OK == frmConnect.ShowDialog()) { try { // m_sp1 값이 null 일때만 새로운 SerialPort 를 생성합니다. if (null == m_sp1) { m_sp1 = new SerialPort(); m_sp1.PortName = frmConnect.txtPort.Text; // 컴포트명 m_sp1.BaudRate = Convert.ToInt32(frmConnect.txtBaud.Text); // 보레이트 m_sp1.DataReceived += new SerialDataReceivedEventHandler(EventDataReceived); m_sp1.Open(); } btnOpen.Enabled = !m_sp1.IsOpen; // OPEN BUTTON Disable btnClose.Enabled = m_sp1.IsOpen; // CLOSE BUTTON Enable } catch (System.Exception ex) { MessageBox.Show(ex.Message); m_sp1.Dispose(); m_sp1 = null; } } frmConnect = null; }
[연결끊기] 메뉴에 코드 수정하기
CloseComm 함수를 만들어서 함수로 처리 하였습니다.
private void 연결끊기ToolStripMenuItem_Click(object sender, EventArgs e) { CloseComm(sender,e); }
그외 언급하지 않는 부분에서 약간의 코드를 수정하였습니다. ( 코드 정리 차원에서 약간 수정)
그 부분은 코드를 참조하시기 바랍니다.
다음 장에서는 세션관리 기능을 넣어 좀더 사용하기에 편하게 만들어 보겠습니다