Programa que lea del puerto serie.

Soy nuevo en esto, y no conozco nada de Visual Basic, pero necesito hacer un pequeño programa que esté continuamente recogiendo los datos que manda ocasionalmente un terminal de presencia, de los que se utilizan en oficinas para que los empleados fichen, el terminal se puede manejar directamente desde hiperterminal, y cada vez que alguien ficha se recoge una secuencia como esta: (28,12,10,13,16,0,1,9794) en la cual sólo me interesa el primer dato que identifica al empleado y el penúltimo que dice el número de incidencia con la que marcó el usuario en el teclado del terminal, los demás datos son relativos a la fecha y hora del marcaje. El programa debería distinguir esas secuencias y cuando detectara una secuencia en la que alguien ha marcado la incidencia 50 (activacion/desactivacion de la alarma) debería reproducir un sonido advirtiéndolo, y dando la bienvenida o la despedida al usuario correspondiente. Según he visto con el comando MSComm puedo manejar el puerto serie, pero lo único que he conseguido hasta ahora es abrirlo o cerrarlo mediante dos botones que he creado, me gustaría saber la forma de poder capturar esa información del puerto serie, si te sirve de algo el terminal opera a una velocidad de hasta 19200baudios con 8bits de datos, 1 bit de inicio y 1 bit de paridad y sin paridad.

1 Respuesta

Respuesta
2
Y recojo los datos de una centralita de teléfonos que me los enviar por el serie y hago lo siguiente:
Option Explicit
Dim Cadena as String
'Abrir el puerto y limpiar buffers
Private Sub Form_Load()
MScomm1.Setting = "19200,n,8,1"
MScomm1.CommPort = 1 'es el nº del Com
Mscomm1.inBufferCount=0
Mscomm1.inputlen=0
Mscomm1.PortOpen=true
End sub
'Lectura de datos que llegan
Private Sub MScomm1.OnComm()
If MScomm1.InBufferCount<>0 then
Cadena=Cadena & Mscomm1.Input
End If
End sub
En la variable cadena tienes toda la información que te ira llegando, luego la puedes trocear con Mid, Left o Right, etc. como quieras para extraer el dato necesario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas