[VC++] 시리얼 통신 프로그램 만들기[3-1] – 통신 설정 기능

지금까지 만든 시리얼 통신 프로그램은 접속에 대한 연결과 끊기 기능만 있을 뿐 통신 포트 지정이라든가 보레이트(BaudRate), 기타 패리티 비트등의 설정 및 변경 기능이 없으므로 이제 이 기능들을 추가하는 것에 대해 다루겠습니다.

그러려면 프로그램 사용자가 시리얼 포트에 대해 위 열거한 세부 설정을 할 수 있게 다이얼로그 박스가 필요하고 이를 상단 메뉴를 통하여 불러낼 수 있게 해야 합니다.

이 메뉴 이름을 ”통신포트 설정” 이라 칭하고 다이얼로그 박스를 만들어 필요할 때 불러내어 통신에 대한 설정을 변경할 수 있도록 해보겠습니다.

 

상위 메뉴 편집을 할 수 있도록 아래 그림처럼 VC++ 의 ”ResourceView” 탭의 ”Menu” 항목을 지정하여 ”파일” 메뉴항목 아래에 ”통신포트 설정” 을 추가하고 ID 값은 ”ID_COMSETTING” 이라고 입력합니다.

MenuID

 

그리고 컴파일 하여 프로그램을 실행시키면 상위 풀다운 메뉴에 ”통신포트 설정” 항목이 추가되었을 것입니다.

이 메뉴를 클릭하면 ”통신포트 설정” 이라는 다이얼로그 박스를 띄우고 원하는 설정을 적용할 수 있도록 하겠습니다.

이에 대한 다이얼로그 박스를 프로젝트에 삽입하는 방법은 VC++ 의 ”ResourceView” 탭의 ”Dialog” 항목을 지정하여 오른쪽 마우스 버튼을 클릭하면 ”Insert Dialog” 메뉴가 나오는데 이를 클릭합니다.

이 후 VC++ 오른쪽 창에 생긴 새로운 다이얼로그 박스에 아래 그림처럼 위로부터 통신포트, 통신속도(보레이트), 데이터 비트, 패리트 비트, 스톱 비트, 그리고 플로우 컨트롤 값들을 변경할 수 있게 라디오 버튼을 배치합니다.

ComSettings

이 과정이 번거롭다면 ”시리얼 통신 프로그램 만들기 – 1” 강좌에 처음 소개되었던 CSerial 클래스 와 같이 제공되는 (Serial_demo.zip) SerialTestMFC 프로젝트에서 다이얼로그 박스를 복사해올 수 있습니다.

 

방법은 VC++ 프로그램의 상단 ”파일” 메뉴에서 ”Open” (Ctrl+S) 을 클릭한 다음 SerialTestMFC 소스가 있는 디렉토리를 찾아 ”SerialTestMFC.rc” 파일을 불러옵니다.

그러면 아래 그림과 같이 VC++ 오른쪽 창에 SerialTestMFC 프로그램의 리소스들을 트리구조로 볼 수 있는데, 이중에 Dialog 항목의 ”IDD_COM_SELECT” 와 ”IDD_COM_SETTINGS” 라는 ID 값을 가진 다이얼로그들을 Copy (Ctrl+C) 와 Paste (Ctrl+V) 를 하여 왼쪽의 ComConstructor 리소스로 복사해줍니다.

SerialTestMFCResource

 

그 다음 아래 그림처럼 ”IDD_COM_SELECT” 다이얼로그의 ”OK 버튼” 을 비롯한 모든 컨트롤들을 복사하여 ”IDD_COM_SETTINGS” 다이얼로그에 배치해줍니다.

그런 후, ”IDD_COM_SELECT” 라는 ID 값의 다이얼로그는 지워도 됩니다.

 

SerialTestMFC 예제의 리소스로부터 다이얼로그 박스를 복사하지 않고 처음 설명한대로 다이얼로그 박스를 직접 만드신다면 다이얼로그 박스와 그 위에 배치된 각 컨트롤들의 ID 값들을 SerialMFC 예제처럼 설정해 주시면 됩니다.

EditedComSettings

 

그리고 다이얼로그 박스의 제목을 ”통신 포트 설정” 이라고 고쳐주고 아래 그림처럼 다이얼로그 박스의 스타일을 ”Popup” 으로 고쳐주면  우리가 필요한 통신 설정 박스 디자인 작업이 끝난것입니다.

DialogStyle

 

 

이 글을 공유하기:

Be the first to comment

Leave a Reply