시리얼은 거의 모든 PC에서 표준으로 사용되는 디바이스 통신 프로토콜 이다.
디바이스와 통신을 원할경우 다음과 같이 통신을 하면 된다.
using System.IO;
using System.IO.Ports;
1. Open
==> 이 함수는 return 값이 serial 로 되어있으므로 다음과 같이 써야한다.
SerialPort serialport = SerialOpen(설정 값들);
private SerialPort SerialOpen(SerialPort sp, string comPort, string baudRate, string parity, string databits, string stopbits)
{
System.IO.Ports.Parity ipartity = Parity.None;
System.IO.Ports.StopBits istopbits = StopBits.One;
sp = new SerialPort(comPort.ToString(), Convert.ToInt32(baudRate));
sp.Encoding = Encoding.Default;
switch (parity)
{
case "None":
ipartity = Parity.None;
break;
case "Odd":
ipartity = Parity.Odd;
break;
case "Even":
ipartity = Parity.Even;
break;
}
switch (stopbits)
{
case "None":
istopbits = StopBits.None;
break;
case "One":
istopbits = StopBits.One;
break;
case "Two":
istopbits = StopBits.Two;
break;
}
sp.Parity = ipartity;
sp.DataBits = Convert.ToInt32(databits);
sp.StopBits = istopbits;
try
{
sp.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
sp.Open();
}
catch (Exception e)
{
}
return sp;
}
2. Recv
private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string recv = "";
while (serialPort.BytesToRead > 0)
{
recv += serialPort.ReadExisting();
}
}
3. Write
private void WriteSerial(SerialPort sp ,byte[] writebyte)
{
sp.Write(writebyte, 0, writebyte.Length);
}
4. Close
Close도 역시 Return 값으로 되어있어서 Open과 똑같이 이용하면 된다.
public SerialPort SerialClose(SerialPort sp)
{
try
{
sp.Close();
}
catch (Exception e)
{
}
return sp;
}
'프로그램 언어 > C#' 카테고리의 다른 글
Excel 파일로 저장 하기 (0) | 2016.12.14 |
---|---|
Lan 연결 상태 확인(Ping Test) (0) | 2016.12.14 |
CSV 파일로 저장하기 (0) | 2016.12.14 |
Cross Thread 문제 (0) | 2016.12.13 |
폴더 내 지정날짜 이상이면 자동으로 지우기 (0) | 2016.12.13 |