06-28-2010 05:01 PM
I have a windows app that communicates with a cRIO NSV via datasocket. Everything works well until I click on the menu bar and then notice that my DS calls timeout. When I release the menu
everything starts working again. Any ideas?
06-29-2010 04:42 PM
Hello,
Would it be possible to provide additional information about the LabVIEW Development system you are working with: Version? Patches? Also, a screenshot of which menu bar you are referring to? Right-Click Menu? Tools Menu?
On the surface, it sounds like a modal behavior; such that, the 'menu' thread is blocking the environment from updating the data socket locations. Any additional information you might provide, would be greatly appreciated.
Thank You,
Patrick Corcoran
Application Engineering Specialist | Control
National Instruments
06-29-2010 06:04 PM
Ok, I am running under LV 2009 SP1 (XP). This happens with the tools menu, the DS vi's are being executed but timeout. You can click any menu, just holding the mouse down when the menu is exposed is enough to cause the problem, very strange.
07-11-2010 11:44 AM
It's possible that the DataSocket functions call through the UI Thread, which could be blocked by the menu activation. I am not sure if this is the case or not. Some functions do this that aren't safe with multiple threads.
You might try setting the Preferred Execution System for the VI with the DataSocket functions to something specifically other than the UI Thread, such as Data Acquisition or Other1, just to see if that has any effect. It won't help if the DataSocket functions require the use of the UI Thread, because they'll switch over regardless, but it's a quick thing to test.
07-11-2010 12:01 PM
... and remember that any use of a property node will switch the execution to the UI thread.
07-11-2010 01:22 PM
Yes, I tried changing execution threads but it did not fix the problem.
07-12-2010 01:54 PM
I was able to reproduce this issue, and will be working with my colleagues to further troubleshoot this error. It does appear that the Datasocket operations are executing in the UI thread. I will post any further information, or a possible correct action request number to this thread, when it becomes available.
On a more curious note, what type of tools options are you modifying at run-time? If this is a concern for users at run-time, you could opt to hide the menu items until execution completes; such that, the datasockets are not interrupted. Also, if you are already using NSV's, why not perform a NSV read on the client PC? What is the driver behind the use of Datasockets for this operation?
I look forward to any additional information.
Thank You,
Patrick Corcoran
Application Engineering Specialist | Control
National Instruments