04-01-2022 03:17 PM - edited 04-01-2022 04:00 PM
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.
Solved! Go to Solution.
04-01-2022 03:43 PM
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.
Blog for (mostly LabVIEW) programmers: Tips And Tricks
04-01-2022 04:08 PM
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.