Foros del Web » Programación para mayores de 30 ;) » .NET »

Lectura COM1 y Vb.net 2008

Estas en el tema de Lectura COM1 y Vb.net 2008 en el foro de .NET en Foros del Web. Hola, espero que me puedan ayudar. Estoy programando una aplicacion para leer una balanza conectada al puerto COM1. La aplicacion esta desarrollada con Vb.net 2008 ...
  #1 (permalink)  
Antiguo 22/05/2012, 07:59
 
Fecha de Ingreso: febrero-2008
Mensajes: 13
Antigüedad: 16 años, 9 meses
Puntos: 0
Pregunta Lectura COM1 y Vb.net 2008

Hola, espero que me puedan ayudar. Estoy programando una aplicacion para leer una balanza conectada al puerto COM1. La aplicacion esta desarrollada con Vb.net 2008 y para leer uso la siguiente funcion:


Código:
    Private Sub DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles serialPort.DataReceived

        txtDataReceived.Invoke(New myDelegate(AddressOf updateTextBox), New Object() {})

    End Sub
lo que llama a :

Código:
    Public Delegate Sub myDelegate()
    'agrega al textbox de lo que llega por balanza 1
    Public Sub updateTextBox()

        Dim buffer() As Byte = New Byte() {}
        Dim bufSIZ As Integer
        bufSIZ = serialPort.BytesToRead
        Array.Resize(buffer, bufSIZ)
        serialPort.Read(buffer, 0, bufSIZ)

        With txtDataReceived
            .Font = New Font("Garamond", 12.0!, FontStyle.Bold)
            .SelectionColor = Color.Red
            .AppendText(ByteArrayToHexString(buffer))
            .ScrollToCaret()
        End With

    End Sub

donde la funcion ByteArrayToHexString(buffer) es esta:

Código:
    Public Shared Function ByteArrayToHexString2(ByVal bytes() As Byte) As String
        Dim hexStr As String = "0x"
        Dim i As Integer
        For i = 0 To bytes.Length - 1
            If Hex(bytes(i)).Length = 1 Then
                hexStr &= 0 & Hex(bytes(i))
            Else
                hexStr &= Hex(bytes(i))
            End If
        Next i

        Return hexStr
    End Function

Mi problema es que por hyperterminal lee todo bien, osea por ejemplo las lecturas:

+ 1.2287 g
+ 0.8685 g


pero por vb.net me aparecen una lecturas en hexadecimal bastante extrañas (generalmente solo ceros y 8), por ejemplo esto:


0x80808080000x000000000x00000000008080800x00000000 008000800x800000000x00800080000x00000x008080000080 00

separandolas se pueden leer estas:

0x8080808000
0x00000000
0x0000000000808080
0x0000000000800080
0x80000000
0x0080008000
0x0000
0x00808000008000


Como puedo traducir esto a un formato leible, como el que me sale en el hyperterminal?

de antemano muchas gracias.
  #2 (permalink)  
Antiguo 22/05/2012, 11:26
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 4 meses
Puntos: 267
Respuesta: Lectura COM1 y Vb.net 2008

Hola vbusser, puedes colocar el array de bytes que obtienes y como se muestra este en el hyperterminal(como pusiste de ejemplo : + 1.2287 g). Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 22/05/2012, 19:18
Avatar de emmax  
Fecha de Ingreso: agosto-2010
Ubicación: Sonora
Mensajes: 172
Antigüedad: 14 años, 2 meses
Puntos: 8
Respuesta: Lectura COM1 y Vb.net 2008

vbusser, una pregunta, he trabajado con basculas por puerto serial y en todas se tiene que enviar un caracter para poder que la bascula te mande los datos del peso, no se si este leyendo mal tu codigo pero no veo que envies este dato, no se tampoco la marca que manejas y si es necesario este dato con la marca como te comento.

Saludos....

Etiquetas: com1, lectura, net, textbox, vb, aplicaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:19.