Hola gente!
Hmm intentaria revisar los parametros, y ver de manejar la puerta por eventos. Ejemplo simple: http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.datarecei ved.aspx Otro ejemplo, presentado en un enlace de: http://www.vbforums.com/showthread.php?t=530790 http://www.vbforums.com/attachment.php?attachmentid=68715 <http://www.vbforums.com/attachment.php?attachmentid=68715&d=1233255133> &d=1233255133 Pero probaria con el primer ejemplo, parece mas simple. Nos leemos! Angel Java Lopez http://www.ajlopez.com http://twitter.com/ajlopez From: [email protected] [mailto:[email protected]] On Behalf Of Patricia Banfi Sent: Wednesday, December 01, 2010 5:29 PM To: vbnet List Member Subject: [vbnet] Lectura de un puerto RS232 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
