Registrarse Gratis

¡Únase para Aprender y Compartir!

Leer datos del puerto serie Visual Basic 6

12/7/2007 11:06PM
Buenas Tardes compañeros

Haber si alguien me puede ayudar y decirme cual es el evento que se ejecuta al recivir un dato por el puerto serie.

Hasta orita solo puedo transmitir datos, ya tengo agregado el control de puerto (Microsoft Comm Control 6), pero necesito recivir datos.

Desde ya Muchas gracias por su ayuda.

saludos.
Esta pregunta está cerrada. Si quieres puedes: Abrir otra Pregunta
14/7/2007 10:41PM
Bueno amigo, supongo que sabes configurar el puerto com...
en una de las propiedades "RThreshold" debes de colocar una cantidad de datos recividos con la cual se disparara el evento "comEvReceive" de la funcion "OnComm" del puerto com, ademas antes de leer los datos del puerto debes de determinar cuantos caracteres quieres leer con la propiedad "InputLen" y los lees con la propiedad "Input".

con esto decimos que

RThreshold = cantidad de datos para que se ejecute el evento "comEvReceive".

El evento "comEvReceive" esta en una subfuncion del puerto com llamada "OnComm" por si no la tienes tela escribo:

Private Sub Terminal_OnComm()
Dim sEvento As String, sError As String
Select Case Terminal.CommEvent
' Controlar cada evento o error escribiendo
' código en cada caso
' Eventos
Case comEvCD
sEvento = "Cambio en la línea CD."
Case comEvCTS
sEvento = "Cambio en la línea CTS."
Case comEvDSR
sEvento = "Cambio en la línea DSR."
Case comEvRing
sEvento = "Cambio en el indicador de llamadas."
Case comEvReceive
sEvento = "Recibido(s) " & Terminal.RThreshold & _
" carácter/caracteres."

---------%%%%% AQUI LEES LOS DATOS%%%%----------------------------

Case comEvSend
sEvento = "Hay SThreshold = " & Terminal.RThreshold & _
" carácter/caracteres en el búfer de transmisión."
Case comEvEOF
sEvento = "Se ha encontrado un carácter EOF en la entrada."

' Errores
Case comBreak
sError = "Se ha recibido una interrupción."
Case comEventFrame
sError = "Error de trama."
Case comEventOverrun
sError = "Datos perdidos."
Case comEventRxOver
sError = "Desbordamiento del búfer de recepción."
Case comEventRxParity
sError = "Error de paridad."
Case comEventTxFull
sError = "Búfer de transmisión lleno."
Case comEventDCB
sError = "Error inesperado al recuperar el DCB."
End Select

If Not IsEmpty(sEvento) Then
BarrEdo.SimpleText = sEvento
ElseIf Not IsEmpty(sError) Then
Dim RMsgBoxOnComm As VbMsgBoxResult
Beep
sError = sError & vbNewLine & "Aceptar para ignorar. " & _
"Cancelar para salir"
RMsgBoxOnComm = MsgBox(sError, vbOKCancel + vbExclamation, App.Title)

If RMsgBoxOnComm = vbCancel Then CWButton1.Value = False
' Cerrar el puerto
End If
End Sub


InputLen = el numero de datos a leer cuando leas el bufer, es decir, 2 para leer 2 datos por ejemplo.

y se leen los datos con la propiedad "Input"

por ejemplo:

DatosLeidos = Terminal.Input

bueno hasta luego espero que te sea util...
ASISTIÓ A LA SOLUCIÓN
16/8/2007 03:00PM
Hola Jorgillo com estas.

me enconter con un programa q tenia la sgt instruccion.
No he entendido para q se esu "asc"

datoin = Asc(MSComm1.Input)
comentario
16/8/2007 03:04PM
A se me olvidaba.

Pepe el evento q se ejecuta al recibir un dato es comEvReceive.
ASISTIÓ A LA SOLUCIÓN
Esta pregunta está cerrada. Si quieres puedes: Abrir otra Pregunta