일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 윈도우폰7
- 주신영
- 서진호
- MIX10
- 황광진
- 실버라이트 코리아
- 거제도
- 윈도우 모바일
- 지승욱
- 마이크로소프트
- 윈모데브
- 윈도우폰
- UX베이커리
- 옴니아2
- 스마트폰
- 윈도우모바일
- 헤이맨
- 훈스닷넷
- 안드로이드
- 루나네스
- 신동혁
- 신석현
- 소년포비소프트
- 소년포비
- 데브피아
- windows mobile 6.5
- 쉐어포인트코리아
- winmodev
- 김춘배
- 윈도데브
- Today
- Total
소년포비의 세계정복!!
[C#] 시리얼 통신 소스 코드 본문
01.using System;
02.using System.Drawing;
03.using System.Windows.Forms;
04.using System.IO.Ports;
05.using System.Threading;
06.
07.namespace Serial
08.{
09. public partial class Form1 : Form
10. {
11.
12. public Form1()
13. {
14. InitializeComponent();
15.
16. //텍스스 박스 초기화;
17. //rbText.ScrollBars = RichTextBoxScrollBars.Vertical;
18.
19. //Port
20. cmbPort.BeginUpdate();
21. foreach (string comport in SerialPort.GetPortNames())
22. {
23. cmbPort.Items.Add(comport);
24. }
25. cmbPort.EndUpdate();
26.
27. //SerialPort 초기 설정
28. SP.PortName = "COM1";
29. SP.BaudRate = (int)19200;
30. SP.DataBits = (int)8;
31. SP.Parity = Parity.None;
32. SP.StopBits = StopBits.One;
33. //SP.ReadTimeout = (int)100;
34. //SP.WriteTimeout = (int)100;
35. }
36.
37. private void SP_DataReceived(object sender, SerialDataReceivedEventArgs e)
38. {
39. if (SP.IsOpen)
40. {
41. string str = SP.ReadLine();
42.
43. str = str.Trim().Replace("\r\n", "");
44. lbResult.Text = str;
45. rbText.Text = string.Format("{0}{1}{2}", rbText.Text, "[Received]", str+"\r\n");
46. rbText.SelectionStart = rbText.Text.Length;
47. rbText.ScrollToCaret();
48. //rbText.Text += "[전송된 Data] " + str;
49. Thread.Sleep(1000);
50. }
51. }
52.
53. private void btnOpen_Click(object sender, EventArgs e)
54. {
55. SP.Open();
56. if (SP.IsOpen)
57. {
58. //rbText.Text = string.Format("{0}{1}", rbText.Text, "\r\n[Succed] Port Open!!");
59. rbText.Text = "["+SP.PortName.ToString() +"] Port Open Connect!!";
60. lbStatus.Text = "Connect!!";
61. btnOpen.Visible = false;
62. btnPortClose.Visible = true;
63. }
64. else
65. {
66. //rbText.Text = string.Format("{0}{1}", rbText.Text, "\r\n[Fail] Port Open!!");
67. rbText.Text = "[" + SP.PortName.ToString() + "] Port Open Failed!";
68. lbStatus.Text = "[Fail] Port Open!";
69. lbStatus.ForeColor = Color.Red;
70. }
71. }
72.
73. private void cmbPort_SelectedIndexChanged(object sender, EventArgs e)
74. {
75. SP.PortName = cmbPort.SelectedItem.ToString();
76. }
77.
78. private void cmbBRate_SelectedIndexChanged(object sender, EventArgs e)
79. {
80. switch (cmbBRate.SelectedIndex)
81. {
82. case 0 :
83. SP.BaudRate = (int)9600;
84. break;
85. case 1:
86. SP.BaudRate = (int)14400;
87. break;
88. case 2:
89. SP.BaudRate = (int)19200;
90. break;
91. case 3:
92. SP.BaudRate = (int)38400;
93. break;
94. case 4:
95. SP.BaudRate = (int)57600;
96. break;
97. case 5:
98. SP.BaudRate = (int)115200;
99. break;
100. default:
101. SP.BaudRate = (int)19200;
102. break;
103. }
104. }
105.
106. private void cmbDataBits_SelectedIndexChanged(object sender, EventArgs e)
107. {
108. switch (cmbDataBits.SelectedIndex)
109. {
110. case 0:
111. SP.DataBits = 8;
112. break;
113. case 1:
114. SP.DataBits = 7;
115. break;
116. default :
117. SP.DataBits = 8;
118. break;
119. }
120. }
121.
122. private void cmbParity_SelectedIndexChanged(object sender, EventArgs e)
123. {
124. switch (cmbParity.SelectedIndex)
125. {
126. case 0:
127. SP.Parity = Parity.Even;
128. break;
129. case 1:
130. SP.Parity = Parity.Mark;
131. break;
132. case 2:
133. SP.Parity = Parity.None;
134. break;
135. case 3:
136. SP.Parity = Parity.Odd;
137. break;
138. case 4:
139. SP.Parity = Parity.Space;
140. break;
141. default:
142. SP.Parity = Parity.None;
143. break;
144. }
145. }
146.
147. private void cmbStopBits_SelectedIndexChanged(object sender, EventArgs e)
148. {
149. switch (cmbStopBits.SelectedIndex)
150. {
151. case 0:
152. //SP.StopBits = StopBits.None;
153. MessageBox.Show("이 값은 지원되지 않습니다");
154. break;
155. case 1:
156. SP.StopBits = StopBits.One;
157. break;
158. case 2:
159. SP.StopBits = StopBits.OnePointFive;
160. break;
161. case 3:
162. SP.StopBits = StopBits.Two;
163. break;
164. default:
165. SP.StopBits = StopBits.One;
166. break;
167. }
168. }
169.
170. private void Form1_Load(object sender, EventArgs e)
171. {
172. CheckForIllegalCrossThreadCalls = false;
173. }
174.
175. private void btnPortClose_Click(object sender, EventArgs e)
176. {
177. SP.Close();
178. rbText.Text += "\r\n" + "[" + SP.PortName.ToString() + "] Port Close!!";
179. lbStatus.Text = "Not Connect!!";
180. btnOpen.Visible = true;
181. btnPortClose.Visible = false;
182. }
183.
184. private void Form1_FormClosed(object sender, FormClosedEventArgs e)
185. {
186. if (SP.IsOpen)
187. {
188. SP.Close();
189. }
190. }
191. }
192.}
using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO.Ports;
using System.Threading;
namespace Serial
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//텍스스 박스 초기화;
//rbText.ScrollBars = RichTextBoxScrollBars.Vertical;
//Port
cmbPort.BeginUpdate();
foreach (string comport in SerialPort.GetPortNames())
{
cmbPort.Items.Add(comport);
}
cmbPort.EndUpdate();
//SerialPort 초기 설정
SP.PortName = "COM1";
SP.BaudRate = (int)19200;
SP.DataBits = (int)8;
SP.Parity = Parity.None;
SP.StopBits = StopBits.One;
//SP.ReadTimeout = (int)100;
//SP.WriteTimeout = (int)100;
}
private void SP_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
if (SP.IsOpen)
{
string str = SP.ReadLine();
str = str.Trim().Replace("\r\n", "");
lbResult.Text = str;
rbText.Text = string.Format("{0}{1}{2}", rbText.Text, "[Received]", str+"\r\n");
rbText.SelectionStart = rbText.Text.Length;
rbText.ScrollToCaret();
//rbText.Text += "[전송된 Data] " + str;
Thread.Sleep(1000);
}
}
private void btnOpen_Click(object sender, EventArgs e)
{
SP.Open();
if (SP.IsOpen)
{
//rbText.Text = string.Format("{0}{1}", rbText.Text, "\r\n[Succed] Port Open!!");
rbText.Text = "["+SP.PortName.ToString() +"] Port Open Connect!!";
lbStatus.Text = "Connect!!";
btnOpen.Visible = false;
btnPortClose.Visible = true;
}
else
{
//rbText.Text = string.Format("{0}{1}", rbText.Text, "\r\n[Fail] Port Open!!");
rbText.Text = "[" + SP.PortName.ToString() + "] Port Open Failed!";
lbStatus.Text = "[Fail] Port Open!";
lbStatus.ForeColor = Color.Red;
}
}
private void cmbPort_SelectedIndexChanged(object sender, EventArgs e)
{
SP.PortName = cmbPort.SelectedItem.ToString();
}
private void cmbBRate_SelectedIndexChanged(object sender, EventArgs e)
{
switch (cmbBRate.SelectedIndex)
{
case 0 :
SP.BaudRate = (int)9600;
break;
case 1:
SP.BaudRate = (int)14400;
break;
case 2:
SP.BaudRate = (int)19200;
break;
case 3:
SP.BaudRate = (int)38400;
break;
case 4:
SP.BaudRate = (int)57600;
break;
case 5:
SP.BaudRate = (int)115200;
break;
default:
SP.BaudRate = (int)19200;
break;
}
}
private void cmbDataBits_SelectedIndexChanged(object sender, EventArgs e)
{
switch (cmbDataBits.SelectedIndex)
{
case 0:
SP.DataBits = 8;
break;
case 1:
SP.DataBits = 7;
break;
default :
SP.DataBits = 8;
break;
}
}
private void cmbParity_SelectedIndexChanged(object sender, EventArgs e)
{
switch (cmbParity.SelectedIndex)
{
case 0:
SP.Parity = Parity.Even;
break;
case 1:
SP.Parity = Parity.Mark;
break;
case 2:
SP.Parity = Parity.None;
break;
case 3:
SP.Parity = Parity.Odd;
break;
case 4:
SP.Parity = Parity.Space;
break;
default:
SP.Parity = Parity.None;
break;
}
}
private void cmbStopBits_SelectedIndexChanged(object sender, EventArgs e)
{
switch (cmbStopBits.SelectedIndex)
{
case 0:
//SP.StopBits = StopBits.None;
MessageBox.Show("이 값은 지원되지 않습니다");
break;
case 1:
SP.StopBits = StopBits.One;
break;
case 2:
SP.StopBits = StopBits.OnePointFive;
break;
case 3:
SP.StopBits = StopBits.Two;
break;
default:
SP.StopBits = StopBits.One;
break;
}
}
private void Form1_Load(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
}
private void btnPortClose_Click(object sender, EventArgs e)
{
SP.Close();
rbText.Text += "\r\n" + "[" + SP.PortName.ToString() + "] Port Close!!";
lbStatus.Text = "Not Connect!!";
btnOpen.Visible = true;
btnPortClose.Visible = false;
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (SP.IsOpen)
{
SP.Close();
}
}
}
}
C#시리얼 통신 소스 코드입니다....!!
프로그램은 http://bluene.net/blog/514 로 이동하시면 다운로드 받으 실 수 있습니다.
'프로그램 세상 > C#' 카테고리의 다른 글
C# API 사이트 (0) | 2009.10.11 |
---|---|
Chart Control (0) | 2009.10.09 |
[C#] 주민번호체크 (0) | 2009.10.09 |
[C#] FTP 업로드 (0) | 2009.10.08 |
[C#] 멀티 업로드 (0) | 2009.10.08 |