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