09-01-2008 03:51 AM
In our application we start multiple, reentrant instances of a vi with VI server ("Auto Dispose Ref" is set to "true", when calling this vi)
This "clones" run like deamons, independent from the rest of the application.
How can we connect to them or get the vi-reference? We like to open for example programmatically the front panel of one of this vi.
This vi's (with have all the same name) do not appear in the property node "Application:All vi in memory", but appear in LabVIEW --> View --> Browse Relationship
Thanks for any help.
09-01-2008 06:02 AM
Hi zav.
this is rather interesting behaviour.
i would be interested to see how you've setup your multiple reentrant vi's.. so would it be possible to send me code that generates them same issue?
With reentrant vis there are many factors to consider. Maybe read this KB link as see what you think.
I'd be happy to answer any questions.
Thanks for the post!
Regards,
09-01-2008 08:38 AM
09-05-2008 05:30 AM
Hi.
Thanks for the reply, sorry I've been out of the office - and I still am!
Im back on wednesday and I'll have a look at this then.
Please post an update.
Regards,
09-11-2008 12:41 AM
09-11-2008 06:44 AM
Hi Zav.
I hope your well.
This behaviour your seeing is indeed correct. The spawns don't have unique names and therefore are only listed by the VI Server once - as they are using shared memory.
If you programmatically want to reference these spawns (i.e. the browse relationships) you need to create a VI Template (VIT) which will generate each spawn with a unique name (1,2,3,..) and thus have their own seperate memory sapce - and hence show up in the VIs In memory vi.
I have a attached my own VIs, one producing the reentrant vis and one showing vi's in memory.
Let me know what you think.
Regards,
09-11-2008 07:34 AM
Hillman wrote:...
If you programmatically want to reference these spawns (i.e. the browse relationships) you need to create a VI Template (VIT) which will generate each spawn with a unique name (1,2,3,..) and thus have their own seperate memory sapce - and hence show up in the VIs In memory vi.
...
UNLESS the the the re-entrant clone is a member of a LVOOP Class! The VI created from teh VIT does not open as a member of the class so if it is using protected or private methods of that class, the created VI will open broke!
So that work-around does not help use with LVOOP apps.
Ben
09-11-2008 07:42 AM - edited 09-11-2008 07:45 AM
Exactly thats happens in our application: We are working wiht LVOOP / GOOP, therefore we can not use .vit as sugessted. We know about that possibility, but it's not applicable for us.
What we do not understand: In our case it would help, if we can find out the names of the clones, for example
my_function.vi:1
my_function.vi:4
my_function.vi:7
The same as the menu option "browse relationship" does - why do we not have access to that in LabVIEW?
If we have the name, we can open a reference to the clone and do with it what we need.