Megosztás a következőn keresztül:


Útmutató: Sztringek fogadása soros portokról a Visual Basicben

Ez a témakör leírja, hogyan használható a My.Computer.Ports a számítógép soros portjaiból származó sztringek fogadására a Visual Basicben.

Sztringek fogadása a soros portról

  1. Inicializálja a visszatérési karakterláncot.

    Dim returnStr As String = ""
    
  2. Határozza meg, hogy melyik soros port biztosítja a karakterláncokat. Ez a példa azt feltételezi, hogy az COM1.

  3. A My.Computer.Ports.OpenSerialPort metódust használva szerezzen hivatkozást a portra. További információért lásd OpenSerialPort.

    A Try...Catch...Finally blokk lehetővé teszi, hogy az alkalmazás akkor is bezárja a soros portot, ha kivételt hoz létre. A soros portot módosító összes kódnak ebben a blokkban kell megjelennie.

    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. Hozzon létre egy hurkot Do a szövegsorok olvasásához, amíg nem áll rendelkezésre több sor.

    Do
    Loop
    
  5. Használja a(z) ReadLine() metódust a következő elérhető szövegsor beolvasására a soros portról.

    Dim Incoming As String = com1.ReadLine()
    
  6. Használjon egy If utasítást annak meghatározására, hogy a ReadLine() metódus visszaadja-e Nothing, ami azt jelenti, hogy nincs több szöveg. Ha visszatér Nothing, lépjen ki a Do hurokból.

    If Incoming Is Nothing Then
        Exit Do
    End If
    
  7. Adjon hozzá egy blokkot Else az utasításhoz az If eset kezeléséhez, ha a sztring valóban be van olvasva. A blokk hozzáfűzi a soros portról érkező karakterláncot a visszatérési karakterlánchoz.

    Else
        returnStr &= Incoming & vbCrLf
    
  8. Adja vissza a sztringet.

    Return returnStr
    

példa

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

Ez a példakód IntelliSense kódrészletként is elérhető. A kódrészletválasztóban a Kapcsolat és hálózatkezelés területen található. További információ: Kódrészletek.

A kód összeállítása

Ez a példa feltételezi, hogy a számítógép a következőt használja COM1: .

Robusztus programozás

Ez a példa feltételezi, hogy a számítógép a következőt használja COM1: . A nagyobb rugalmasság érdekében a kódnak lehetővé kell tennie, hogy a felhasználó kiválaszthassa a kívánt soros portot az elérhető portok listájából. A további információkért lásd: Az elérhető soros portok megjelenítése.

Ez a példa egy blokkot Try...Catch...Finally használ annak biztosításához, hogy az alkalmazás bezárja a portot, és hogy észlelje az időtúllépési kivételeket. További információ: Kipróbálás... Elkap... Végül nyilatkozat.

Lásd még