07-14-2005 09:34 AM
Along the same lines of how and when compilation occurs:
I tried to use report generation VIs on a couple of projects. It didn't work and NI support advised to do Ctrl-Shift-Run (on Windows). Then everything worked! If LV compiles every time it is needed, then why did I need Ctrl-Shift-Run to make report generation VIs work? What is different (except marking all VIs as modified) between just Run and Ctrl-Shift-Run? I don't think Ctrl-Shift-Run is really documented anywhere. Maybe this is worth a separate thread.
Stanislav Rumega, CLA
07-14-2005 10:30 AM
07-16-2005 09:58 AM
07-16-2005 12:59 PM
LabVIEW, C'est LabVIEW
07-17-2005 11:41 AM - edited 07-17-2005 11:41 AM
Message Edited by Ben on 07-17-2005 11:43 AM
07-18-2005 01:53 PM
LabVIEW, C'est LabVIEW
07-18-2005 04:20 PM - edited 07-18-2005 04:20 PM
Message Edited by rolfk on 07-18-2005 04:29 PM
07-19-2005 11:05 AM
07-19-2005 12:41 PM - edited 07-19-2005 12:41 PM
Message Edité par Jean-Pierre Drolet le 07-19-2005 01:41 PM
LabVIEW, C'est LabVIEW
07-20-2005 09:06 AM
Jean-Pierre,
Thanks for the tip -- I'll probably still try some things to be sure, but it doesn't sound promising. I'm still a bit stuck though on how to connect a specific reentrant instance with a specific named queue / RTFIFO. Let me describe an example to try to be more clear.
Let's say there are 3 valve-control processes for me to launch and run simultaneously. So in a loop I'm going to open and run the same reentrant vi 3 times. However each of the 3 instances must monitor and control its own unique Fieldpoint I/O channels. The launcher needs to tell each reentrant instance which channels to "own".
Now, let's suppose I write all these input parameters to 3 uniquely named RTFIFO's, and also prepare 3 more uniquely named RTFIFO's from which to read back status information. Then I invoke "Run VI" to start the reentrant instances. Each instance will have to attach itself to 1 input and 1 output RTFIFO. The "launcher" will need to know which RTFIFO's are attached to which reentrant instance (uniquely id'ed by their VI Reference).
Hmmm, maybe I could make 2 more queues that hold the unique RTFIFO names, 1 for inputs and 1 for outputs. Then each reentrant instance would pull a name from the queue of of input names, retrieve its RTFIFO inputs, pull a name from the queue of output names, push some RTFIFO outputs, then go into its real main loop. The launcher that just invoked "Run VI" would then query the RTFIFO's until it found out which one had some data in it. Then it could map the VI Reference for that reentrant instance to the correct RTFIFO's. Then it would continue ahead to launch the next reentrant instance.
For this method to work, the name of the queues holding the names of the RTFIFO's would need to be known by both the launcher and the reentrant control code. Either it could be hard-coded in both, or preferably they could both query it from an LV2 global. So now maybe I've talked my way into a solution, I think, but it seems more complicated than I expected. Any ideas on a better way? I can't shake the suspicion that there's probably a much more straightforward solution. This is starting to feel like too much of a hack...
-Kevin P.