Visual Basic - MSCOMM, URGENTE gracias de antemano

Life is soft - evento anual de software empresarial
 
Vista:

MSCOMM, URGENTE gracias de antemano

Publicado por Bea (6 intervenciones) el 12/09/2006 12:53:02
Hola, tengo un problema a la hora de leer datos de un puerto serie, y es que entre las sentencias de abrir puerto y leer del puerto si no introduzco un msgbox no me realiza la lectura del puerto

alguien me podría ayudar???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:MSCOMM, URGENTE gracias de antemano

Publicado por israel (25 intervenciones) el 12/09/2006 21:26:39
buenas:

No he trabajado con puertos serie, pero por lo que me dices, normalmente, si solo funciona si metes un msgbox en el programa deberias tener en cuenta una cosa: el msgbox es como una especie de espera, es decir, dejas un tiempo para que responda el usuario, eso puede ser decisivo si estas intentando ejecutar una accion antes de que realice otra que sin terminar la anterior podria provocar un error.
A ver si me explico. Supongamos que le dices que prepare el puerto (que abra el puerto,...) pero antes de que lo abra la le dices que envie tal señal,... ¿que pasa? que como no le has dado tiempo este falla.
Si este es el caso, quiza debas meter una espera (for de x ciclos,...) allá donde tengas el msgbox, de manera que todo será automatico y ademas le darás ese tiempo que con el msgbox involuntariamente le dabas.

Otra posibilidad es que tengas un conflicto de eventos, cosa que es mas dificil de a encontrar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MSCOMM, URGENTE gracias de antemano

Publicado por Matías freire (421 intervenciones) el 14/09/2006 21:27:43
en realidad lo que deberías hacer es abrir el puerto, y colocar el código de lectura de datos en el evento OnComm.

Este evento se dispara cada vez que llega un dato al puerto serie, con lo cual te ahorras el trbajo de detectar cuándo es que llegó un dato.

Cualquier cosa, si necesitas más información sobre cómo hacerlo, mandame un mail

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MSCOMM, URGENTE gracias de antemano

Publicado por bea (6 intervenciones) el 15/09/2006 15:42:08
Eso ya lo habia probado al igual que, como dice Israel, de poner un for o algo para que espere, pero el problema que tengo con tu respuesta es que es para leer los datos de una balanza y necesito el dato del peso entonces si lo pongo en el OnComm no para de leer datos si parar, por lo que yo necesito que lea un buffer de datos de tamaño x y luego tengo que tratar ese dato para quedarme con un numero unicamente, no se si me explico lo que quiero decir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MSCOMM, URGENTE gracias de antemano

Publicado por israel (25 intervenciones) el 15/09/2006 18:30:55
buenas:

En el caso de que el problema sobre el uso de OnComm sea solo ese, podrias utilizar una variable a modo de bandera para que se en un control del flujo para que tan solo coja un dato despues de un tiempo determinado (un tiempo en que se estabilice la balanza):

Un ejemplo posible seria:

Dentro del evento actualiza una variable global con los datos de este evento.
Esta variable se irá actualizando siempre y cuando una variable-bandera se lo permita (que tambien estaria en global).
Cuando se inicia el escaneo de peso (supongo que apeticion del usuario), se iniciaria un timer que daria tiempo prudencial (supongo que un par de segundos no estarian mal, dependiendo de la balanza) y abriria la bandera para la actualizacion de la variable global. El tiempo puede ser cualquiera que estimes para que la balanza se estabilice. Cuando el Timer venciese, cerraria la bandera y ya no se actualizarian mas datos. De manera que tienes un unico dato en la variable global sobre el peso.

No si esto te ayudará, por otro lado, he visto por ahi que PORT.DLL da menos problemas que MSCOMM. Si esta solucion (la que te escribo) no te da la respuesta o no es lo que buscas, puede que tengas que probar esta dll.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar