01-02-2015 06:31 AM
Hi All,
I am sending the data from LabVIEW VIs (In TestStand) to Operator Interface via PostUIMessage property. But when I tried to pass the cluster, I am getting Error 91 in LabVIEW. Attached the method which I tried to pass the cluster. Please help me by providing the right method to pass the cluster in PostUIMessage.
Thanks in Advance.
Regards,
Sathish kumar D
01-06-2015 03:48 AM - edited 01-06-2015 03:54 AM
From my experience and reading the forum, Teststand
cannot deal yet with arbitrary complex data format like
clusters. You have to pass data one by one element.
Container/cluster seamless conversion is still a major
feature missing to communicate amount of data from
Labview to Teststand. But both products are young
(1986 and 1999) so leave NI some time to implement
the desired functionnality 🙂
David Koch
PS: http://forums.ni.com/t5/LabVIEW/Pass-Cluster-in-PostUIMess-age-Using-LabVIEW/td-p/3071032
01-06-2015 06:48 AM
Hi David,
Thank you very much for your reply.
I can break that cluster and pass the data one by one as you suggested. I tried the same and succeed in sending string data through the postUImessage using LabVIEW but please let me know the method to pass the "String Array" in the similar way. Do I need to pass the string array in "activeXDataParam"? In what way? Example screenshots/VI woudl be very helpful. Thanks Again.
Best Regards,
Sathish kumar D
01-06-2015 07:32 AM
Maybe as someone suggested, encapsulate your string array
in a variant, flatenize it, transfert it, recompose it on the other
end.
Otherwise try the JSON/XML approach and try to get lucky 🙂
Perhaps use the 'file' method as universal format :
http://mooregoodideas.com/readwrite-anything-vis/
Courage !
David Koch
01-06-2015 08:37 AM
Try the JSON/XML approach, or the INI file as
a universal container :
http://mooregoodideas.com/readwrite-anything-vis/
Good luck !
David Koch
01-06-2015 08:37 AM - edited 01-06-2015 08:38 AM
Hey Sathish,
You can pass the sequence context in a UI Message like this:
RunState.Thread.PostUIMessageEx(UIMsg_UserMessageBase + 2, 0, "", ThisContext, True)
This way you can access all of your data by using lookup strings.
The attachment shows how you can access different data. With Clusters sometimes you have to access individual components one by one. But you can still use Lookup strings to drill down to the correct component.
Hope this helps,
01-06-2015 08:43 AM
Here's another example. It is showing how to send data from the UI back to the sequence file. Using the TestStand - Set Property Value.vi you can send the following UIMessage from PreUUT to allow the user to enter the serial number on the Front Panel of your UI.
RunState.Thread.PostUIMessageEx(UIMsg_UserMessageBase + 3, 0, "", ThisContext, True)
01-06-2015 10:39 AM
Dear Jigg,
Thanks for your inputs. The serial number passing info is really useful and I understand from your reply that 'RunState.Thread.PostUIMessageEx()" could be used to send data from Teststand to Operator Interface.
In my case, I am have a test VI (.vi) in the test sequence file(.seq). The test VI will perform 5-6 test measurements one after another and I want to pass the test results to the operator interface after every test measurement. If I use the 'RunState.Thread.PostUIMessageEx()' method (send the data from teststand), I could not be able to pass the test result after each test measurements; in other words, the test result of all the test measurements could be passed to operator interface ONLY after the end of last test measurement (when the test VI execultion completes and control backs to TestStand). But I would like to pass the test result after each test measurments which would make sense to the user and that why I am seeking for some options to send the data (test results) to the operator interface through Test VI (LabVIEW) itself. Please let me know your valuable comments on this.
Thanks again!
Best Regards,
Sathish kumar D
01-06-2015 10:56 AM
Cut you test into sub-steps, each having its dedicated
interface and conclusion ?
David Koch
01-09-2015 01:35 AM
Hi David,
Its my last option :).
Thanks.
Regards,
Sathish kumar D