Atendiendo algunas dudas sobre como optimizar la recepción de datos utilizando ‘ReadLine’, y a falta de un ejemplo completo os facilito una alternativa.
La idea es llamar a la funcion de recepcion siempre que se reciben datos y disparar el evento de trama completa cuando se cumple la condicion de carácter final.Imports System.IO.Ports
Public Class PortsSerie
‘
‘Declarar el evento disparo fin de recepcion
Public Event RxFin(ByVal Trama As String)
‘
‘String de recepcion utilizado como buffer
Private PortSerie_Recepcion As String = «»
‘Anadir el manipulador de recepcion en la sub New, Load…
AddHandler PortSerie.DataReceived, AddressOf Rx
Protected Sub Rx(ByVal sender As Object, _
ByVal e As serialDataReceivedEventArgs)
Try
‘Añadir la recepcion actual al buffer
PortSerie_Recepcion += PortSerie.ReadExisting
If PortSerie_Recepcion.Contains(Chr(13)) Then
RaiseEvent RxFin(PortSerie_Recepcion)
PortSerie_Recepcion = «»
End If
Catch ex As Exception
‘En caso de excepción
End Try
End Sub
End Class
Espero que esto os sirva de idea, esperando dejaros un ejemplo para descargar tan pronto como me sea posible.
Saludos,
Pep Lluis,