tmh,

No, I'm pretty sure you understand perfectly, as that's exactly what I
wanted to do.  I knew that if you had two loops on a block diagram,
they would execute in parallel, but I assumed that if you had a loop
and a SubVI on a block diagram, that whichever one started executing
first would have to terminate first.  I was making the problem much
more difficult then it needs to be, as that method would allow me to
use notifiers to achieve the intended effect.

As far as notifiers 'not working with the VI Server' as I must have
put it, I got that straight from the LabVIEW help files.  Under the
topic "Notifier Operation Functions" I read that "You cannot use
notifiers to communicate with VIs on other computers. For example, you
cannot use notifiers to communicate across a network or the VI
Server."

Originally, I was using a named notifier.  So, my "master" vi would
create a notifier to send commands with, then it would launch the
"slave" vi asynchronously with an invoke node, and send commands when
necessary.  The Slave obtained the notifier by using the "Obtain
Notifier" vi, supplying the same name as the Master did for the name
parameter.  This worked fine when I was testing - however once I built
my program to be an executable, the Slave created a new notifier,
rather than obtaining the same one being used by the Master.  (I'm not
100% sure that's the exact reason - it may just not have received
commands [it was a while ago that I was playing with that approach].
But I do know that that method works fine in an uncompiled program,
but once it's compiled, it stops working.  Who knows - there may exist
actual ways to pass the notifier, like a global variable or something
like that).

According to the *fabulous* LabVIEW documentation, Queues don't have
this limitation, so I rewrote my VI to use a queue of length one,
rather than the notifier.

-----------------sidebar------------------------
(does anyone find that the LabVIEW documentation can be frustratingly
lacking at times?  Like, why can't I use notifiers across the VI
server?  And why can I use queues?  I'm not asking for them to show me
the guts of LabVIEW, I just think that it would give developpers more
control and confidence when coding that they know what's going on, and
have at least a general idea of how things work)
--------------end of sidebar--------------------

However, somewhere in my switch between Queues and Notifiers, I must
have messed up something, as after that worked fine during the testing
phase, after a compilation, I received an error (1013 I believe)
whenever I tried to load my slave saying "Front Panel Heap Dump" -
which is strange because the front panel of my slave should not have
been loading, and was supposed to have been removed from the
executable.

Not that that last bit is super relevent to the original topic of
discussion, but it might be useful to someone later on.

In any event, thank you for your help.  I suspect that that will be
the perfect solution for my needs, and when I get back to that chunk I
was working on and get it working, I'll let you know.

Thanks again.

Reply via email to