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

Similar Messages

  • 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.

  • 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.

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • Get All Control Values [Variant] Method for Global Vars

    Hello,
    to get all the data of controls use in a VI, the methode "Get All Control Values [Variant]" can be used fine.
    Is anything else available for gloabl variables which are use by this VI?
    Thanks.

    Yes, I tried to link this methode to the vi which contains the global vars but got the error message
    "you cannot make a strict vi refernce to a global VIs.
    Any other idea?
    Thanks, Thomas.
    Message Edited by maximint on 05-30-2007 08:41 AM
    Attachments:
    Untitled.vi ‏40 KB

  • 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

  • Initialize in the constructor is better or set the value thro' set method?

    Hi,
    For the normal helper classes for servelt or jsp or EJB,
    Which of the following one is the better ...?
    1.
    i.initialize all the fields in the constructor, then
    ii.use the set methods
    or
    2.
    i.do not use the contructor and
    ii.use the set methods to set the values
    Anybody can give the solution for this one...
    With regards
    vkm

    Your option 1 puzzles me, why would you need tyo use the setter methods if you already initialized in the constructor?

  • 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

  • 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

  • Setting the value of a textbox from another page

    Hi Everyone,
    I have a multi paged application (multiple xib, multiple controllers)
    In my selection view, the view that holds the UIViewPicker control, I need to populate the page that called the selector page...
    I have the code to identify what page called the selector, and when the page is dismissed, I need to fill in the field from the calling page.
    I have included the header of the calling view in my selector view, and now I need to be able to fill in a readonly textbox in the calling view....
    Do I need to setup a property for each of the textboxes in the calling view, or can I populate them directly??
    thanks
    tony

    alt-088 wrote:
    I am sorry, but I am lost in this implementation....
    How exactly do I tell the self.parentViewController what control will receive the new text value??
    Ooooops!! I'm the one who needs to be sorry, Tony:
    // from previous post
    - (void)setTextInParent:(NSString* textValue) {
    // assume that every possible parent controller has a "textbox" object
    // which is a member of some class that has a writable 'text' property
    [previousViewController setValue:textValue forKey:@"text"]; // <-- * Idiot alert *
    Looks like another one of my senior moments. As you pointed out, we need the value of the 'textBox' property before we can set the value of the 'text' property.
    To your question on how I am displaying the second view, it is called via
    [self presentModelViewController:screen animated:YES]
    from a button click event
    Cool. That means we already have the address of vc1 in the 'parentViewController' ivar of vc2, so we don't need to add the 'previousViewController' ivar shown in my example.
    So here's a corrected and maybe more relevant example--this one has been tested (Duh!), btw:
    - (IBAction)done {
    // get the currently selected string
    NSInteger row = [pickerView selectedRowInComponent:0];
    NSString *selection = [dataArray objectAtIndex:row];
    NSLog(@"%s: selection=%@", _func_, selection);
    // set text in textBox property of parent controller
    [self.parentViewController setValue:selection forKeyPath:@"textBox.text"];
    [self dismissModalViewControllerAnimated:YES];
    I have tried to implement this code
    [self.parentViewController setValue:21 forKey:@"test"];
    but it is generating an error stating
    passing argument 1 of 'setValue:forKey:' makes pointer from integer without a cast
    Yeah, referring to the doc, [setValue:forKey:|http://developer.apple.com/iphone/library/documentation/Cocoa /Reference/Foundation/Protocols/NSKeyValueCodingProtocol/Reference/Reference.html#//appleref/occ/instm/NSObject/setValue:forKey:] wants an id type (pointer to an object of any Obj-C class) for the first arg. Since 21 is an int, i.e. a scalar value, the compiler doesn't like it (and the runtime system would like it even less).
    However when you want to use KVC to set a scalar property, the methods are actually smart enough to extract an int if you provide a NSNumber object (see "Setting Attribute Values Using Key-Value Coding" under [Key-Value Coding Fundamentals|http://developer.apple.com/iphone/library/documentation/Cocoa/Conc eptual/KeyValueCoding/Concepts/BasicPrinciples.html#//apple_ref/doc/uid/20002170 ] in the Key-Value Coding Programming Guide). So if 'test' is an int ivar of the parent controller, something like this should work:
    [self.parentViewController setValue:[NSNumber numberWithInt:21] forKey:@"test"];
    Does that cover your questions? Sorry again for the bad code. Most of the examples I post are pasted directly from working, tested code, and I usually add a disclaimer if it's just something I keyed into the forum. But when I"m having a senior moment all bets are off.
    - Ray

Maybe you are looking for