이 항목에서는 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 TryDo더 이상 사용할 줄이 없을 때까지 텍스트 줄을 읽는 루프를 만듭니다.Do Loop이 메서드를 ReadLine() 사용하여 직렬 포트에서 사용 가능한 다음 텍스트 줄을 읽습니다.
Dim Incoming As String = com1.ReadLine()If문을 사용하여 메서드가 ReadLine() 반환Nothing되는지 확인합니다(즉, 더 이상 텍스트를 사용할 수 없음).Nothing을 반환하면Do루프를 종료합니다.If Incoming Is Nothing Then Exit Do End IfElse문자열이 실제로 읽히는 경우를 처리하기 위해If문에 블록을 추가합니다. 블록은 직렬 포트의 문자열을 반환 문자열에 추가합니다.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 코드 조각으로도 사용할 수 있습니다. 코드 조각 선택기에서 연결 및 네트워킹에 있습니다. 자세한 내용은 코드 조각참조하세요.
코드 컴파일
이 예에서는 컴퓨터가 COM1을 사용한다고 가정합니다.
강력한 프로그래밍
이 예에서는 컴퓨터가 COM1을 사용한다고 가정합니다. 더 많은 유연성을 위해 코드는 사용자가 사용 가능한 포트 목록에서 원하는 직렬 포트를 선택할 수 있도록 허용해야 합니다. 자세한 내용은 방법: 사용 가능한 직렬 포트 표시를 참조하세요.
이 예제에서는 Try...Catch...Finally 블록을 사용하여 애플리케이션이 포트를 닫고 시간 제한 예외를 catch하도록 합니다. 자세한 내용은 Try...Catch...Finally 문을 참조하세요.
참고하십시오
.NET