LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Enqueue Elements inside a SubVI

Solved!
Go to solution

How is it going everyone?

 

I'm currently working on a program that has many parallel loops working at the same time. One of them is acquiring images from a camera and putting them on a queue. 

 

A second loop saves those images to an SSD and a third loop search the images for patterns, if it finds a certain pattern it is supposed to extract a part of the images and put the snippet on the "front" of the second loop to save that as well.

 

Up until last year I was able to perform many of the NI VISION operations on a subvi, so when the third loop find the pattern, sends the extracted image on the queue, by passing the queue name in a cluster to the subvi, but since I updated to LV2021 this fails to enqueue elements, even though by probing the queue line they have the same name and memory address. There are no error codes or anything like that, the element just seems to vanish when being queued inside the subvi, but if I pass the element to the output of the subvi, queuing it to the save loop on the main VI works fine.

 

I didn't find anything related to this particular problem on the site, so I'm sorry if this is a known problem. Is this a bug worth reporting or something changed between versions?

 

Thanks for your time. 

 

 

0 Kudos
Message 1 of 3
(796 Views)

even though by proving the queue line they have the same name and memory address.

 

 

Do you perhaps mean "probing" ?

 

How do you know the memory address?  Memory addresses are invisible in LabVIEW.

 

by passing the queue name in a cluster

 

Usually, one passes around a REFNUM to the queue in clusters/subVIs, etc. for speed improvements.  Using a NAME is OK if you have many levels to go thru and have a constant name you want to reference.  That is slower, but maybe more convenient in some cases.

 

I would look for an error coming out of a queue operation. Do not ignore errors in your code, bring up an error dialog if they occur.  Possibly your queue is getting killed and if you try to use it again, it won't work.

Steve Bird
Culverson Software - Elegant software that is a pleasure to use.
Culverson.com


Blog for (mostly LabVIEW) programmers: Tips And Tricks

0 Kudos
Message 2 of 3
(783 Views)
Solution
Accepted by topic author FJofreETT

Thanks for your response and sorry for the typo.

 

Yes, I'm passing the "queue line" REFNUM, the same that goes to the "enqueue element" and "dequeue element" block. If you probe one it would show you the "name" and a HEX number. Those are the same in both cases.

 

Update:

Anyway, I was "trying" to update to LV21 SP1 but I had to "reinstall" the whole thing since neither NI UPDATE nor NI PACKAGE MANAGER let me update. 

Now it seems to work fine again, so it's my mistake for not checking for updates sooner. 

Thanks for your time.

0 Kudos
Message 3 of 3
(771 Views)