이번에는 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는 현재 연결된 것이 아무것도 없어서 나오질 않네요..
다음과 같이 생겼습니다.
이상으로 포트 목록을 가져오는 법에 대하여 알아보았습니다.
C# DataTable 중복 값 제거 (0) | 2022.07.01 |
---|---|
C# HttpWebRequest의 '이 verb-type으로 content-body를 보낼 수 없습니다.' 예외에 대한 정리 (0) | 2022.06.30 |
C# 사용자 지정 특성 작성 (0) | 2021.09.27 |
C# Graphics 클래스를 사용하여 그리기 (심화) (0) | 2021.03.11 |
C# Graphics 클래스를 사용하여 그리기 (기초) (0) | 2021.02.17 |
댓글 영역