I have another question about the attached image.
I have a VI (I'll call it Test.vi) that dynamically calls an error monitoring VI. The function of this VI is to stop the calling VI in the event of an error. If there is no error, the calling VI closes the called VI using a boolean reference.
In my main program, the "test.vi" VI was in a condition structure, and my code worked. I decided to call test.vi dynamically, and was surprised to find that my error VI never closed. The reason, I think, is that the reference is destroyed when the VI is no longer in memory, so I never see the true state of the Boolean. So I added an OR with not reference. And it works.
I replaced the boolean reference with the reference of the calling VI, and looked at the Execution.State prorpiety node VI. Again, it worked.
I tried to put my VI test.vi back into the main program without a dynamic call, and it no longer worked. The Execution.State always returns a running state, even when the VI is not executing.
I have two questions:
- Why is the VI running when it's not executing? Even if I close the reference, it doesn't change anything.
- Is there a method or property node other than Execution.State that lets me know if the VI is actually running?
I don't know if I've made myself clear...