Adding local variable using mfc-application

Hi.
I’m looking for a way to add a local variable to a TestStand-Sequencefile (not while the sequence is running) – out of a MFC-application. It’s not the first time this question is asked – I know. But I’m not able to get the other solutions running.
Thought it should work like this:
Step SequenceStep;
TS:ropertyObjectPtr property;
disPtr = tsEngine.NewStep(TS_SequenceAdapterKeyName, TS_StepType_SequenceCall);
SequenceStep.AttachDispatch(disPtr);
SequenceStep.SetName("Sequence");
//add a local variable to the new created sequence
property = SequenceStep.AsPropertyObject();
property->SetValString("Locals.VarToInsert", 1, "Str");
In TestStand I’m not able to see the
new variable – but in the Sequencefile the following lines were added:
[SF.Seq[0].Main[2].Locals]
VarToInsert = "Str"
After changing the lines to:
[DEF, SF.Seq[1].Locals]
VarToInsert = Str
everything works fine. Any suggestions what’s wrong with my program?
Thanks!

I’ve found a solution (example in the TestStand-folder) for this problem.

Similar Messages

  • Create local variable using labview scripting

    I am trying to use labview scripting to create a control and a local variable for that control.  I want both the local variable and the control contained inside a case structure.  My problems are twofold:
    1. the local variable is left blank/unnamed
    2. the local variable is wired outside of the case structure, even though I set it's owner to be the same as the owner for the control (which is placed inside the case structure).
    The flat panel is there because I thought that my problem might be a result of the local var being created before the actual control, so this just forces the control to be created first.  The other thing I wonder about is the VI Object Class for the local variable.  I have tried 'Node' and Control->Boolean, but neither worked.
    I have attached a jpg of the code I'm talking about.  The picture on thetop is of the code in question.  The picture on the bottom is of the resulting code that's created....
    Can anyone offer any help?
    Thank you...
    Attachments:
    vi_scripting_lv.png ‏95 KB

    The reason your locals aren't tied to a control, is because you didn't make a local variable from any control.  Use the Boolean reference wire and wire it to an Invoke Node and select the Create >> Local Variable method.
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

  • Adding Three Variables using Standard Action?

    I'm attempting to create an expression using a standard action. However I'm finding that it will only allow me to enter two variables (NOT 3) for the total.  (total 1) + (total 2) = data_targetmonthly (as shown below). I need the expression to be: (total 1) + (total 2) + (total 3) x 1.3  = data_targetmonthly.
    Please see attached. Should I be using an equation at this point instead?

    I've been pulling my hair out on this one and I've gone through the Rapid Learning blog, your site and the Lynda.com training as well as searched throughout youtube and the community forums and still can't find the answer I'm looking for.
    I have four text entry boxes in one column where the student enters in an item they'd like to have. Each item goes into its own TEB.
    EX: Ford Mustang
    In the middle column I have a cost for that item that they enter in (variables labeled as: cost_1, cost_2, cost_3, and cost_4). They manually enter it in - there are no preset values that they enter from a list on the screen or that I can have them select from a drop-down menu or anything.
    EX: $300/mo
    In the third column I calculate how much that item would cost over the course of a year.
    EX: $4680
    The Action to determine the $4680 value would be:
    COST_ITEM1: SUM_ITEM1 = COST_1 * 1.3
    Now if I stopped there with one item - EVERYTHING WORKS GREAT! But here is where I run into trouble....
    I want to follow this procedure for all four items and then create a GRAND TOTAL for the entire list using the same formula as above. But when I do so, the value always comes up as "0".
    I had created a variable called "total_1" and the following action:
    12_TOTAL: total_1 = COST_ITEM1 + COST_ITEM2
    and then created the following as well:
    34_TOTAL: total_2 = COST_ITEM3 + COST_ITEM4
    Then I created an action entitled:
    FINAL_TOTAL > YEARLYCOST: 12_TOTAL + 34_TOTAL
    This gives me the "0" total. Again. It's driving me NUTS. Can you point me to where I'm going wrong? Am I correct in lumping together the FINAL_TOTAL figure as 2 totals? I wish there was a simpler way - by adding multiple totals (more than 2) into one variable.

  • Using a variable with "tell application"

    I'd like to use a variable (app_name) with "tell application" in the following function:
    on getAdobeDoc(app_name)
    tell application app_name
    tell current document
    return (name as Unicode text)
    end tell
    end tell
    end getAdobeDoc
    but I'm getting the following error in Script Editor
    "Expected end of line but found class name." with the word "document" highlighted.
    Are you allowed to use variables in "tell application"? All Adobe CS apps seem to use the same format to get the document name so I'd like to use one function to get them.

    If the application might have a different name on the target machine (for example, if it has a version number added), you can use an application's bundle identifier (or creator code) to set the variable, in which case the using terms from statement tells AppleScript the application (on your machine) to get the dictionary terms from. If the application you are using terms from has a dictionary identical to your variable, everything should work the same. The following example uses a variable (called, appropriately enough, TexttEdit) for the TextEdit application:
    <pre style="
    font-family: Monaco, 'Courier New', Courier, monospace;
    font-size: 10px;
    margin: 0px;
    padding: 5px;
    border: 1px solid #000000;
    width: 720px;
    color: #000000;
    background-color: #FFDDFF;
    overflow: auto;"
    title="this text can be pasted into the Script Editor">
    tell application "Finder" to set TextEdit to the name of application file id "com.apple.TextEdit"
    tell application TextEdit
    using terms from application "TextEdit"
    launch
    make new document with properties {text:"This is a test"}
    end using terms from
    end tell
    </pre>

  • I am trying to write a double buffered data acquisition program using MFC and a callback function.

    i am trying to do a double buffer data acquisition using MFC application framework in Visual Studio.i want to use a callback function to notify when the buffer is half full.do you have some sample reference program that can help me?

    What DAQ board are you using? When you installed NI-DAQ you should have selected to install the support files for VC++. Then there will be several examples on how to do double buffered data acquisition.
    If you have already installed NI-DAQ 6.8 or higher and did not select to include the support files, you can run the NI-DAQ setup program and just add them. If you are using an older version, you will have to uninstall and reinstall.
    Once you have the support files, follow this path to the examples.
    >>Program Files>>National Instruments>>NI-DAQ>>Examaples>>Visual C>>
    If you are doing digital acquistion, goto the di folder, if you are doing analog acquisition goto the ai folder.
    As for the callback function, you can use the NI-DAQ function Config_DAQ_
    Event_Message with DAQEvent Type = 1, where N would equal half your buffer.
    Brian

  • Equivalent of "C static local" variable?

    Hi!
    I am trying to write a sub-VI that has multiple call modes
    (init, do1, do2) and needs to remember some variables set in the
    'init' call. When I try the straightforward way of just placing
    indicators as temporary variables on the front panel, these seem
    to reset to the default values every time the VI is called.
    Is there any equivalent of the static local variables used in C?
    Or do I have to use GLOBAL variables?
    Rudolf

    There are several solutions:
    1. Global variables.
    You can create global variable for each of your temorary variables. This is easy to do but I think it's not very convivient way to pass data.
    2. One Global variable.
    If you have many temporary variables you can organize them into cluster and create only one global variable for this cluster. Then you have to read and write this cluster in your SubVI every time you change any of your temporary variables.
    3. Pass data to/from your SubVI.
    If you look at the most of LV VIs you will see that very often they have some practically identical input and output nodes. For example "AI Start.vi" has " task ID in' and "task ID out" nodes. You can make the same thing. Let your subVI reads and writes some cluster of your tempora
    ry variables through its input and output nodes. So you will have the access to this variables in any place ofyour main VI. Also you can change and create your own clusters of temp variables in your main VI. And also you will get the ability to pass these data to your subVI using local variables or shift registers or sequence locals in your main VI
    I think that the last way is the most useful.
    Good luck.
    Oleg Chutko.

  • Create local variable by an expression

    Hi!
    I searched the discussion forum, but I couldn't find any information about how to create a local variable using an expression.
    The TestStand version I'm using is 4.0.
    lets say, if I wanted to create a variable called "foo" as integer. What will the expression be?
    The expression will be called from the step-type "Statement".
    Thanks
    Best regards
    Selvakumar

    Locals.SetValNumber("Foo", 1, 0) will create a variable named Locals.Foo, and initialize it with a value of 0.
    The variable will only exist for the lifetime of the execution.
    Allen P.
    NI

  • "abstract" modifier for local variable

    Again, I am studying the SCJP 6 and have a question on avaiable access modifier in local variable (within the method).
    The book said the ONLY access modifier allowed for variable within the method is "final", and for method-local inner class is "abstract" or "final". But for fun I tried to write this code:
    public class NewClass1 {
        public static void method1(){
            abstract String a = "hello";
            System.out.println(a);
        public static void main(String[] args){
            method1();
    }can it compiles and runs fine. Also when I change to this below, I can even "change" the value of a refer to, the behaviour seems ignoring the final access modifier:
    public class NewClass1 {
        public static void method1(){
            abstract final String a = "hello";
            a = "free to change the value";
            System.out.println(a);
        public static void main(String[] args){
            method1();
    }So my question are:
    1. Can local variable use the access modifier "abstract"?
    2. If yes, what is the meaning of it?
    Edited by: roamer on 2009?11?16? ??9:55

    it compiles and runs fine
    As I said in the post they were compiled and ran without any error or exception.
    Yes, when "compiling", I got the compilation error which is same to your message^^
    let's see if I got the same error again in my home.I've seen your future, and it's got a compiler error in it.

  • Unable to see local variable values when debugging java

    Hi,
    I am using JDev 10.1.2 with java version 1.4.2_04.
    I have been using JDev to debug my java programs. But suddenly from this morning I am unable to see local variable values. I am able to see class and instance variables. This has happened to me before and I had restarted my machine couple of time, to get this sorted. But this time, nothing helps. Going thru the forum I found out that Include Debug information (Project Properties -> Compiler Option) need to be turned ON. It is already turned ON for me.
    I would greatly appreciate if you could let me know how to crack this problem.
    Thanks in advance.

    No. The local variables 'used' to show up during debugging. But erratically it doesn't show up local variable values. I had to restart my machine couple of times whenever this happens, inorder to see the local variable values. But this time even restarting doesn't help.
    Is there any preference setup that need to be turned on/off to see local variables?
    Also I can't step into a static method now. Any idea why this happens?

  • How to use local variable in member formula?

    Hi Expert,
    We would like to use a {local variable} in a member formula, so that it can pick up the prompt from webform upon save. Would like to know if it is possible to do? If so, what is the correct syntax?
    We attempted to use brace {scenario}, blacket [scenario], blacket with quote ["scenario"]. None of these work.
    We are using 11.1.2.1 version, EPMA, Hyperion Planning.
    Thanks in advance for your help!

    One other pointer. Where did you define your variable? Hopefully you went into Calc Manager and selected <Tools>, <Variables>. From there, navigate to your application or database. Right-click on your application or database and select "New". In the bottom panel, you'll need to select your Variable Type. Make sure you select "Member", and not "Members". You cannot pass "Members" (plural) to a web input form. Also, if you want to define a variable for a custom dimension, you'll need to do it at the database level. Standard dimension member variables can be defined at the app level. (Not sure why this is the case, especially when my custom dimension exists in all plan types . . . . )
    Anyway, hope this helps,
    - Jake

  • Possible to use local variables in Calculation Manager

    Hi,
    I'm using calculation manager in EPMA for the first time. Have not found any function for using "local variables", i.e. variables that can be used for fixing on the current members a user has selected in a form. Do someone know if it is possible to use that functionality in calculation manager? And in that case, how do I find it?
    Thanks!
    Regards
    Mats

    Hi,
    I guess you are referring to local variables in Essbase Administration Console. When you are in calculation manager (System View), you can go to Tools->Variables. There you can create variables at application, database (global) or business rule level (local variable). You can use these in Business rules by placing the name in curly bracket {...}.
    The usage of the variables in the forms is the same as before.
    If however, what you meant to say by local variables is substitution variables, yes you can use them in Calc manager the same way you use in calc script.
    Cheers,
    Alp

  • How to solve error using local variables?

    I've created a sequence with a local variable.
    But when I execute it, an error occurs since the first step (before the step where I manipulate the local variable).
    The error code is something like:
    Error in Evaluation. Syntax expression. Column [0-0]
    It's interesting because it seems that once I've executed my sequence for the first time I can't create any other sequence where this error doesn't appear.

    Pparo,
    The problem does not occur under TS 1.0.3 on my system. However, I think we can get to the bottom of this.
    When at a breakpoint in your sequence, if I type the expression "Locals.nls == 15-" in the TestStand watch window, I will get the message
    Evaluation Failed: Syntax error in expression (Column 18-18)
    I believe that this is the same type of error that you have encountered. Correct me if I am wrong.
    The numbers after the word "Column" indicate where the error has occurred in the expression. In your case the error occurs at the beginning of an expression. The question still remains as to in which expression is error occurring.
    Are you seeing this error reported in the watch window? If so, then you have typed the expression in the watch window.
    If I copy the bad expression above into a the expression of a Statement step I get a run-time error of
    An error occurred in the 'Statement' step of the 'MainSequence' sequence in 'Sequence File1'.
    The post-expression for the step 'Statement' could not be evaluated.
    Syntax error in expression.
    Error Code: -17322
    From what you report, the error appears to be located in your watch expression. When I executed your sequence with a breakpoint on the first step, I added the watch expression by selected the Context tab, expanding the Sequence Context tree view until I could see the nls variable, and then I dragged nls from the tree view to the watch window. This created the watch expression of Locals.nls. I also created the same watch expression by right clicking in the watch window, selecting Add Watch from the context menu, and selecting (or typing) Locals.nls. The expressions all evaluated to 24 without error.
    This process has NOTHING to do with creating local variables. You asked if you are creating variables properly. There are only 2 ways to create variables in TestStand 1.0.3, neither of which you have described. The most common method is to select the Locals tab after opening your sequence (not during execution), right click in the right pane and add the variable of your choice. It seems like you did this correctly based on the sequence file you sent. The other method of creating variables is to do so programmatically. However, this is beyond the scope of this answer.
    You ask a question about "the best way to create three constants in LabVIEW and pass them to a LabVIEW VI that is a step?" This implies to me that you want to create the strings within a VI called by one sequence step, and then use them in another VI called by a different sequence step. I would recommend taking a look at the example AccessingPropertiesAndVariables.seq that ships with TestStand. The first 3 VIs write values back to step properties, but could just as easily write them back to local variables. The 4th VI writes a file reference back to a TS local variable. The 5th and 6th step get the file reference from the TS local variable. You want to do something similar to the 4th and 5th VI, however, you want to send 3 strings to local TS variables, and then get them in the following VI. This will require using "TestStand - Set Property Value (String).vi" and "TestStand - Get Property Value (String).vi" which can be found in the TestStand function palette in LabVIEW. After reviewing this example you can then ask additional question. I recommend posting the question on a different thread since it is unrelated to your original question about the syntax error.

  • Store Counter Number in BODS using Global/Local Variable

    Hi All,
    Anyone done before adding a counter integer field into a table based on key via BODS?
    Example:
    Table 1 (contains just 1 field) <-Input:
    Key 1
    Key 1
    Key 2
    Key 2
    Key 2
    Table 2(contains 2 fields with INT as the 2nd field) <-Output:
    Key 1      1
    Key 1      2
    Key 2      1
    Key 2      2
    Key 2      3
    I was wondering if populating the Local Variable or Global Variable might work but from my understanding, inside the Data Flow , it's not possible to increase the variable value ($count = $count + 1).

    Hi Maurice,
    Thats a good idea!!
    I had currently implemented a solution where i use Variables and Customize Functions to solve the problem.
    Will give a try and see if your solution produce the same result.
    Tim

  • Data Acquisition - using local variables to write data to a file

    Hello,
    I am running a Data Acquisition vi (currently in LabVIEW 7.1 but soon to be updated to 8.2) that collects ~100 parameters of data from several sources contained in a while loop. The current configuration (which I did not write) uses very few subVIs and writes to ~100 local variables to store each parameter. It then reads all the local variables and builds an array of all the strings, converts then to a spreadsheet string, then uses the write characters to file function to append to a datafile. I am trying to clean things up and have came up with subVIs to collect the data from the following sources:
    8 serial port sources collecting btwn 8 and 20 parameters each
    ~15 thermocouple readings
    ~10 analog inputs
    ~20 parameters read off an ARINC 429 bus.
    I have come up with a subVI to read each of the sources and have placed the subVIs in the while loop. Each subVI outputs the data that it collects in array or cluster form. I was wondering how best to write each parameter to a CSV file at between 1 and 10 Hz. Should I write each subVI output to a LV and then read them off as was done before (the difference being that I have reduced the # of LVs to ~10 vs >100?
    I should add that precise timing is not that important, so if all the subVIs are not collecting simultaneously (which I understand that they won't be), it does not really matter.
    Thanks.

    Hi jilla,
    jilla wrote:
    What I think that you are saying is to turn the outputs of the 4 subVIs into inputs of a 5th subVI that writes to the data file. Correct?
    Yes.  It may sound like a fine-point, but I beileve it's better to create a VI specifically for formatting data - in your example, 4 arrays IN, a single string OUT.  Then write the string to file as a seperate operation.  GUI-displayed data can go through a similar transformation, the four arrays wired to a subVI which builds output-structures specifically for display.  It's a beginner's mistake to put lots of individual controls and indicators on the screen when groups of them are naturally related (in an object-oriented sense.)  Use clusters to group related controls - this will keep the diagram much cleaner.
    One more question: at what point (either # of data points or frequency of data collection) does it become necessary to use queues? Thanks.
    Well, there's not really a clearly definable "point".  I'd say if your update-rate climbs above 100Hz, or you witness poor program or system performance, then it's time.  The scenario you've described is a fairly simple acquire/display&log loop - and simple is good.   Then-again people can't see/react-to updates faster than about 10Hz - so it doesn't make sense to sacrifice performance - if performance becomes an issue.
    Re: queues:  Queues are sometimes used to buffer data that's "produced" in one place and "consumed" in another.
    Here, if/when logging data, you're logging with every DAQ.  I wouldn't recommend using a queue to transport data from a "DAQ loop" to a "Logging-loop" - those functions can be in the same loop.  Should/could a queue be used to get data from a "DAQ loop" to update the GUI at a lower frequency?  Sure, but a Notifier might be a better choice.   Further, in the (simple?) program you've described, you might use a case structure (True/False) to only update FP indicators every "X" iterations - a simple solution that doesn't require Queues or Notifiers.
    Cheers!
    "Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)

  • Problem using local variable in event loop

    I have a state machine from which I want to monitor various controls, including "Start" and "Stop" buttons.  Not every state needs to monitor the controls.  At present, most states run timed loops.  In the first state that reads the front panel, I have an Event structure (inside a While loop) that monitors the various controls' Change Value events.  For numeric controls, I update variables (in shift registers) as needed.  The "Start" button is used to end the While loop controlling the Event structure, allowing the State to exit to the next state.
    My problem comes in subsequent states that employ this same idea.  Here, I put a Local Variable bound to the Start button and use the same code, but it frequently happens that when I enter this particular state, I cannot "turn on" the control -- I push the button, but it stays off.  Curiously, if it was On when I enter, I can turn it off, but then I'm stuck not being able to turn it on.
    I mocked up a very simply routine that illustrates this.  There are two sequences (corresponding to the two states).  Both use an Event loop with a local variable bound to my Stop button (really this is an LED control with custom colors).  I've deliberately moved the "initialization" (the declaration of the control in the block diagram) out of the Event loops -- putting it inside the first loop modifies the behavior in another strange way.
    Here's my thinking on how I would expect this to work:  The code outside Event Loop 1 should have little effect.  Assume the Stop button is initially Off.  You will "sit" in Event Loop 1 until you push the Stop button, changing its value to True; this value will be passed out of the Event case and cause the first While loop to exit.  You now enter the second sequence.  As I understand the Exit tunnel, it defaults to "False", so I'd expect to stay in the second Event loop until I turn the Stop button from On to Off, which will pass out a False, and keep me in the While for one more button push.  However, this doesn't happen -- I immediately exit, as though the "True" value of the Stop local variable is being seen and recognized by the Event loop (even though it hasn't changed, at least not in the context of this second loop).
    An even more curious thing occurs if I start this routine with the Stop button turned on.  Now I start in my Event loop waiting for a change, but this time the change will be from On to Off, which won't cause an exit from the frame.  This will be reflected by having the While loop count increment.  We should now be in the state of the example above, i.e. in an Event loop waiting for the control to be pushed again, and turned On.  However, clicking the control has no effect -- I cannot get it to "turn on".
    Where am I going astray in my thinking?  What is it about this method of doing things that violates the Labview paradigm?  As far as I can tell, what I'm doing is "legal", and I don't see the flaw in my reasoning, above (of course not -- otherwise I'd have fixed it myself!).  Note that because I'm using local variables inside Event loops (and I'm doing this because there are two places in my code where I want to do such testing), the Stop control is not latching (as required).  Is there something that gets triggered/set when one reads a latched control?  Do I need to do this "manually" using my local variable?
    I'll try to attach the simple VI that illustrates this behavior.
    Bob Schor
    Attachments:
    Simple Stop Conundrum.vi ‏14 KB

    altenbach wrote:
    Ravens Fan wrote:
    NEVER have multiple event structures that share the same events. 
    Actually, that's OK.  NOT OK is having multiple event structures in the same sequence structure.
    See also: http://forums.ni.com/ni/board/message?board.id=170&message.id=278981#M278981
    That's interesting.  I had always thought I read more messages discouraging such a thing rather than saying it was okay.  Your link lead me to another thread with this message. http://forums.ni.com/ni/board/message?board.id=170&message.id=245793#M245793.  Now that thread was mainly concentrating on registered user events which would be a different, but related animal. 
    So if you have 2 event structures they each have their own event queue?  So if you have a common event, one structure pulls it off its event queue and it does not affect the other structure's event queue?  I guess the inherent problem with this particular VI was that the second event structure locked the front panel.  Since the code never got to that 2nd event structure because the  first loop never stopped because the change was from true to false.  After reading your post and the others, I did some experimentation and turned off the Lock front panel on the 2nd structure, and that prevented the lockup of the program.
    Overall, the example VI still shows problems with the architecture and I think your answer should put the original poster on the right track.  I think as a rule I would probably never put the same event in multiple structures, I feel there are better ways to communicate the same event between different parts of a program,  but I learned something by reading your reply and about how the event structures work in the background.  Thanks.

Maybe you are looking for

  • Runtime environment error when starting MaxDB

    Hi, I downloaded SAPNetWeaver04SneakPreviewSlimSP11.zip edition from the SDN. I followed the preinstallation directions very closely and believe I have the correct environment set up.  However, during the installation process I ran into the following

  • Image can't be found

    Hey, My college has just added 3 mac labs throughout our locations and I am having trouble finding the NetRestore image on other campuses. On my campus where our server is located I can find the image, but when I am on our other campuses (1 hour away

  • Optimizing apple devices interconnectivity

    Hi,I have a huge collection of music,photos & movies.Recently I decided to shift into using apple products so now I have a Macbook pro, an iPad2, an Apple TV, a Time Capsule and an iPhone. How can connect all devices in a way that optimizes the usage

  • How to increment an element in an array and put it back in the same array?

    I have an array of values generated by another part of my program. My goal is to count the number of occurences for each integer value in the array and put these values in a new array. This new array will be a histogram of the input array. My approac

  • Convert Char as KF at Query Level

    Hi, I have a query will all line Item Details with GI Date details. But my requirement is the for all line Item details i want the GI date as mentioned for Line Item 10. (i,e First Schedule Line Date) at query level. Is there any way i can convert th