안녕하세요
C# 윈폼에서 가상 시리얼 포트를 이용한 테스트 프로그램을 개발해봤습니다
개발 전에 VSPE, 하이퍼터미널이 필요합니다
목차
VSPE 다운로드 및 설치
하이퍼터미널 다운로드 및 환경설정
시리얼통신 프로그램 코드 설명
결과 화면
VSPE 다운로드 및 설치
첫 번째 준비물인 VSPE는 하단의 경로를 참고하여 다운로드합니다
두 번째 준비물인 하이퍼터미널은 아래의 첨부파일을 다운로드하여 실행합니다
여기까지 필요한 프로그램은 모두 다운로드하였습니다
먼저 VSPE를 세팅해보겠습니다
설치된 VSPE를 실행합니다
상단의 시리얼포트에 햇빛(?) 이 표시된 아이콘을 선택합니다
아이콘을 클릭하면 하단의 단계로 넘어갑니다
Device type을 클릭하면 다양한 Device가 나타납니다
그 중에서 Connector를 선택합니다
기본적으로 VSPE를 실행하면 Connector로 세팅이 되어있습니다
아마 처음 실행하시는 분은 바로 다음버튼을 눌러서 다음 단계로 넘어가시면 됩니다 ㅎ
다음 단계에서는 가상으로 사용할 포트번호를 선택합니다
저는 COM1를 선택하겠습니다
포트선택까지 끝마쳤으면 마침을 눌러 가상 시리얼포트를 생성합시다
환경설정이 끝이 나면 처음 실행한 화면으로 돌아옵니다
돌아온 화면이 Title에 포트번호 Device에 Connector, Status가 Ready로 나타난다면 정상적으로 환경설정이 끝난 것입니다
여기까지 VSPE의 환경설정이었습니다
하이퍼터미널 다운로드 및 환경설정
다음단계로 하이퍼터미널의 환경설정에 대해서 알아보겠습니다
위의 zip파일을 다운로드하여 압축을 풀어 hypertrm.exe 파일을 실행합니다
처음 파일을 실행하면 연결 설명 팝업이 나타납니다
팝업에서 연결에 사용할 이름을 입력합니다
저는 Test로 입력하겠습니다
입력이 완료되면 확인버튼을 클릭합니다
다음 단계에서는 연결 대상을 선택합니다
연결 대상은 좀 전에 VSPE에서 열어두었던 COM1을 선택합니다
연결 대상까지 선택을 하였으면 확인버튼을 클릭하여 다음 단계로 넘어갑니다
연결 대상까지 선택했다면 시리얼통신의 포트 설정을 해줍니다
기본 설정을 그대로 사용합니다
확인 버튼을 클릭하여 하이퍼터미널 세팅을 완료합시다
여기까지 세팅하였다면 시리얼통신 환경설정이 끝이 났습니다
시리얼통신 프로그램 코드 설명
이어서 간단한 시리얼통신 송신 프로그램을 개발해보겠습니다
프로그램 Visual Studio 2017로 개발하였습니다
테스트 프로그램이므로 간단하게 디자인해줍니다
차례대로 설명하면 포트번호를 입력할 텍스트박스를 추가합니다
하단에는 포트를 열고 닫을 버튼 두개를 만들었습니다
이어서 시리얼통신 테스트문자열을 보낼 텍스트박스와 버튼을 추가해줬습니다
시리얼통신을 열어주는 포트 열기 소스입니다
시리얼포트는 전역변수로 선언하여 사용해줍시다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// 시리얼포트 전역변수
SerialPort sPort;
// 포트열기 버튼 클릭 이벤트
private void btnOpen_Click(object sender, EventArgs e)
{
// 포트를 세팅
sPort = new SerialPort();
sPort.PortName = txtSerial.Text;
// 포트가 열려있는 경우 메시지 출력
if(sPort.IsOpen == true)
{
MessageBox.Show("이미 포트가 오픈되어있습니다.");
}
// Port Open
else
{
sPort.Open();
}
}
|
cs |
시리얼통신 닫는 포트 닫기 소스입니다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// 포트닫기 버튼 클릭 이벤트
private void btnClose_Click(object sender, EventArgs e)
{
// Port Close
if (sPort.IsOpen == true)
{
sPort.Close();
}
// 포트가 닫혀있는 경우 메시지 출력
else
{
MessageBox.Show("열려있는 포트가 없습니다.");
}
}
|
cs |
마지막으로 시리얼통신에 COM1에 데이터를 송신하는 소스입니다
1
2
3
4
5
6
7
|
// 전송 버튼 클릭 이벤트
private void btnSend_Click(object sender, EventArgs e)
{
// 시리얼통신 데이터를 전송한다
byte[] strByte = UTF8Encoding.Default.GetBytes(this.txtSend.Text);
sPort.Write(strByte, 0, strByte.Length);
}
|
cs |
여기까지 작성하면 시리얼통신 테스트 프로그램도 모두 개발하였습니다
전체 소스입니다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SerialTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 시리얼포트 전역변수
SerialPort sPort;
// 포트열기 버튼 클릭 이벤트
private void btnOpen_Click(object sender, EventArgs e)
{
// 포트를 세팅
sPort = new SerialPort();
sPort.PortName = txtSerial.Text;
// 포트가 열려있는 경우 메시지 출력
if (sPort.IsOpen == true)
{
MessageBox.Show("이미 포트가 오픈되어있습니다.");
}
// Port Open
else
{
sPort.Open();
}
}
// 포트닫기 버튼 클릭 이벤트
private void btnClose_Click(object sender, EventArgs e)
{
// Port Close
if (sPort.IsOpen == true)
{
sPort.Close();
}
// 포트가 닫혀있는 경우 메시지 출력
else
{
MessageBox.Show("열려있는 포트가 없습니다.");
}
}
// 전송 버튼 클릭 이벤트
private void btnSend_Click(object sender, EventArgs e)
{
// 시리얼통신 데이터를 전송한다
byte[] strByte = UTF8Encoding.Default.GetBytes(this.txtSend.Text);
sPort.Write(strByte, 0, strByte.Length);
}
}
}
|
cs |
결과 화면
프로그램의 최종 개발 완료화면입니다
프로그램에서 포트를 COM1로 선택하고 테스트 데이터를 전송합니다
전송을 하면 하이퍼터미널에서 TEST 문자열 받은 것을 확인할 수 있습니다
위의 프로그램을 개발한 소스입니다
시리얼통신 테스트 프로그램을 만드는데 참고하셨으면 좋겠습니다 :)
여기까지 가상 시리얼통신과 하이퍼터미널을 사용 시리얼통신 테스트 프로그램을 만들어봤습니다 ㅎ
'프로그래밍 > C#' 카테고리의 다른 글
웹 브라우저 자동화 프로그램(Selenium IDE) 다운로드 및 사용법(크롬) (0) | 2021.04.21 |
---|---|
Visual Studio 2017 윈폼 프로젝트 만들기 (0) | 2021.04.21 |
C# Left, Right 함수 구현 (0) | 2021.04.16 |
C# Zebra(제브라) 프린터 2D(이차원)바코드 출력하기 (2) | 2021.04.16 |
C# Zebra(제브라) 프린터 바코드 출력하기 (8) | 2021.04.16 |