Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describe cómo usar My.Computer.Ports
para recibir cadenas de los puertos serie del equipo en Visual Basic.
Para recibir cadenas del puerto serie
Inicialice la cadena de devolución.
Dim returnStr As String = ""
Determine qué puerto serie debe proporcionar las cadenas. En este ejemplo se supone que es
COM1
.Use el
My.Computer.Ports.OpenSerialPort
método para obtener una referencia al puerto. Para obtener más información, consulte OpenSerialPort.El
Try...Catch...Finally
bloque permite que la aplicación cierre el puerto serie incluso si genera una excepción. Todo el código que manipula el puerto serie debe aparecer dentro de este bloque.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
Cree un
Do
bucle para leer líneas de texto hasta que no haya más líneas disponibles.Do Loop
Use el ReadLine() método para leer la siguiente línea de texto disponible desde el puerto serie.
Dim Incoming As String = com1.ReadLine()
Use una
If
instrucción para determinar si el ReadLine() método devuelveNothing
(lo que significa que no hay más texto disponible). Si devuelveNothing
, salga delDo
bucle .If Incoming Is Nothing Then Exit Do End If
Agregue un bloque
Else
a la instrucciónIf
para controlar el caso si la cadena se lee realmente. El bloque anexa la cadena del puerto serie a la cadena de retorno.Else returnStr &= Incoming & vbCrLf
Devuelva la cadena.
Return returnStr
Ejemplo
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
Este ejemplo de código también está disponible como fragmento de código de IntelliSense. En el selector de fragmentos de código, se encuentra en Conectividad y redes. Para obtener más información, vea los fragmentos de código .
Compilar el código
En este ejemplo se supone que el equipo usa COM1
.
Programación sólida
En este ejemplo se supone que el equipo usa COM1
. Para obtener más flexibilidad, el código debe permitir al usuario seleccionar el puerto serie deseado en una lista de puertos disponibles. Para obtener más información, vea Cómo: Mostrar puertos serie disponibles.
En este ejemplo se usa un Try...Catch...Finally
bloque para asegurarse de que la aplicación cierra el puerto y para detectar las excepciones de tiempo de espera. Para obtener más información, vea Instrucción Try...Catch...Finally (Visual Basic).