Bagikan melalui


Cara: Menerima String Dari Port Serial di Visual Basic

Topik ini menjelaskan cara menggunakan My.Computer.Ports untuk menerima string dari port seri komputer di Visual Basic.

Untuk menerima string dari port serial

  1. Menginisialisasi string pengembalian.

    Dim returnStr As String = ""
    
  2. Tentukan port serial mana yang harus menyediakan string. Contoh ini mengasumsikan itu adalah COM1.

  3. Gunakan metode My.Computer.Ports.OpenSerialPort untuk mendapatkan referensi ke port. Untuk informasi selengkapnya, lihat OpenSerialPort .

    Blok Try...Catch...Finally memungkinkan aplikasi untuk menutup port serial, bahkan jika menimbulkan pengecualian. Semua kode yang memanipulasi port serial akan muncul dalam blok ini.

    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. Buat perulangan Do untuk membaca baris teks hingga tidak ada lagi baris yang tersedia.

    Do
    Loop
    
  5. ReadLine() Gunakan metode untuk membaca baris teks berikutnya yang tersedia dari port serial.

    Dim Incoming As String = com1.ReadLine()
    
  6. If Gunakan pernyataan untuk menentukan apakah ReadLine() metode mengembalikan Nothing (yang berarti tidak ada lagi teks yang tersedia). Jika memang mengembalikan nilai Nothing, keluar dari perulangan Do.

    If Incoming Is Nothing Then
        Exit Do
    End If
    
  7. Tambahkan blok Else ke pernyataan If untuk menangani situasi jika string benar-benar dibaca. Blok menambahkan string dari port serial ke string pengembalian.

    Else
        returnStr &= Incoming & vbCrLf
    
  8. Kembalikan string.

    Return returnStr
    

Contoh

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

Contoh kode ini juga tersedia sebagai cuplikan kode IntelliSense. Dalam pemilih cuplikan kode, itu terletak di Konektivitas dan Jaringan. Untuk informasi selengkapnya, lihat Cuplikan Kode .

Mengkompilasi Kode

Contoh ini mengasumsikan komputer menggunakan COM1.

Pemrograman yang Kuat

Contoh ini mengasumsikan komputer menggunakan COM1. Untuk fleksibilitas lebih lanjut, kode harus memungkinkan pengguna untuk memilih port serial yang diinginkan dari daftar port yang tersedia. Untuk informasi selengkapnya, lihat Cara: Menampilkan Port Serial yang Tersedia.

Contoh ini menggunakan blok Try...Catch...Finally untuk memastikan aplikasi menutup port dan untuk menangkap pengecualian batas waktu. Untuk informasi selengkapnya, lihat Coba... Menangkap... Pernyataan Terakhir.

Lihat juga