07-13-2016 11:39 AM
I have two independent loops, a DAQ loop and a UI loop. The DAQ loop is dynamically launched using Open vi reference with option Ox80 (Call and forget) and a start asynchronous call node. No inputs or outputs are passed to the vi. Communication to and from the DAQ loop is done with LV2 style globals. The DAQ loop is a while loop that executes once per second.
If I open a One Button Dialog in the UI, the DAQ loop is not interrupted (it continues to iterate). However, if I open Display message to user the DAQ loop stops iterating until the popup is acknowledged.
Why is this? Either pop up will stop the UI loop, as expected.
My goal is that the DAQ loop should have one core to itself. The UI and any windows processes should share the other available cores.
I would appreciate any thoughts on this. Is this the best way to launch the DAQ loop.
07-13-2016 11:44 AM
The Display Message subVI actually uses the One Button Dialog at its core and the subVIS above that use Same as Caller execution.
Can you simplify your code and share something that replicates this issue? I wouldn't expect a parallel loop to be stopped by a dialog in a separate loop.
Cheers
--------, Unofficial Forum Rules and Guidelines ,--------
'--- >The shortest distance between two nodes is a straight wire> ---'
07-13-2016 02:04 PM
07-13-2016 02:08 PM - edited 07-13-2016 02:09 PM
Ohh ohh I know this one, root loop.
http://www.labviewcraftsmen.com/blog/the-root-loop
There are several work arounds, and an idea exchange to change this behavior
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
07-14-2016 06:11 AM
I took all the UI and DAQ stuff out of the program so that I could upload it. I left the state machine, event structure and replaced the DAQ routines with a wait. Then I ran it and couldnt replicate the behaviour I described.
If that wasnt enough, I ran the program (very slightly modified) and couldn't replicate the behaviour that I saw before! I will keep checking into it.
07-14-2016 06:15 AM
Does this launch program guarantee me a core, assuming one is available? Or do I need to use a timed loop to do that?
07-16-2016 09:09 AM
You can't dedicate a VI to run on a particular core or thread, the compiler work together with the CPU (and OS) to try to run it as best as possible.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord