Procedura: ricevere stringhe da porte seriali in Visual Basic

Aggiornamento: novembre 2007

In questo argomento verrà descritto come utilizzare My.Computer.Ports per ricevere stringhe dalle porte seriali del computer in Visual Basic.

Per ricevere stringhe dalla porta seriale

  1. Inizializzare la stringa restituita.

    Dim returnStr As String = ""
    
  2. Determinare quale porta seriale deve fornire le stringhe. In questo esempio si presuppone che sia COM1.

  3. Utilizzare il metodo My.Computer.Ports.OpenSerialPort per ottenere un riferimento alla porta. Per ulteriori informazioni, vedere Metodo My.Computer.Ports.OpenSerialPort.

    Il blocco Using consente all'applicazione di chiudere la porta seriale anche se viene generata un'eccezione. Tutto il codice relativo alla porta seriale deve essere contenuto all'interno di questo blocco o di un blocco Try...Catch...Finally.

    Using com1 As IO.Ports.SerialPort = _
            My.Computer.Ports.OpenSerialPort("COM1")
    End Using
    
  4. Creare un ciclo Do per leggere le righe di testo fino a quando non sono più disponibili righe.

    Do
    Loop
    
  5. Utilizzare il metodo ReadLine per leggere la successiva riga di testo disponibile dalla porta seriale.

    Dim Incoming As String = com1.ReadLine()
    
  6. Utilizzare un'istruzione If per determinare se il metodo ReadLine restituisce Nothing, il che significa che non è più disponibile testo. Se restituisce Nothing, uscire dal ciclo Do.

    If Incoming Is Nothing Then
        Exit Do
    End If
    
  7. Aggiungere un blocco Else all'istruzione If per gestire la situazione se la stringa viene effettivamente letta. Il blocco consente di aggiungere la stringa dalla porta seriale alla stringa restituita.

    Else
        returnStr &= Incoming & vbCrLf
    
  8. Restituire la stringa.

    Return returnStr
    

Esempio

Function ReceiveSerialData() As String
    ' Receive strings from a serial port.
    Dim returnStr As String = ""

    Using com1 As IO.Ports.SerialPort = _
            My.Computer.Ports.OpenSerialPort("COM1")
        Do
            Dim Incoming As String = com1.ReadLine()
            If Incoming Is Nothing Then
                Exit Do
            Else
                returnStr &= Incoming & vbCrLf
            End If
        Loop
    End Using

    Return returnStr
End Function

L'esempio di codice riportato di seguito è anche disponibile come frammento di codice IntelliSense. Nella casella di selezione dei frammenti di codice, si trova in Connettività e rete. Per ulteriori informazioni, vedere Procedura: inserire frammenti nel codice (Visual Basic).

Compilazione del codice

In questo esempio si presuppone che venga utilizzata la porta COM1.

Programmazione efficiente

In questo esempio si presuppone che venga utilizzata la porta COM1. Per garantire una maggiore flessibilità, il codice deve consentire all'utente di selezionare la porta seriale desiderata da un elenco di porte disponibili. Per ulteriori informazioni, vedere Procedura: mostrare le porte seriali disponibili in Visual Basic.

Nell'esempio riportato di seguito viene utilizzato un blocco Using per accertarsi che l'applicazione chiuda la porta anche se genera un'eccezione. Per ulteriori informazioni, vedere Istruzione Using (Visual Basic).

Vedere anche

Attività

Procedura: comporre numeri con modem collegati a porte seriali in Visual Basic

Procedura: inviare stringhe a porte seriali in Visual Basic

Procedura: mostrare le porte seriali disponibili in Visual Basic

Riferimenti

Oggetto My.Computer.Ports

System.IO.Ports.SerialPort