Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konu, Visual Basic'te bilgisayardaki seri bağlantı noktalarından dizeleri almak için My.Computer.Ports
'ın nasıl kullanılacağını açıklar.
Seri porttan dizi almak için
Dönüş dizesini başlatın.
Dim returnStr As String = ""
Dizeleri hangi seri bağlantı noktasının sağlaması gerektiğini belirleyin. Bu örnekte olduğu varsayılır
COM1
.Bağlantı noktasına başvuru almak için
My.Computer.Ports.OpenSerialPort
yöntemini kullanın. Daha fazla bilgi için bkz. OpenSerialPort.Bu blok,
Try...Catch...Finally
uygulamanın, özel durum oluştursa bile seri bağlantı noktasını kapatmasına olanak tanır. Seri bağlantı noktasını işleyen tüm kod bu blok içinde görünmelidir.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
Kullanılabilir satır kalmayıncaya kadar metin satırlarını okumak için bir
Do
döngü oluşturun.Do Loop
Seri porttan bir sonraki mevcut metin satırını okumak için ReadLine() yöntemini kullanın.
Dim Incoming As String = com1.ReadLine()
Bir
If
deyimi kullanarak ReadLine() yöntemininNothing
döndürüp döndürmediğini belirleyin (bu, başka metin kalmadığı anlamına gelir). EğerNothing
dönerse,Do
döngüsünden çıkın.If Incoming Is Nothing Then Exit Do End If
Bir dize gerçekten okunuyorsa durumu ele almak için
Else
ifadesine birIf
bloğu ekleyin. Blok, dizeyi seri bağlantı noktasından dönüş dizesine ekler.Else returnStr &= Incoming & vbCrLf
Dizeyi geri döndür.
Return returnStr
Örnek
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
Bu kod örneği, IntelliSense kod parçacığı olarak da kullanılabilir. Kod parçacığı seçicisinde Bağlantı ve Ağ'da bulunur. Daha fazla bilgi için bkz. Kod Parçacıkları.
Kodu Derleme
Bu örnekte, bilgisayarın kullandığı COM1
varsayılır.
Sağlam Programlama
Bu örnekte, bilgisayarın kullandığı COM1
varsayılır. Daha fazla esneklik için kod, kullanıcının kullanılabilir bağlantı noktaları listesinden istenen seri bağlantı noktasını seçmesine izin vermelidir. Daha fazla bilgi için bkz . Nasıl yapılır: Kullanılabilir Seri Bağlantı Noktalarını Gösterme.
Bu örnekte, uygulamanın bağlantı noktasını kapatmasını sağlamak ve zaman aşımı özel durumlarını yakalamak için bir Try...Catch...Finally
blok kullanılır. Daha fazla bilgi için, Try...Catch...Finally Deyimi bölümüne bakın.