Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

MSComm enviar y recibir datos HEX

Estas en el tema de MSComm enviar y recibir datos HEX en el foro de Visual Basic clásico en Foros del Web. Hola compañeros, Quiero mandar a un chip una ins por el puerto série, los datos Hexadecimales "xx xx xx xx xx xx xx" y recibir ...
  #1 (permalink)  
Antiguo 11/06/2008, 02:38
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 1 mes
Puntos: 0
MSComm enviar y recibir datos HEX

Hola compañeros,

Quiero mandar a un chip una ins por el puerto série, los datos Hexadecimales "xx xx xx xx xx xx xx" y recibir la respuesta de la misma manera "xx xx"

Saludos y muchas gracias!

Última edición por fardao; 11/06/2008 a las 04:19
  #2 (permalink)  
Antiguo 12/06/2008, 02:58
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: MSComm enviar y recibir datos HEX

¿Alguien me puede echar un cable?

INS de ejemplo a enviar

02 11 05 10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

Pondré el código que tengo:

FORM LOAD

msComm.InBufferSize = 1024
msComm.RThreshold = 1
msComm.RTSEnable = True
msComm.Settings = "9600,E,8,2"
msComm.SThreshold = 0
msComm.InputMode = comInputModeText
msComm.InputLen = 1
msComm.CommPort = 1
msComm.PortOpen = True

MSCOMM


For y = 1 To Len(TxEnviar.text)
num = Mid(TxEnviar.text, y, 2)
hex2ascii = hex2ascii & Chr(Val("&h" & num))
y = y + 1
Next y

msComm.Output = hex2ascii

Buffer = msComm.Input

For I = 1 To Len(Buffer)
BufferFinal = BufferFinal & Format(Hex(Asc(Mid(Buffer, I, 1))), "00") & " "
TxRespuesta.Text = BufferFinal
Next
  #3 (permalink)  
Antiguo 14/06/2008, 13:26
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: MSComm enviar y recibir datos HEX

'################# CONEXION PUERTO SERIE #################

Private Sub Form_Load()

With MSComm1

.CommPort = 1
.RThreshold = 1
.RTSEnable = True
.Settings = "9600,e,8,2"
.PortOpen = True

End With

'################# TIPO DE INS A MANDAR #################

Text1.Text = "XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX"

End Sub

Private Sub Command1_Click()

MSComm1.Output = Hex2asc(Text1.Text)

End Sub

Function Hex2asc(SHex)

Dim Y As Integer, Num As String, VAscii As String

SHex = Replace(SHex, " ", "")

For Y = 1 To Len(SHex)
Num = Mid(SHex, Y, 2)
VAscii = VAscii & Chr(Val("&h" & Num))
Y = Y + 1
Next Y

Hex2asc = VAscii

End Function

Function Asc2hex(SAscii)

Dim I As Integer, VHex As String

For I = 1 To Len(SAscii)
VHex = VHex & Right("0" & Hex((Asc(Mid(SAscii, I, 2)))), 2) & " "
Next I

Asc2hex = VHex

End Function

Private Sub Form_Unload(Cancel As Integer)

MSComm1.PortOpen = False

End Sub

Private Sub MSComm1_OnComm()
Dim InBuff As String

Select Case MSComm1.CommEvent

Case comEventBreak
Case comEventCDTO
Case comEventCTSTO
Case comEventDSRTO
Case comEventFrame
Case comEventOverrun
Case comEventRxOver
Case comEventRxParity
Case comEventTxFull
Case comEventDCB

Case comEvCD
Case comEvCTS
Case comEvDSR
Case comEvRing
Case comEvReceive

InBuff = MSComm1.Input
Text2.SelText = Asc2hex(InBuff)

'################# COMO RESPUESTA SOLO RECIBO LO QUE MANDO #################
'################# DEBERIA RECIBIR LO QUE MANDO MAS EL ESTADO ( XX XX ) #################

Case comEvSend
Case comEvEOF

End Select

End Sub
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 22:10.