다음을 통해 공유


방법: Visual Basic의 직렬 포트에서 문자열 수신

이 항목에서는 Visual Basic에서 컴퓨터의 직렬 포트에서 문자열을 수신하는 데 사용하는 My.Computer.Ports 방법을 설명합니다.

직렬 포트에서 문자열을 수신하려면

  1. 반환 문자열을 초기화합니다.

    Dim returnStr As String = ""
    
  2. 문자열을 제공해야 하는 직렬 포트를 결정합니다. 이 예제에서는 다음과 같이 COM1가정합니다.

  3. 이 메서드를 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
    
  4. Do 더 이상 사용할 줄이 없을 때까지 텍스트 줄을 읽는 루프를 만듭니다.

    Do
    Loop
    
  5. 이 메서드를 ReadLine() 사용하여 직렬 포트에서 사용 가능한 다음 텍스트 줄을 읽습니다.

    Dim Incoming As String = com1.ReadLine()
    
  6. If 문을 사용하여 메서드가 ReadLine() 반환 Nothing 되는지 확인합니다(즉, 더 이상 텍스트를 사용할 수 없음). Nothing을 반환하면 Do 루프를 종료합니다.

    If Incoming Is Nothing Then
        Exit Do
    End If
    
  7. Else 문자열이 실제로 읽히는 경우를 처리하기 위해 If 문에 블록을 추가합니다. 블록은 직렬 포트의 문자열을 반환 문자열에 추가합니다.

    Else
        returnStr &= Incoming & vbCrLf
    
  8. 문자열을 반환합니다.

    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 문을 참조하세요.

참고하십시오