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);
}
그외 언급하지 않는 부분에서 약간의 코드를 수정하였습니다. ( 코드 정리 차원에서 약간 수정)
그 부분은 코드를 참조하시기 바랍니다.
다음 장에서는 세션관리 기능을 넣어 좀더 사용하기에 편하게 만들어 보겠습니다

