상세 컨텐츠

본문 제목

C# PC에 잡혀있는 SerialPort 목록 가져오기

프로그래밍/C#

by TickTack 2021. 10. 13. 16:01

본문

이번에는 C#으로 Serial 통신을 사용할 때 많이 이용하는 SerialPort 검색에 대하여 알아보겠습니다.

먼저 현재 PC에 인식되어있는 포트들을 모두 가져오는 함수입니다.

 

public List<string> GetSerialPorts()
{
    List<string> portNames = new List<string>();
    string[] port = System.IO.Ports.SerialPort.GetPortNames();

    foreach (string portName in port)
    {
        portNames.Add(portName);
    }

    portNames.Sort();
    return portNames;
}

 

리스트 하나를 먼저 만들어놓고 SerialPort 클래스의 GetPortNames() 함수로

포트들을 가져와서 string[]에 저장합니다.

그 다음 foreach문으로 string[]에 있는 값들을 꺼내서 리스트에 차례대로 추가합니다.

그리고 PortName1, PortName2 ... 와 같은 모습이 나오도록 내부를 정렬해줍니다.

해당 코드는 다른 방식으로도 표현할 수 있습니다.

 

public string[] GetSerialPorts()
{
    string[] port = System.IO.Ports.SerialPort.GetPortNames();
    Array.Sort(port);
    return port;
}

 

List로 반환하는 것을 string[]로 반환하도록 한 코드입니다.

다음은 활용예시입니다.

 

public void GetSerialPorts(ComboBox combobox)
{
    string[] port = System.IO.Ports.SerialPort.GetPortNames();
    combobox.Items.Clear();

    foreach (string portName in port)
    {
        combobox.Items.Add(portName);
    }
}

 

이렇게하면 원하는 ComboBox에 포트를 순서대로 담아놓을 수 있습니다.

그리고 SerialPort.GetPortNames() 를 통하여 얻는 포트명은 다음에서 확인 가능합니다.

 

 

윈도우 + R 키로 실행창을 열고 위와 같이 입력 후 넘어가면 장치 관리자가 나옵니다.

 

 

위 화면에서 포트(COM & LPT)라고 써져있는 것이 있을 것입니다.

그 것을 더블클릭하면 현재 PC에서 인식한 포트들이 나열되고 그것을 바탕으로 가져오는 것 입니다.

제 PC는 현재 연결된 것이 아무것도 없어서 나오질 않네요..

다음과 같이 생겼습니다.

 

 

이상으로 포트 목록을 가져오는 법에 대하여 알아보았습니다.

관련글 더보기

댓글 영역