From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

Objeto que no existe

Buenas!!

 

Me gustaría preguntaros si alguno sabe cómo identificar un objeto que aún no ha sido creado en LabView o está vacio, porque ahora lo q pasa es que me devuelve un objeto vacío, supongo q el de por defecto y obtengo valores erróneos y no sé como filtrar eso para manejarlo.

 

Muchas gracias!

0 kudos
Mensaje 1 de 6
3.170 Vistas

Para ayudarte mejor, podrias adjuntar un vi de referencia o imagenes.

 

Creo q te refieres a que no has definido el tipo de variable a usar, lo cual suele ser problematico y que usualmente se trabaja con los tipo Variant.

 

Saludos

0 kudos
Mensaje 2 de 6
3.164 Vistas

Hola,

 

           Estas usando Programación Orientada a Objetos (POO)? Creo que en LabVIEW los objetos siempre existen, probablemente te esta devolviendo un objeto con todos los campos con sus valores por default. Si nos comentas un poco mas que estas haciendo te podemos ayudar a determinar por que sucede eso o buscar una manera de diferenciar ese objeto de uno que si tenga data valida.

 

Saludos Cordiales,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 3 de 6
3.155 Vistas

Buenos días! Os aclaro un poco más! En realidad el programa es bastante complejo, lo estoy haciendo orientado a objetos, y también me ayudo de la herramienta GOOP para crear fácilmente un objeto que responde al patrón singleton y poder acceder a él desde cualquier parte de la aplicación.

Es este objeto el que me está dando problemas, no sé exactamente por qué pero ocurre lo siguiente, al cargar la aplicación aparecfe un combobox que quiero rellenar con los objetos que están almacenados en el objeto singleton, nada más iniciarse la aplicación la lsita estará vacía, por lo que el combo también, más adelante la lista se irá rellenando y cuando se muestre el combo accederá a esta lista para rellenar sus elementos. Esto es lo que quiero conseguir.

 

Me pasa que cuando se accede a esta lista por primera vez el objeto está sin crear, crea uno "por defecto" (que debe de estar corrupto o lo que sea ) se le añaden elementos etc... y funciona bien, pero derrepente al llamar a otro pluggin que hace uso de estos elementos para llevar a cabo un cálculo el elemento singleton se busca en la memoria (a través de un identificador del nombre de la clase que da nombre a la cola que contiene su identificador único, no sé si sabeís como trabaja el vi "GetInstance" de GOOP para el patrón singleton ), y parece ser q la cola ya no está en memoria, por tanto reconoce que el objeto no está creado y crea uno nuevo, dejándo sin acceso a los datos anteriormente seteados.

 

Este comportamiento solo lo tiene al intentar acceder a él la primera vez que el objeto aún no está creado para rellenar el combo, he comentado esto y funciona perfectamente, pensé que filtrando el caso cuando el obj no exista aún o tenga los datos por defecto podría hallar alguna manera de solucionarlo, aunq me temo que solo al acceder a él se crea una instancia "corrupta". No sé si se os ocurre algo!

 

Gracias!!!

0 kudos
Mensaje 4 de 6
3.130 Vistas

Hola,

 

        Ciertamente no he trabajado con la herramienta GOOP, y tampoco estoy familiarizado con el singleton.

 

        Revisa este link que hablan acerca de eso y estan unos ejemplos que tal vez te puedan ayudar, http://lavag.org/topic/11513-singleton-design-pattern/.

 

        Si no encuentras la solucion tal vez posteando un pequeño ejemplo de un código donde te ocurre el problema alguien te pueda ayudar con mas facilidad.

 

Saludos Cordiales,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 5 de 6
3.123 Vistas

Gracias de todas maneras!

El post que me mandas fue el que me ayudó a decidirme por el patrón singleton, pero es que esto es algo muy específico. No puedo poner pantallazos del código porque es una aplicación muy grande y complicada, y se llama a muchas subvi's, era una intentona por si alguien le sonaba,  pero bueno me alegra deciros que ya lo he solucionado, no entiendo por qué, pero si accedo por primera vez al objeto singleton desde el programa principal (momento en el que se crea) en lugar desde un vi llamado desde este, se incicializa y funciona bien. Puede ser que internamente, el objeto utiliza como identificador en memoria el nombre del vi actual y desde el q se le llamó, pero he repasado estos valores cientos de veces y son idénticos llamandolo desde un lado o desde otro. No sé algo se me escapará, el caso está que funciona por fin.

 

Gracias!!Emoticono feliz

Mensaje 6 de 6
3.114 Vistas