C# RS232 시리얼(Serial) 통신 예제 소스

C# RS232 시리얼(Serial) 통신 예제 소스



구글링해서 얻은 프로젝트인데 UI가 이뻐서 소개합니다.


C# RS232 시리얼(Serial) 통신 예제 소스[C# RS232 시리얼(Serial) 통신 예제 소스]


일단, 위의 기본 설정창에서 저장된 사항은 아래 코드를 거쳐 로컬에 저장됩니다.


Config 저장 소스


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/// <summary>
///   Write the settings to disk. </summary>
public static void Write()
{
    IniFile ini = new IniFile(Application.StartupPath + "\\Termie.ini");
    ini.WriteValue("Port""PortName", Port.PortName);
    ini.WriteValue("Port""BaudRate", Port.BaudRate);
    ini.WriteValue("Port""DataBits", Port.DataBits);
    ini.WriteValue("Port""Parity", Port.Parity.ToString());
    ini.WriteValue("Port""StopBits", Port.StopBits.ToString());
    ini.WriteValue("Port""Handshake", Port.Handshake.ToString());
 
    ini.WriteValue("Option""AppendToSend", Option.AppendToSend.ToString());
    ini.WriteValue("Option""HexOutput", Option.HexOutput.ToString());
    ini.WriteValue("Option""MonoFont", Option.MonoFont.ToString());
    ini.WriteValue("Option""LocalEcho", Option.LocalEcho.ToString());
        ini.WriteValue("Option""StayOnTop", Option.StayOnTop.ToString());
    ini.WriteValue("Option""FilterUseCase", Option.FilterUseCase.ToString());
}
cs

 

MSDN에 올라온 예제를 아주 깔끔하게 정리했다는 느낌이네요.


소스도 간결하고 보기에도 좋습니다.


보다 자세한 사항은 첨부 파일을 다운받아 확인해 보시고 주요 소스만 소개합니다. 마음에 들면 다운 받으세요. ^^.


RS232 시리얼 통신 데이터 수신 소스 (Serial Read)


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
/// <summary>
/// Handle data received event from serial port.
/// </summary>
/// <param name="data">incoming data</param>
public void OnDataReceived(string dataIn)
{
    //Handle multi-threading
    if (InvokeRequired)
    {
        Invoke(new StringDelegate(OnDataReceived), new object[] { dataIn });
        return;
    }
 
    // pause scrolling to speed up output of multiple lines
    bool saveScrolling = scrolling;
    scrolling = false;
 
    // if we detect a line terminator, add line to output
    int index;
 
    while (dataIn.Length > 0 &&
        ((index = dataIn.IndexOf("\r")) != -1 ||
        (index = dataIn.IndexOf("\n")) != -1))
    {
        String StringIn = dataIn.Substring(0, index);
        dataIn = dataIn.Remove(0, index + 1);
 
        logFile_writeLine(AddData(StringIn).Str);
        partialLine = null;    // terminate partial line
    }
 
    // if we have data remaining, add a partial line
    if (dataIn.Length > 0)
    {
        partialLine = AddData(dataIn);
    }
 
    // restore scrolling
    scrolling = saveScrolling;
    outputList_Scroll();
}
cs


C# 시리얼 rs232 통신 소스[Serial 통신 프로그램]


RS232 시리얼 통신 데이터 송신 소스 (Serial Write)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/// <summary>
/// Send command
/// </summary>
private void button5_Click(object sender, EventArgs e)
{
    string command = comboBox1.Text;
    comboBox1.Items.Add(comboBox1.Text);
    comboBox1.Text = "";
    comboBox1.Focus();
 
    if (command.Length > 0)
    {
        command = ConvertEscapeSequences(command);
 
        CommPort com = CommPort.Instance;
        com.Send(command);
 
        if (Settings.Option.LocalEcho)
        {
            outputList_Add(command + "\n", sentColor);
        }
    }
}
cs


C# RS232 시리얼(Serial) 통신 예제 소스

이 글을 공유하기

댓글(0)

Designed by JB FACTORY