방법: Visual Basic에서 직렬 포트의 문자열 받기
이 항목에서는 Visual Basic에서 My.Computer.Ports를 사용하여 컴퓨터의 직렬 포트에서 문자열을 받는 방법에 대해 설명합니다.
직렬 포트에서 문자열을 받으려면
반환 문자열을 초기화합니다.
Dim returnStr As String = ""
문자열을 제공하는 직렬 포트를 확인합니다. 이 예제에서는 COM1으로 가정합니다.
My.Computer.Ports.OpenSerialPort 메서드를 사용하여 포트에 대한 참조를 가져옵니다. 자세한 내용은 OpenSerialPort를 참조하십시오.
Try...Catch...Finally 블록을 사용하면 예외가 생성되는 경우에도 응용 프로그램에서 직렬 포트를 닫을 수 있습니다. 직렬 포트를 조작하는 모든 코드는 이 블록 안에 있어야 합니다.
Dim com1 As IO.Ports.SerialPort = Nothing Try com1 = My.Computer.Ports.OpenSerialPort("COM1") com1.ReadTimeout = 10000 Catch ex As TimeoutException returnStr = "Error: Serial Port read timed out." Finally If com1 IsNot Nothing Then com1.Close() End Try
더 이상의 줄이 없을 때까지 텍스트 줄을 읽는 Do 루프를 만듭니다.
Do Loop
ReadLine 메서드를 사용하여 직렬 포트에서 다음 텍스트 줄을 읽습니다.
Dim Incoming As String = com1.ReadLine()
If 문을 사용하여 ReadLine 메서드가 더 이상 텍스트가 없음을 의미하는 Nothing을 반환하는지 확인합니다. Nothing을 반환하면 Do 루프를 종료합니다.
If Incoming Is Nothing Then Exit Do End If
If 문에 Else 블록을 추가하여 문자열을 실제로 읽은 경우의 대/소문자를 처리합니다. 이 블록에서는 직렬 포트의 문자열을 반환 문자열에 추가합니다.
Else returnStr &= Incoming & vbCrLf
문자열을 반환합니다.
Return returnStr
예제
Function ReceiveSerialData() As String
' Receive strings from a serial port.
Dim returnStr As String = ""
Dim com1 As IO.Ports.SerialPort = Nothing
Try
com1 = My.Computer.Ports.OpenSerialPort("COM1")
com1.ReadTimeout = 10000
Do
Dim Incoming As String = com1.ReadLine()
If Incoming Is Nothing Then
Exit Do
Else
returnStr &= Incoming & vbCrLf
End If
Loop
Catch ex As TimeoutException
returnStr = "Error: Serial Port read timed out."
Finally
If com1 IsNot Nothing Then com1.Close()
End Try
Return returnStr
End Function
이 코드 예제는 IntelliSense 코드 조각으로도 사용할 수 있습니다. 이 코드 조각은 코드 조각 선택기의 연결 및 네트워킹에 있습니다. 자세한 내용은 방법: IntelliSense 코드 조각 삽입을 참조하십시오.
코드 컴파일
이 예제에서는 컴퓨터에서 COM1을 사용하는 것으로 가정합니다.
강력한 프로그래밍
이 예제에서는 컴퓨터에서 COM1을 사용하는 것으로 가정합니다. 유연성을 높이려면 사용자가 사용 가능한 포트 목록에서 원하는 직렬 포트를 선택할 수 있도록 코드를 작성해야 합니다. 자세한 내용은 방법: Visual Basic에서 사용할 수 있는 직렬 포트 표시를 참조하십시오.
이 예제에서는 Try...Catch...Finally 블록을 사용하여 응용 프로그램에서 포트를 닫고 모든 시간 제한 예외를 catch하도록 합니다. 자세한 내용은 Try...Catch...Finally 문(Visual Basic)을 참조하십시오.
참고 항목
작업
방법: Visual Basic에서 직렬 포트에 연결된 모뎀 전화 접속
방법: Visual Basic에서 직렬 포트로 문자열 보내기
방법: Visual Basic에서 사용할 수 있는 직렬 포트 표시