Postupy: Jak načíst řetězce ze sériových portů v jazyce Visual Basic
Toto téma popisuje způsob použití My.Computer.Ports k příjmu řetězce z sériových portů počítače v Visual Basic.
Přijímat řetězce z sériový portů
Inicializujte návratový řetězec.
Dim returnStr As String = ""
Určete, který sériový port by měl poskytnout řetězce. Tento příklad předpokládá, že to je COM1.
Použijte metodu My.Computer.Ports.OpenSerialPort chcete-li získat odkaz na port. Další informace naleznete v tématu OpenSerialPort.
Blok Try...Catch...Finally povolí aplikaci uzavření sériového portu i v případě, že vygeneruje výjimka. Všechen kód, který manipuluje s sériovými porty, by se měla nacházet v tomto bloku.
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
Vytvořte smyčku Do pro čtení řádků text, která se bude provádět dokud nejsou k dispozici žádné další řádky.
Do Loop
Použijte metodu ReadLine k přečtení další řádky z textu, který je načten z sériového portu.
Dim Incoming As String = com1.ReadLine()
Použijte příkaz If k zjištění, zda metoda ReadLine vrátí Nothing (což znamená žádný další text není k dispozici). Pokud vrátit Nothing, ukončete Do smyčka.
If Incoming Is Nothing Then Exit Do End If
Přidejte blok Else k příkazu If k zpracování případu, že řetězec je skutečně k přečtení. Blok připojí řetězec ze sériového portu k návratovému řetězci.
Else returnStr &= Incoming & vbCrLf
Vrátí řetězec.
Return returnStr
Příklad
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
Tento příklad kódu je také dostupný jako IntelliSense fragment kódu. V dialogu pro výběr fragment kódu je umístěn v Možnosti připojení a sítě. Další informace naleznete v tématu How to: Insert IntelliSense Code Snippets.
Probíhá kompilace kódu
Tento příklad předpokládá, že počítač používá COM1.
Robustní programování
Tento příklad předpokládá, že počítač používá COM1. Pro větší flexibilitu by měl kód umožnit uživateli vybrání požadované sériový port ze seznamu dostupných portů. Další informace naleznete v tématu Postupy: Jak zobrazit dostupně sériové porty v jazyce Visual Basic.
V tomto příkladu je použit blok Try...Catch...Finally k zabezpečení uzavření portu a k zachycení všech vyjímek spojených s vypršením časového limitu. Další informace naleznete v tématu Try...Catch...Finally Statement (Visual Basic).
Viz také
Úkoly
Postupy: Jak vytáčet modemy připojené k sériovým portům v jazyce Visual Basic
Postupy: Jak odeslat řetězce na sériové porty v jazyce Visual Basic
Postupy: Jak zobrazit dostupně sériové porty v jazyce Visual Basic