반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Archives
Today
Total
관리 메뉴

폴크(FOLC)

C# 테크닉 - 시리얼 통신 ( RS232 ) 본문

C#, WF, WPF(.NET)/C#, WF, WPF(.NET) 테크닉

C# 테크닉 - 시리얼 통신 ( RS232 )

folcjin 2021. 12. 10. 10:10
728x90
반응형

# 통신 채널이나 컴퓨터 버스를 거쳐 하나의 비트 단위로 연속적으로 데이터를 전송하는 과정
   > 시간으로 나누어 차례대로 전송
   > 전송 방식은 동기/비동기 방식으로 나뉜다.
      - 동기 방식 : 데이터 신호와는 별도로 동기신호를 보낸다.
      - 비동기 방식 : 데이터 신호만 보내고 각각의 방식에 따라 데이터 비트를 찾는다.

# 소스 코드
using System;
using System.IO.Ports;

SerialPort m_port = new SerialPort();
string m_strQueueMessage;
public bool OpenPort(string port, int baud = 9600)
{
    m_port.PortName        = port;             // default : COM1
    m_port.BaudRate        = baud;             // default : 38400
    m_port.DataBits        = 8;                // default : 8
    m_port.StopBits        = StopBits.One;     // default : StopBits.One
    m_port.Parity          = Parity.None;      // default : Parity.None
    m_port.ReadTimeout     = 1000;             // default : 500ms
    m_port.WriteTimeout    = 1000;             // default : 500ms
    m_port.DataReceived    += new SerialDataReceivedEventHandler(RecvData);
    m_port.Open();
    return m_port.IsOpen;
}

public void ClosePort()
{
    m_port.Close();
}

public void SendData(string msg)
{
    m_port.Write(msg);
}

public void RecvData(Object sender, SerialDataReceivedEventArgs e)
{
    string recv_data = m_port.ReadExisting();

    m_strQueueMessage += recv_data;

    if (0 < recv_data.Length)
    {
        // 수신 이벤트를 발생시킨다.
    }
}

728x90
반응형
사업자 정보 표시
사업자 등록번호 : -- | TEL : --