Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/06/2008, 13:26
fardao
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 18 años
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