Postupy: Příjem řetězců ze sériových portů v jazyce Visual Basic
Toto téma popisuje, jak přijímat My.Computer.Ports
řetězce ze sériových portů počítače v jazyce Visual Basic.
Příjem řetězců ze sériového portu
Inicializuje vrácený řetězec.
Dim returnStr As String = ""
Určete, který sériový port má poskytovat řetězce. Tento příklad předpokládá, že je
COM1
.Použijte metodu
My.Computer.Ports.OpenSerialPort
k získání odkazu na port. Další informace najdete na webu OpenSerialPort.Blok
Try...Catch...Finally
umožňuje aplikaci zavřít sériový port, i když vygeneruje výjimku. V tomto bloku by se měl zobrazit veškerý kód, který manipuluje s sériovým portem.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ů textu, dokud nebudou k dispozici žádné další řádky.Do Loop
Použijte metodu ReadLine() ke čtení dalšího dostupného řádku textu ze sériového portu.
Dim Incoming As String = com1.ReadLine()
If
Pomocí příkazu určete, zda ReadLine() metoda vrátíNothing
(což znamená, že není k dispozici žádný další text). Pokud se vrátíNothing
, ukončete smyčkuDo
.If Incoming Is Nothing Then Exit Do End If
Else
Přidejte doIf
příkazu blok pro zpracování případu, pokud je řetězec skutečně přečten. Blok připojí řetězec z sériového portu k návratovém ř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é k dispozici jako fragment kódu IntelliSense. V nástroji pro výběr fragmentu kódu se nachází v Připojení ivitě a sítích. Další informace najdete v tématu Fragmenty kódu.
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
. Aby byl kód flexibilnější, měl by uživateli umožnit vybrat požadovaný sériový port ze seznamu dostupných portů. Další informace naleznete v tématu Postupy: Zobrazení dostupných sériových portů.
Tento příklad používá Try...Catch...Finally
blok, aby se zajistilo, že aplikace port zavře a zachytí všechny výjimky časového limitu. Další informace naleznete v tématu Vyzkoušet... Chytit... Příkaz Finally.