Hola,
 
Trabajo con vb 2005 , estoy recibiendo datos por el puerto serial COM1 con la 
siguiente sub (está hecha sólo para hacer pruebas de la interfase)
.....
AddHandler Puerto.DataReceived, AddressOf Recibir
......
 
Private Sub Recibir(ByVal Sender As Object, ByVal e As 
IO.Ports.SerialDataReceivedEventArgs)
Dim RES As String
Dim mBuffer As Byte() = New Byte(Puerto.ReadBufferSize) {}
Try
       Puerto.Read(mBuffer, 0, Puerto.ReadBufferSize)
       If mBuffer(0) = Hex(5) Then
          Me.mensa.Text = "EMPIEZA LA COMUNICACION"
          MandarACK()
       ElseIf mBuffer(0) = Hex(2) Then
          Me.mensa.Text = "SE ESTAN COMUNICANDO"
          MessageBox.Show(mBuffer.Length)
          RES = System.Text.ASCIIEncoding.ASCII.GetString(mBuffer)
          Me.txtRecibido.Text = RES
          SW1.WriteLine(RES)
          MandarACK()
       ElseIf mBuffer(0) = Hex(4) Then
          Me.mensa.Text = "TERMINÓ LA COMUNICACION"
       Else
          Me.mensa.Text = "recibió " & Convert.ToChar(mBuffer(0))
End If
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
 
La longitud del buffer es 4097, pero el getstring(mbuffer) me devuelve sólo 8 
caracteres. Sé que recibo más de 8 porque probé con HyperTerminal.
Probé con readexisting y no anduvo. Es la primera vez que trabajo con un RS232.
 
Alguna sugerencia ?
Muchas Gracias.
Patricia


      

Responder a