LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

labwindows con vision

Solved!
Go to solution

Muy buenas:

 

Estoy realizando el proyecto final de carrera y me gustaria saber¿como puedo desactivar el CVICALLBACK DelayChanged del ejemplo que hay en NI de barcode?, porque mi objetivo es implementar este sistema en una cinta y entonces no necesitaria ningun tipo de temporizacion porque la cinta se pararia mediante unos sensores. Por si no conseguis el ejemplo aqui os mando lo que he conseguido hasta ahora y el ejemplo original, el archivo que pone bueno es el original y el que pone malo es lo que he modificado yo. Gracias.

Download All
0 Kudos
Message 1 of 10
(4,653 Views)
Solution
Accepted by topic author mikelmoyano
Realmente no logro entender exactamente la pregunta: si lo que quieres es quitar la callback, simplemente puedes editar al control y quitarla. Si lo que necesitas por el contrario es quitar el temporizado, deberás mover el código necesario de la callback del timer (ReadBarcode) a otra callback que se ejecute al activarse los sensores de paro de la cinta.


Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
Message 2 of 10
(4,648 Views)

Muy buenas:

 

De momento lo que quiero es que el temporizado no se active y que se active el proceso de barcode cada vez que pulse start, digo porque ha probado a quitar el callback y al compilarlo y probarlo me da error. 

0 Kudos
Message 3 of 10
(4,637 Views)

No es suficiente con quitar el callback desde el control: para modificar el código tienes que:

  • Quitar el callback del control delay y cancelar la routina en el código
  • Añadir el botón de start en el panel y asociarle una callback
  • En la callback del nuevo botón monitorear el evento EVENT_COMMIT y en él poner el código que ahora está en la callback del timer
  • Cancelar el timer del panel y su código


Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
Message 4 of 10
(4,633 Views)

Muy buenas Roberto:

 

Muchas gracias por la ayuda prestada y pero todavia me sale un error a la hora de ejecutarlo, el error que me sale es el siguiente:

 

NON-FATAL RUN-TIME ERROR:   "Barcode1.c", line 68, col 24, thread id 0x00000F88:   The callback function, ReadBarcode, specified in the UIR file, is not a known function.  If you are using an external compiler, you must include the UIR callbacks object or source file in the executable or DLL.

 

Si puedes echarme un cable te estaria eternamente agradecido. Un saludo.

0 Kudos
Message 5 of 10
(4,596 Views)

Hola de nuevo Roberto:

 

Ya he conseguido anular el int CVICALLBACK ReadBarcode pero ahora el programa no entra en el switch del int CVICALLBACK StartDecodingPressed. A ver si tu sabes porque es, muchas gracias y de paso te mando el programa para que le heches un vistazo. Gracias.

Download All
0 Kudos
Message 6 of 10
(4,592 Views)

Bueno, es bastante claro: la callback contiene la línea if (decodeBarcodes) { que pone una condición que nunca serà verdad porque tu le pones int decodeBarcodes = FALSE al iniciar el programa y nunca lo metes en TRUE.

Si le pones un breakpoint en el if de StartDecodingPressed ( ) verás que el programa entra en la routina y sale inmediatamente porque no encuentra una condición TRUE.

 

Creo que antes que todo debes tomarte un rato para aclarar qué exactamente intendes hacer en tu programa. Por lo que he entendido simplemente quieres leer un barcode cuando pulsas el botón: si es así todo lo del decodeBarcodes no es necesario y puedes quitarlo integralmente porque no te va a servir nunca.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
Message 7 of 10
(4,585 Views)

Muy buenas Roberto:

 

Ya lo siento una vez mas pero sigo teniendo problemas porque al ejecutar el programa, que te lo envio a continuacion, me da el siguiente error en la linea 68:

 

NON-FATAL RUN-TIME ERROR:   "Barcode.c", line 68, col 24, thread id 0x00000A30:   The callback function, DelayChanged, specified in the UIR file, is not a known function.  If you are using an external compiler, you must include the UIR callbacks object or source file in the executable or DLL.


Y a partir de ahi no hace nada mas. Gracias.

Download All
0 Kudos
Message 8 of 10
(4,562 Views)

Muy buenas Roberto:

 

De momento ya lo he conseguido, muchisimas gracias porque esto es parecido a un orgasmo porque eso de que te ayude la gente y puedas ver los resultados es ideal y consigues una sensacion de satisfaccion increible. Ahora esto lo voy a implementar a una targeta digital para obtener las señales de la cinta pero de momento te lo agradezco enormemente, por toda la ayuda que me has dado.

0 Kudos
Message 9 of 10
(4,555 Views)

Hola mikelmoyano, me alegra oir que has solucionado tu problema.

 

Por lo que se refiere al error "not a known function", creo que hayas entendido que esto pasa por haber una callback definida en uno de los controles sin que tal funciòn aparezca en la fuente de tu programa. Simplemente genera el còdigo para aquella funciòn u quìtala del control y el error ya no pasarà.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
Message 10 of 10
(4,537 Views)