Invoke Node: Difference between revisions
New page: == VI is not in appropriate state for the invoke node == This is known error, but I wouldn't call it a problem. It's just how LabVIEW works. A lot of the methods for a VI reference can no... |
No edit summary |
||
| Line 1: | Line 1: | ||
== VI is not in appropriate state for the invoke node == | == VI is not in appropriate state for the invoke node == | ||
This is known error, but I wouldn't call it a problem. It's just how LabVIEW works. A lot of the methods for a VI reference can not be executed for VIs which are either in a reserved state or already running. When a VI is running is rather obvious but a reserved state means that the VI is either part of a running hierarchy of VIs (usually your application) or a strict typedefed VI reference is open to it. The reasons for this are not so simple but it comes down to protecting the VI from influences from different caller types. The Run function (amongst others) is asynchronous as it starts the VI but not necessarily waits for termination of the VI. An implicit reference to the VI as an icon in your block diagram or an explicit one in the form of a strict typedef to be used with the Call by Reference Node are synchronous as far as the caller is concerned. | This is known error, but I wouldn't call it a problem. It's just how LabVIEW works. A lot of the methods for a VI reference can not be executed for VIs which are either in a reserved state or already running. When a VI is running is rather obvious but a reserved state means that the VI is either part of a running hierarchy of VIs (usually your application) or a strict typedefed VI reference is open to it. The reasons for this are not so simple but it comes down to protecting the VI from influences from different caller types. The Run function (amongst others) is asynchronous as it starts the VI but not necessarily waits for termination of the VI. An implicit reference to the VI as an icon in your block diagram or an explicit one in the form of a strict typedef to be used with the Call by Reference Node are synchronous as far as the caller is concerned. | ||
You may eventually try to use the Call by Reference Node instead. If you need for whatever reasons to use the Run method you MUST make sure that the VI is not an explicit part of your application by not adding its icon anywhere in your app (and not opening a strict typedefed reference to it either). | You may eventually try to use the Call by Reference Node instead. If you need for whatever reasons to use the Run method you MUST make sure that the VI is not an explicit part of your application by not adding its icon anywhere in your app (and not opening a strict typedefed reference to it either). | ||
[[Category:Uncategorized]] | |||
Revision as of 10:04, 3 April 2007
VI is not in appropriate state for the invoke node
This is known error, but I wouldn't call it a problem. It's just how LabVIEW works. A lot of the methods for a VI reference can not be executed for VIs which are either in a reserved state or already running. When a VI is running is rather obvious but a reserved state means that the VI is either part of a running hierarchy of VIs (usually your application) or a strict typedefed VI reference is open to it. The reasons for this are not so simple but it comes down to protecting the VI from influences from different caller types. The Run function (amongst others) is asynchronous as it starts the VI but not necessarily waits for termination of the VI. An implicit reference to the VI as an icon in your block diagram or an explicit one in the form of a strict typedef to be used with the Call by Reference Node are synchronous as far as the caller is concerned.
You may eventually try to use the Call by Reference Node instead. If you need for whatever reasons to use the Run method you MUST make sure that the VI is not an explicit part of your application by not adding its icon anywhere in your app (and not opening a strict typedefed reference to it either).