• Viernes 8 de Noviembre de 2024, 12:45

Autor Tema:  Re: Comunicación con puerto serie  (Leído 918 veces)

JDaniel

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Comunicación con puerto serie
« en: Jueves 28 de Agosto de 2003, 11:16 »
0
Hola:  Estoy desarrollando una aplicación que debe recibir y enviar datos a un microcontrolador por el puerto serie.
 He conseguido que se comuniquen, pero mi problema es que tengo que enviar datos single (4 bytes) y cuando realizo la comunicación como .InputMode = comInputModeBinary no tengo claro como hacer para enviarlos y recibirlos. Puede que el problema este en que no consigo pasar el dato de forma correcta.
 Agradeceria cualquier sugerencia.Gracias

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Comunicación con puerto serie
« Respuesta #1 en: Jueves 28 de Agosto de 2003, 11:26 »
0
Podrías probar 'empaquetando' los datos con algo así:

Public Enum ByteOrderEnum
    LittleEndianByteOrder = 0  'Primero el byte menos significativo
    BigEndianByteOrder = 1 'Primero el byte más significativo
End Enum

Public Sub PackNro(ByVal Valor As Long, bytRes() As Byte, Byval ByteOrder as ByteOrderEnum)
   
    Dim byt1(1 To 4) As Byte
    Dim intMaxExp As Integer
   
    ReDim bytRes(1 To 4)
   
    Valor = Abs(Valor)
    byt1(1) = 0
    byt1(2) = 0
    byt1(3) = 0
    byt1(4) = 0
   
    Do While intMaxExp <= 4
        If Int(Valor / 256 ^ intMaxExp) > 255 Then
            intMaxExp = intMaxExp + 1
        ElseIf intMaxExp = 0 Then
            byt1(1) = Valor
            GoTo Salir_PackLong
        Else
            Exit Do
        End If
    Loop
       
    Do Until Valor = 0
        byt1(intMaxExp + 1) = Int(Valor / 256 ^ intMaxExp)
        Valor = Valor - byt1(intMaxExp + 1) * 256 ^ intMaxExp
        intMaxExp = intMaxExp - 1
    Loop
   
Salir_PackLong:
    If byteOrder = LittleEndianByteOrder Then
        bytRes = byt1
    Else
        bytRes(1) = byt1(4)
        bytRes(2) = byt1(3)
        bytRes(3) = byt1(2)
        bytRes(4) = byt1(1)
    End If

End Sub

Ya contarás a ver que tal.
Suerte.

JDaniel

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Comunicación con puerto serie
« Respuesta #2 en: Viernes 29 de Agosto de 2003, 09:28 »
0
Gracias por tu ayuda Brroz, no lo he probado aun, ya te contare.....