Setting Control Values in a cluster

I am aware of the technique to set a control value on another VI's FP using an invoke node and Flatten To String Function, but is there any way to set a value of a control inside a cluster?
Many thanks to anyone who may be able to help.

Hi Dan,
a cluster has a property called Controls[], this returns an array of references of all the cluster elements. You can use each reference to set the element value with the property Value.
I attach a simple vi that shows it.
Good luck,
Alberto Locatelli
Attachments:
setting_cluster_control_value.vi ‏16 KB

Similar Messages

  • Error in Invoke Node-Set Control Value

    I've a trouble with a VI: the error cluster warns ERR(7) when I try to pass the output of the "FLATTEN TO STRING" function to an Invoke Node-Set Control Value.
    In the file attachments there's the upmentioned VI. Thank you
    Attachments:
    Cambia_i_valori_di_default.vi ‏147 KB

    Error 7 is file not found. I would think that this error is generated by one of your Open VI References and not any of the Set Control Values. Check your paths and verify that they're correct. Also, you haven't included two subVIs or the VIs that you're trying to modify so it's impossible for anyone to try and recreate your problem. Save them into an LLB and attach that if you still have problems and want some help.

  • Set control value method

    How do I use the set control value method to send a cluster to a sub-vi? I have tried just sending the cluster as it is, but the invoke method gave me an error. I have thought about sending in the Control[] property of the cluster, and then in the subVI use "to more specific class". But my cluster is very big, and this would be a lot of coding. Can you think of an easier way to do this. Thanks a lot.

    Hello,
    You should definitely be able to pass the cluster from the main VI to a sub VI. Most likely, the cluster you have created in the sub VI does not have exactly the same elements in the same order as the main VI's cluster. To view or change a cluster's element order, right-click on the border of the cluster and select "Reorder Controls in Cluster..." There is also a lot of great information on clusters in the LabVIEW Help. Please also see my attached example for further information.
    I hope this helps! Have a great day!
    Liz Fausak
    National Instruments
    Attachments:
    ClusterOrderExample1.vi ‏21 KB

  • Using "Set Control Value" to pass a reference

    Hi,
    every time I tried to passe a Control Reference using "Set Control Value" I have the Error 1 (invalid input parameter at invoke node). Why is it not possible to pass a control reference using the invoke node??
    Thanks
    Golzio

    Hi,
    This is possible. Trick is, the type of the control reference needs to be
    the same as the input. E.g. a string control reference is a different type
    as a numeric control reference (, or a control reference).
    To avoid this conflic, make sure the input of the vi is a control reference
    (and not a e.g. string control reference). Also make sure the to convert the
    reference you pass to a control reference (using Application Control>To More
    Generic Class).
    Regards,
    Wiebe.
    "Golzio" wrote in message
    news:506500000008000000C1F00000-1079395200000@exch​ange.ni.com...
    > Hi,
    > every time I tried to passe a Control Reference using "Set Control
    > Value" I have the Error 1 (invalid input parameter at invoke node).
    > Why is it not possible to pass a control re
    ference using the invoke
    > node??
    >
    > Thanks
    > Golzio

  • Indicator reverts to default after set control value

    Sorry.   Tried to put a tab in my message, then pushed space twice and apparently posted this a couple times....
       I've noticed that if I try to programatically set the value of an indicator (which is in the connector pane) using the Set Control Value method it reverts back to its default value once the VI is finished executing.  If it's not in the connector pane I don't have this problem.  If I use Set Control Value, then read from a local variable of the indicator to set the indicator I also get no problem.  Why is this?  I've attached two block diagram images below showing what I did. 
      I'm interested in this because I'm trying to write a subvi that retrieves and stores a bunch of global values from a config file.  The easiest way to do this seemed to me to use the OpenG vi that reads and writes the front panel controls to a config file (since some of my controls I wish to save are complicated).  It didn't seem to work unless I added the second step of using the local variable to update the indicator. 
    Message Edited by Phamton on 11-21-2007 05:30 PM
    Attachments:
    set control value_bd0.jpg ‏8 KB
    set control value 2_bd0.jpg ‏17 KB

    Discussion of this thread has moved to here.

  • Set cluster's control value in subpanel

    Hi
    Is there a way to set the control value of a cluster in a subpanel?
    I enclose my vis in LV8.0
    Charly
    It's always sunny in California! Certified LabVIEW Associate Developer!
    Solved!
    Go to Solution.
    Attachments:
    Access cluster's ctr subpanel.zip ‏14 KB

    If you have a reference to the VI being put into the subpanel (which you must have or it wouldn't be in the subpanel, right?) you can use that to get a reference to the VI's front panel. This in turn will let you get an array of references to all the controls and indicators on the subpanel VI's front panel. Go through this array looking at the label:text property for each reference in the array until you find the one for the control that is the cluster.
    Now, use the To More Specific Class function to cast the cluster's generic control reference to a cluster reference. You can use it to get an array of all the controls inside the cluster. Now go through this array looking at the label:text property for each reference in the array until you find the one for the control thatyou want to set and there you are...
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Cluster of control references: want to access the control value

    I want to be able to save and set control values that are saved (XML). I have my controls on about 5 sub vi's. So I thought it'd be a good idea
    to put all the control references in a cluster from the several sub vi's and save and read from one point.
    I can get the cluster values (i.e. the references to the controls), but how to proceed from here? If somebody has a better idea it is very welcome.
    I have also read Ben's nugget here, but it deals with references to controls in a cluster, not references to a reference of a control in a cluster

    Thank you for reading that Nugget!
    I use a GUI Controller in many apps so I can grab refs in sub-VI's.
    Here are some screen shots of them in use.
    The first "GUI Cnt" is a wrapper around the AE and invokes the action "Set Analysis mode" then another call let me get a cluster of the refs so I can choose based on the name.
    This image shows what that action does.
    THis is what happens when going into collection mode.
    That is a small set of what you will find in my image gallery Feel free to browse (yes I know there is a lot of Olivia in there ) and ask if anything catches your interest.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Is it better to use Invoke nodes or property nodes to set/get control values?

    I have a series of VI's that run in parallel, each to manage different functions- pumping, sensing, a fluid flow model, an experiment generator/runner.
    These need to exchange data, which I am currently doing using invoke nodes (that are all in subVIs), using methods "Set control value" and "Get control value". I find that every now and then (perhaps 1% of the time) the data isn't exchanged correctly and therefore the system doesn't work. I can imagine how "set" could go wrong if they happen simultaneously, and can devise ways of preventing this. However, the "Get" method suffers from the same problem. This is a major problem, because I want to leave it running for several hours.
    I could in
    principle achieve the same thing using property nodes and find myself wondering if this might be more reliable. But I don't want to change over only to find it makes no difference!
    Can anyone advise?

    You can use some kind of syncronization such as queues, occurances, or notifiers but I think the easiest way would be to create and action engine. This was only one action can execute at a time avoiding a "race condition". Possibly a write action and a read action might help. You also can add queues or notifiers into this concept. hope this helps.
    BJD1613
    Lead Test Tools Development Engineer
    Philips Respironics
    Certified LV Architect / Instructor

  • Do I need to set something when using Dynamic VIs to pass control values to an executable VI

    I am using VI server to pass control information from one VI to another.
    In the development system this works fine.
    How ever once I build the VI's into an executable the values from one of the VIs does not get passed.
    I use the same method in three different applications, 2 of the applications work fine, but one does not.
    The only thing I can think of is that there is something that needs to be set that I did (without realizing) in the first two but not in the third.
    All the Applications run fine.
    The problem that occurs is in the values passed. The same value gets passed everytime this turns out to be what ever the default was prior to running application builder.
    I a
    m currently using 6.02.

    Kandrew wrote:
    > I am using VI server to pass control information from one VI to
    > another.
    > In the development system this works fine.
    > How ever once I build the VI's into an executable the values from one
    > of the VIs does not get passed.
    >
    > I use the same method in three different applications, 2 of the
    > applications work fine, but one does not.
    Are you using Call by Reference or Set Control Value method? The second
    absolutely requires the Front Panel to be present to work properly. The
    LabVIEW application builder wants to remove the Front Panel by default
    if the VI hasn't been configured to show its front panel when called or
    doesn't have at least one Control Property Node in its diagram.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How to set the value of a variable in a cluster in LabVIEW from C#?

    Hi guys, I'm working on a small c# program, which using the interface provided by LabVIEW.  And I know that, using lv.SetControlValue(name, value) can set a variable just on the front panel. But in my case, there're several clusters on the front panel. So it confused me how to set the variables in these clusters. For example there's a cluster named clusterA, and a variable in it named valueA, I've tried something like this:
    lv.SetControlValue("clusterA.valueA",1);
    but it totally not work. Anyone has some experience about this stuff? Thanks a lot!!
    Solved!
    Go to Solution.

    Hey guys, thanks a lot for all your reply. I just find a simply way to solve this porblem. For example, there a cluster named "ClusterA", and there are only two control values in it, which are: an int value named "IntA" (default value IntA = 10)and a  string value named "StringA" (default value StringA = "abc"). In C# if you invoke the method:
    var clusterA = (Array) vi.GetControlValue("ClusterA");
    you will get an Array looks like: clusterA = {10, "abc"}; Then if you want to change IntA to 123, you just need to do:
    clusterA.SetValue(123, 0); // 123 is the value, 0 is the index of IntA in the array clusterA, after this clusterA = {123, "abc"}
    After this, you just need to give the array back to LabVIEW by using:
    vi.SetControlValue("ClusterA", clusterA);
    and now see the panel in you LabVIEW, the IntA is changed.

  • How to set multple values in cluster with local variable?

    Hello all,
    Ok, I've made my way through Labview for everyone, and have some basic concepts down. I can see with a cluster, if acting directly upon it, you can unbundle, change values, rebundle, etc.
    I'm trying something a bit more complex...and just not sure how to get started on this.
    I have a drop down menu ring. I have set this up as a typedef, with 4 values.  I have used this typedef 7 times, plus some LED bools, in a cluster. I have made this cluster a typedef.
    So, in my main vi I"m starting to design, I've set up an example posted here....and in it, I have two instantiations of the cluster typedef, Left Selector and Right Selector.
    I have dropped into this vi, a copy of the menu ring typedef (same typedef as in the clusters, same values)....called reset all tubes.
    I'm trying now, to figure out how, with an event on the change of value for 'reset all tubes'....that I can start with the left selector, and change all the tubes (these are the menu ring selector)  to the same value as what has been selected with the 'reset all tubes' menu ring.
    I've created a local variable for the left selector. It is set to read values. (I'll be doing the same with the right one too, but just starting with the left).
    In examples I've seen where directly accessing a cluster, you could unbundle the cluster...loop through and change the values...maybe pull out all of the 'tubes' into an array and move through that to update the values.  And when you bundle or unbundle the cluster...you can see the values, etc, when you stretch them out on the block diagram.
    With the local variable..I can't see to 'stretch' it out like I was expecting..so I can access the values for the 'tubes'...and set them all to the value of the 'reset all tubes' ring menu value.
    Can someone put me on the path on the best way to do this....or is there a structure of component I'm missing here ?  Am I on the right track to begin with here?
    This would seem pretty basic to me, but I'm just missing something here on how to start...
    Thank you in advance,
    cayenne
    Solved!
    Go to Solution.
    Attachments:
    example_select_dropdown.ctl ‏5 KB
    public_selector_cluster.ctl ‏6 KB
    laptop_test_public.vi ‏12 KB

    nathand wrote:
    You can't do this with a for loop the way the cluster is structured, but why make it so complicated?  Just bundle the new value into the cluster as shown below:
    If you do want to use a for loop, consider restructuring your cluster.  Group the ring and a boolean into a cluster, then drop 7 of those into the selector cluster.  Then you can use "cluster to array" and "array to cluster" since all elements in the outer cluster will be of the same type.
    Also, be careful using rings as type definitions.  You probably want to use an enumeration instead.  The items in a ring do not update when you update the type definition because they're considered to be cosmetic; the items in an enumeration type definition do update, because the items in an enumeration are considered part of the data type.
    Oh my goodness!!
    What was MUCH easier than I was trying to make it!!
    I was attempting to do this reset, in an incremental fashion, as that later, I'm going to need to change values in this cluster by individual elements....and was using this as a way to try to understand how to iterate between cluster elements, and change the values of each one.
    This solution works much better for this 'reset' all solution.
    One question on this....with regard to the enum vs the ring menu.
    I was actually going to go with the enum, however, I could not find a way to make it LOOK like the ring menu...with the arrow to the side that a user would know to click to present the menu list of choices.
    I see with the enum, that you can remove the increment/decrement indicator.....and if the user clicks the control, it will indeed pop up a menu of choices...but there is no 'arrow' on that control to indicate to the user that it is a menu choice there.....
    Is there a way to make and enum look like a ring with the "drop down menu" control look?
    Again, thank you !!
    This helps!
    C

  • Set initial value for numerical control

    Hello LV users,
    I have a VI that is used to initialize some experimental equiptment. It passes on a cluster of ten or so numerical control DBL integers as parameters. Everytime I open the programe the values are reset back to zero and I have to enter the values back in. Is there any way to set default values for  the controls so I do not have to change them everytime I open the program.
    Thanks 
    Solved!
    Go to Solution.

    Wowden,
    If you want to set default values for multiple numeric control's in your cluster in one go, 
    -Type in the desired default values
    - Right click on your cluster, browse to 'data operations'
    - Choose 'Make current values default. 
     Similarly, if you need to set defaults for  multiple clusters or multiple controls on your front panel,
    - Choose 'Edit' in the menu 
    - Choose "make current values default' (This sets defaults for all controls/constants etc. in one go)
    RaVI

  • How to Set default value for taxonomywebtagging control with terms and nested terms

    Hi,
    I have created taxonomy control in custom aspx page and I am able to select terms but I am trying to setup default value to that control.
    Can anybody let me know how to set the default value for TaxonomyWebTagging control in custom.aspx page with nested terms?
    Any help would be greatly apprecited.
    Control code in aspx page:
    <td>
    <asp:Label runat="server" ID="lblLanguages">Field A: </asp:Label><asp:Label runat="server" ID="rfvlblLanguages" CssClass="errorMsg" ForeColor="Red">*</asp:Label>
    </td>
    <td>
    <Taxonomy:TaxonomyWebTaggingControl ID="term" Width="385px" runat="server" /></td>Mapping metedata code:TaxonomySession session = new TaxonomySession(SPContext.Current.Site);
    //Set the Business Unit Field
    SPSite site = SPContext.Current.Web.Site;
    TermStore termStore = session.TermStores["Managed Metadata Service"];
    Group group = termStore.Groups["GROUPName"];
    TermSet termSet = group.TermSets["TERMSETNAME"];
    Term term = termSet.Terms["TermA"];
    Guid termGuid = term.Id;
    term.SspId.Add(termStore.Id);
    term.TermSetId.Add(termSet.Id);
    term.AllowFillIn = true;
    term.AnchorId = countryGuid;
    term.IsMulti = true;
    Thank you.
    AA.

    Hi,
    According to your description, you want to set default value for TaxonomyWebTaggingControl.
    I have a test in my environment. It could be achieved by setting the Text Property of TaxonomyWebTaggingControl.
    Here is the code snippet:
    TaxonomySession session = new TaxonomySession(SPContext.Current.Site);
    SPSite site = SPContext.Current.Web.Site;
    TermStore termStore = session.TermStores["Managed Metadata Service"];
    Group group = termStore.Groups["GroupA"];
    TermSet termSet = group.TermSets["A"];
    Term term = termSet.Terms["A1"];
    TaxonomyWebTaggingControl1.SspId.Add(termStore.Id);
    TaxonomyWebTaggingControl1.SSPList = termStore.Id.ToString();
    TaxonomyWebTaggingControl1.TermSetId.Add(termSet.Id);
    TaxonomyWebTaggingControl1.TermSetList = termSet.Id.ToString();
    TaxonomyWebTaggingControl1.AllowFillIn = true;
    TaxonomyWebTaggingControl1.IsAddTerms = true;
    TaxonomyWebTaggingControl1.IsMulti = false;
    TaxonomyWebTaggingControl1.Text = string.Format("{0}|{1}", term.Name, term.Id.ToString());
    Here is a detailed article for your reference:
    http://blog.bugrapostaci.com/2010/09/23/taxonomywebtaggingcontrol-sharepoint/
    Feel free to Reply the test result.
    Thanks
    Patrick Liang
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Patrick Liang
    TechNet Community Support

  • Set the value of a CWNumEdit Control from within the code

    I am trying to update a CWNumEdit Control with data created during program execution.  I am using the set_Text function but it does not seem to be working.  I was wondering if there is something that I am missing to get this functionality to work.  Please help.
    I am developing a VS .NET 2003 WinForm GUI and am Using Measurement Studio 8.1.1.

    Hello mtd32610,
    I noticed this question was already posted on this forum.  We like to
    keep all questions related to a single issue confined to one forum, so
    please direct all future replies to one post or the other.
    As Jervin_J mentioned in the previous post, the standard method for
    updating a CWNumEdit control is to set the Value property of the
    CNiNumEdit object that is associated with this control.  You do not
    need to call the set_Text function, in fact I am not familiar with any
    set_Text function, so I think you may be calling this method on the
    wrong class altogether.
    You should have an object associated with your CWNumEdit control that
    you can set the Value property for.  As mentioned in the reply from
    Jervin_J, the normal way to populate the control is to use:
    <control>.Value = <numeric_value>;
    Regards,
    Marty H.
    National Instruments

  • Saving the Control Values on a Front Panel

    I am creating a VI in which I have approximately 10 front panel controls that can be changed by a user. Instead of entering the same values over an over again, I would like to provide the user the option to save a set of control values that can then be loaded the next time around via a drop-down box. Before I began I just wanted to see if anyone had done anything similar. I was stumped as to how to approach it. Any suggestions?
    Matt

    Matt,
    You can also use a datalog file. LabVIEW can write and read clusters to a file, and as long as the cluster don't change you should be fine.
    Basically your code would grab the value of each control, bundle it into a cluster and save that cluster to a file. For reading, you read your cluster from the file and get each individual value to drop it in the right control.
    I'm sure there are some shipping examples on this too.
    I hope this helps.
    Regards,
    Juan Carlos
    N.I.

Maybe you are looking for

  • How to combine multiple pictures in one picture

    Hi guys. Total noob in photo shop here.. I am very expert on using Paint (HAHA..) but using Photoshop 2014 is my very first time and only thing I know how to use is magic eraser.. Right now I'm doing a website project and trying to make few pictures

  • Atom binding not working

    Hi guys To make it simple, I've got a Flex application with Advanced Data Grids binded with XML and Atom feeds. With my XML file, the application works very well: jiraList = new XMLList(event.result.channel.item); However, when I try to access Atom f

  • WinWord.EXE failing with error R6031

    A little worrying that Office14/WinWord.exe is failing under Windows 10 Technical Preview for Enterprise Build 9879 with this error.  Any possible solution? Regards, John

  • Transfer existing Dreamweaver CC site to Business Catalyst

    Is there any way to make an existing site connect with a Business Catalyst Account? From what I've seen, you can only do the reverse.

  • Building kvm with cygwin..

    Hi all,, this is in continuation with my previous posting regarding rebuilding of kvm in win32... i have downloaded cygwin ad i am trying to use its make for rebuilding the kvm for win32 environment.. again but it is giving the following errors retes