다음을 통해 공유


방법: 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. If 문에 Else 블록을 추가하여 문자열을 실제로 읽는 경우를 처리합니다. 이 블록은 직렬 포트의 문자열을 반환 문자열에 추가합니다.

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

참고 항목