Combining results of previous steps into numerical test

I'm relatively new to TestStand. Here is what I am trying to do.
Call VI A with numerical limits, make measurement, store value in sequence local.
Call VI B without numerical limits, make measurement, store value in sequence local.
Calculate: measurement A - measurement B. Compare the result to numerical limits.
Do I need to create a very simple VI with just two inputs, a subtraction function, and an output as a LabVIEW numerical limit step to implement step 3, or is there a more recommended way to do it?
Thanks.
Stephen
Solved!
Go to Solution.

Here's what I would do:
Call VI A as an action step.  Store the measurement in a local variable
Call VI B as an action step.  Store the measurement in a local variable
Use the None Adapter to create a Numeric Limit Step.  Set the Data Source to Locals.AValue - Locals.BValue
jigg
CTA, CLA
teststandhelp.com
~Will work for kudos and/or BBQ~

Similar Messages

  • Referring to Automator Results from Previous Steps

    Is it possible to refer to the results from previous steps in an Automator Workflow? Specifically, I'm trying to modify my backup Workflow to remove files from a folder before archiving it. I'm writing code and I want to back up my progress every so often. I have a decent workflow for archiving my entire project folder, but my executable is 21 MB where as the source code is .5 MB. I could cut the size of my archive dramatically if I could remove the executable file before archiving (plus it's obviously nonportable and redundant anyhow). I'm running into 2 issues when trying to create a Workflow to handle this:
    1) Find/Filter Finder Items rely on Spotlight meta tags. Since I'm constantly recreating the executable, it appears Spotlight generally doesn't have the executable indexed so these two functions don't work. They simply don't see the executable.
    2) Even if I find the file and delete it, I don't know how to select the folder again to archive it. I'm trying to keep this general so it'll work on any project folder so I don't want to point it directly to the folder.

    Is it possible to refer to the results from previous steps in an Automator Workflow? Specifically, I'm trying to modify my backup Workflow to remove files from a folder before archiving it. I'm writing code and I want to back up my progress every so often. I have a decent workflow for archiving my entire project folder, but my executable is 21 MB where as the source code is .5 MB. I could cut the size of my archive dramatically if I could remove the executable file before archiving (plus it's obviously nonportable and redundant anyhow). I'm running into 2 issues when trying to create a Workflow to handle this:
    1) Find/Filter Finder Items rely on Spotlight meta tags. Since I'm constantly recreating the executable, it appears Spotlight generally doesn't have the executable indexed so these two functions don't work. They simply don't see the executable.
    2) Even if I find the file and delete it, I don't know how to select the folder again to archive it. I'm trying to keep this general so it'll work on any project folder so I don't want to point it directly to the folder.

  • Mapping in BPM: how to merge results of receive steps into send steps

    Hello,
    we need the following BP:
    1. async. Receive Step: receive an IDoc
    2. sync. Send Step: WebService request using the content of an IDoc field.
    The WebService returns some data we need for the destination structure.
    3. Transformation???
    4. async. Send Step: we have to <b>merge</b> and map the Idoc fields and the
    resulting fields of the WebService into the destination structure.
    What are the basic steps and objects therefore?
    IDoc-message            X  --> |
    WebService-message Y  --> |   -->  Z dest-message
    Out problem is, how an where to get access to both Source Messages to merge them for the destiniation message?
    Regards
    Gunnar

    <i>1. async. Receive Step: receive an IDoc
    2. sync. Send Step: WebService request using the content of an IDoc field.
    The WebService returns some data we need for the destination structure.
    3. Transformation???
    4. async. Send Step: we have to merge and map the Idoc fields and the
    resulting fields of the WebService into the destination structure.</i>
    >>>>
    1. async. Receive Step: receive an IDoc - OK
    2. sync. Send Step: WebService request using the content of an IDoc field.
    The WebService returns some data we need for the destination structure. - OK
    3. Transformation - this transformation step will have 2:1 mapping. source would be IDOC and response of WS mapped to result.
    4. async. Send Step: Send the result

  • How do I put test step comments into the test report?

    How do I get the comment for a test step into the test report? I see that the sequence documentation tool and the LabVIEW GUI are able to retrieve this info, but I cannot figure out how to extract it for the test report. I've gone over the API and don't see a function to read it, and I haven't found it in the sequence context at any point during sequence execution.

    If you have LabView try this...
    Message Edited by paulmw on 02-08-2007 01:41 PM
    Attachments:
    commentinreport.PNG ‏9 KB
    StepComment_testLV.seq ‏17 KB
    GetComment.vi ‏27 KB

  • In VB how do I pass my low and high limit results from a TestStand Step into the ResultList and how do I retrieve them from the same?

    I am retrieving high and low limits from step results in VB code that looks something like this:
    ' (This occurs while processing a UIMsg_Trace event)
    Set step = context.Sequence.GetStep(previousStepIndex, context.StepGroup)
    '(etc.)
    ' Get step limits for results
    Set oStepProperty = step.AsPropertyObject
    If oStepProperty.Exists("limits", 0&) Then
    dblLimitHigh = step.limits.high
    dblLimitLow = step.limits.low
    '(etc.)
    So far, so good. I can see these results in
    VB debug mode.
    Immediately after this is where I try to put the limits into the results list:
    'Add Limits to results
    call mCurrentExecution.AddExtraResult("Step.Limits.High", "UpperLimit")
    call mCurrentExecution.AddExtraResult("Step.Limits.Low", "LowerLimit")
    (No apparent errors here while executing)
    But in another section of code when I try to extract the limits, I get some of the results, but I do not get any limits results.
    That section of code occurs while processing a UIMsg_EndExecution event and looks something like this:
    (misc declarations)
    'Get the size of the ResultList array
    Call oResultList.GetDimensions("", 0, sDummy, sDummy, iElements, eType)
    'Step through the ResultList array
    For iItem = 0 To iElements - 1
    Dim oResult As PropertyObject
    Set oResult = oResultList.GetPropertyObject("[" & CStr(iItem) & "]", 0)
    sMsg = "StepName = " & oResult.GetValString("TS.StepName", 0) & _
    ", Status = " & oResult.GetValString("Status", 0)
    If oResult.Exists("limits", 0&) Then
    Debug.Print "HighLimit: " & CStr(oResult.GetValNumber("Step.Limits.High", 0))
    Debug.Print "LowLimit: " & CStr(oResult.GetValNumber("Step.Limits.Low", 0))
    End If
    '(handle the results)
    Next iItem
    I can get the step name, I can get the status, but I can't get the limits. The "if" statement above which checks for "limits" never becomes true, because, apparently the limit results never made it to the results array.
    So, my question again is how can I pass the low and high limit results to the results list, and how can I retrieve the same from the results list?
    Thanks,
    Griff

    Griff,
    Hmmmm...
    I use this feature all the time and it works for me. The only real
    difference between the code you posted and what I do is that I don't
    retrieve a property object for each TestStand object, instead I pass the
    entire sequence context (of the process model) then retrieve a property
    object for the entire sequence context and use the full TestStand object
    path to reference sub-properties. For example, to access a step's
    ResultList property called "foo" I would use the path:
    "Locals.ResultList[0].TS.SequenceCall.ResultList[].Foo"
    My guess is the problem has something to do with the object from which
    you're retrieving the property object and/or the path used to obtain
    sub-properties from the object. You should be able to break-point in the
    TestStand sequence editor immediately after the test step in question
    executes, then see the extra results in the step's ResultList using the
    context viewer.
    For example, see the attached sequence file. The first step adds the extra
    result "Step.Limits" as "Limits", the second step is a Numeric Limit (which
    will have the step property of "Limits") test and the third step pops up a
    dialog if the Limits property is found in the Numeric Limit test's
    ResultList. In the Sequence Editor, try executing with the first step
    enalbled then again with the first step skipped and breakpoint on the third
    step. Use the context viewer to observe where the Limits property is added.
    That might help you narrow in on how to specify the property path to
    retrieve the value.
    If in your code, you see the extra results in the context viewer, then the
    problem lies in how you're trying to retrieve the property. If the extra
    results aren't there, then something is wrong in how you're specifying them,
    most likely a problem with the AddExtraResult call itself.
    One other thing to check... its hard to tell from the code you posted... but
    make sure you're calling AddExtraResult on the correct execution object and
    that you're calling AddExtraResult ~before~ executing the step you want the
    result to show up for. Another programmer here made the mistake of assuming
    he could call AddExtraResult ~after~ the step executed and TestStand would
    "back fill" previously executed steps. Thats not the case. Also, another
    mistake he made was expecting the extra results to appear for steps that did
    not contain the original step properties. For example, a string comparison
    step doesn't have a "Step.Limits.High" property, so if this property is
    called out explicitly in AddExtraResult, then the extra result won't appear
    in the string comparison's ResultList entry. Thats why you should simply
    specify "Step.Limits" to AddExtraResul so the Limits container (whose
    contents vary depending on the step type) will get copied to the ResultList
    regardless of the step type.
    I call AddExtraResult at the beginning of my process model, not in a UI
    message handler, so there may be some gotcha from calling it that way. If
    all else fails, try adding the AddExtraResult near the beginning of your
    process model and see if the extra results appear in each step's ResultList.
    Good luck,
    Bob Rafuse
    Etec Inc.
    [Attachment DebugExtraResults.seq, see below]
    Attachments:
    DebugExtraResults.seq ‏20 KB

  • How to auto set one numeric test step's limits?

    i want to auto set a numeric test step's limits ,the limit's value is got from one number control and one offset control in LV front panel of my programm.when i change the number control in my fronet panel of LV, and it will auto set the limits to my step in teststand.How to realize it? Using local variable or...?? pls help me and give me a example source code.thanks

    Hi,
    You should use the SetValNumber VI off of the TestStand Palette on your Controls Palette. The property you are trying to set is for the step and is identifed by the lookup string(s):
    "Step.Limits.High", and "Step.Limits.Low"
    Have a look at the examples inside of \Examples\AccessingPropertiesAndVariables\UsingLab​VIEW\AccessingPropertiesAndVariables.seq.
    Bob

  • Creating custom edit step (LV) for multiple numeric test

    Hello,
    i want to write a custom edit step (LabView) for a custom multiple numeric test (TestStand 3.0). It should be the replacement for the editmultinumericmeasurementstep. Have anybody done this before and example code or a solution?
    greetings schwede

    Hello,
    thankyou for your answer. But it doesn`t help. I know how to create a custom step type. But I want to create a custom multiple numeric limit test step type with a custom vi as the editmultinumericmeasurementstep. It is quiet difficulty, because i want to create my own measurements (see the attachment). The name of the test should not be measurement 0 or 1 but LED test color oder LED test intensity.
    greetings schwede
    Message Edited by Schwede on 12-06-2007 02:42 AM
    Attachments:
    Test.rtf ‏1414 KB

  • Problem in using Step into and Step Over button in Test Stand user interface development.

    hi,
    I am developing operator interface in VC++
    currently I am facing a problem, I have created Teststand UI button controls dynamically on the dialog, I have assigned the buttons for break, Resume, Break all, Resume all, Step into and step over.
    Break, Besume, Break all , Resume all buttons are working fine, the Step into and step over buttons are enabling if I break the execution, but after breaking the execution when I click the Step into button I expect that the current step will be executed and, breaks at the next statement, but when I click the Step Into button It is behaving like resume button, I mean the executioin is going on till the end of the sequence file, it is not breaking at the next statement,
    Is my Step into button working the way it is supposed to be?, it is the same case with my step over button alsoI am connecting the TSUI button control to the execution view mgr in the  CTestExecDlg:nDisplayExecutionApplicationMgr(LPDISPATCH exec, ExecutionDisplayReasons reason)
    message funciton , and nothing I am doing nothing else, this is my code statement how I am connecting the button to the execution view manager. 
    mExecutionTab.m_pControlPtrArray[0].mExecutionViewMgr->ConnectCommand(mExecutionTab.MiscControls.m_StepInto,CommandKind_StepInto,0,CommandConnection_NoOptions);
    mExecutionTab.m_pControlPtrArray[0].mExecutionViewMgr->ConnectCommand(mExecutionTab.MiscControls.m_StepOver,CommandKind_StepOver,0,CommandConnection_NoOptions);
    Am I missing anything wrong? Can anyone please help me out.

    Al B,
    I'm not the original author of this post, but I have encountered a similar problem.  My C# application has implemented the following "debug" buttons that work just fine: Run All, Pause, Continue, Stop.  But my Step Over button causes the Sequence to run to completion.  When the user clicks on the StepOver button, only one line is executed:
              this.axExecutionViewMgr.Execution.StepOver();
    but it behaves like its calling
              this.axExecutionViewMgr.ResumeExecution();
    Can you offer any insight into this issue?

  • Programatically change "Record Results" of a step

    Hello,
    Just wondering whether it is possible to set the "Record Results" properties programatically.
    Thanks,
    Yannick Willener

    Hi Ray - I have been able to get more familliar with TS, doing simple sequence to test and calibrate some analog equipements. I also get familliar with the callback principle by changing on the fly the name of some steps in such a way that they make sense when i read the report.
    Here is a quick reminder of what i'm trying to do.
    Execute a Test
    If test Fail -> It will show in the report
    Else -> Not in the report
    I'm still trying to accomplish what i described earlier but running into issues. I tried the different approach:
    1-The only way i managed to do it so far is the next one
    setting up the test and manually unchecking the Record Result checkbox
    And uf a if() in Test on the PreviousStep object, if the previous step has failed, i redo the test (fortunatly they are very short ) but setup with the RecordResult check box. This approach is working but is not very classy.
    2-Then i tried to test Step.result.status in the post-Expression field. But according to the reference manual, this expression is evaluated before the Status expression. Dead end
    3-The i figured i could try to play with the Post Action field by putting Step.RecordResult = (Step.Result.Status == "Failed") as a custom condition.
    Once more i get some random result, The prpoerty is set, but since the step has already been executed, it looks like it has already been taken in consideration by the report generator.
    4-I tried to use a call to the TS engine to change the property of the previous step but i get the same result as 3
    5-I tried to use SequenceFilePostResultListEntry and then set the property of the step but once more without sucess.
    What i'm looking for is either a callback that i can overload that is supose to happen after the result of the test has been evaluated but before we notify the engine to log the result. Do you have any other idea ?

  • Combining Contents of 2 PDFs into a single page PDF

    I need to combine elements of two different PDFs into one, single page PDF.   
    One PDF is Template of sorts with headers to be edited, the other PDF is a non-ocr scan that includes text and images.   
    I've found no way to copy and paste on a single page b.t two PDFs. I've tried pasting into an inserted page and then dragging it up or cutting and pasting within the document (with the intention of deleting the unneeded second page) with no luck.
    This seems like it should be such a no brainer. Open 1st PDF, Open 2nd PDF, make selection Ctrl C, go to 1st PDF, place cursor where desired, Ctrl V.   But it doesn't work at all in an intuitive way like any other document program where you can cut and paste with ease b/t documents and even b/t programs.
    So instead, I've copied the part of the image PDF I want into the original word doc of the template, then created a PDF from that.  However, when I try to tell Acrobat to make the entire document OCR, it tells me it can’t b/c it contains renderable text (the header information, I’m assuming).  If I run the OCR on a PDF containing just the image, it does it no problem.   
    What is the best way to bring these two documents together in way that results in a single page, completely searchable PDF? 

    Unfortunately, another $700 software purchase is not in the cards and I can’t wrap my mind around why it should be necessary.  It seems so nonsensical to me that Acrobat has all these advanced functions for editing, combining, making portfolios etc., yet can not perform the simple task of cutting and pasting between two documents.
    While Adobe support was putting me on hold, I doodled up some generic sample documents that I could upload here to illustrate the problem. Hopefully, someone can play with these and give me a workable solution.
    The first PDF, Original Acme Clip, represents the file that is provided to me by our clipping service. They cut the item out of a magazine, put the customized info into their standard template in whatever word processing program they use, printed it out, pasted the magazine clip to that page and then scanned the hard copy to PDF-as an image only PDF, it is not optimized for optical character recognition and is not searchable.
    The second PDF, Final Acme PDF, represents the file that our workflow eventually ends up as-a PDF containing only the info we want, formatted as we want, in which both the headers and clip content are searchable. To get there currently, we print out the Original ACME Clip, type the relevant info into the headers of a Word template that includes our logo and standard footer, print out the Word template page, manually cut out the scanned image from the PDF, and paste it onto the template paper.  The resulting paper is scanned into the Final Acme PDF and OCR is run on the whole thing to make it all searchable.
    What we’d like to do is skip all the printing, and manual cutting and pasting. Any and all suggestions for work in Acrobat 9 Pro to do this would be gratefully appreciated!

  • Is it possible to step into a CVI dll when called by TestStand?

    As the question says: "Is it possible to step into a CVI dll when called by TestStand?"
    I am sure Ray F. may have a few tricks up his sleeves...  Hope you see this post, Ray!
    I compiled a dll using CVI.  The dll is called as a test by TestStand.
    I do have an "exe" version of the code that I use for debug with a testbed, but the behaviour is not the same as testing the actual target while running TestStand.  My goal is to get as close as possible to the real events.
    Thanks,
    JLV

    Sorry about that,
    There are two ways as I was saying:
    1. You can configure the CVI adapter to Execute Steps in a External Instance of CVI (requires CVI 6.0 or greater).
    Only go to Configure->Adapters and select the LabWindows CVI adapter and click on configure and select the corresponding option.
    After that set a break point in the step that you want to debug.
    An external instance of CVI will be launched where you can set break points and step into the code.
    2. From CVI Specifying an external process:
    In CVI go to Run Specify External Process and enter the seqEdit.exe as the program name (you have to browse to the location <TestStand>\Bin\SeqEdit.exe).
    As the argument you enter the name of the sequence file you want to debug.
    Now just select Run->Debug SeqEdit.Exe
    The Sequence Edtior will be launched and you can set break point in your CVI code and step into it when the step is executed.
    Check the Using LabWindows/CVI with TestStand reference manual for more information.
    I hope it helps you to get started.
    Regards.

  • HT204053 how do I combine all my apple ids into one apple id

    Is there a way to combine all my apple ids into one new apple id so all my previous purchases are on one id?
    Thanks

    Unfortunately, you can't.  IDs can't be merged.  You'll just have to pick the ID whose itunes account has the most purchased items.

  • How do I combine two or more pictures into one?

    How do I combine two or more pictures into one?

    I found out how to do what I wanted and I'm giving my steps in hopes that it might help someone else.  I wanted to put several photos from a file onto a new blank image.  This is what I did.
    1.  Create a blank page.    File/New/ Blank File.   Put in the size.  I used 8x10.
    2.  Bring the photo  you want to use into Elements as you always do. It will list along the top next to the blank sheet.
    3.  Choose SELECT (top of screen)/ Select All.
    4.  Choose Edit/Copy   or Command "C"
    5.  Click on the Blank File.   Chose Edit/Paste  or Command "V"
    6.  Click on Image/ Transform or Command "T".  There should be a dotted line around your pasted image.  You can then move and adjust the image to how you want it.  When finished, press the check-mark on lower right of photo.
    7.   Repeat this with all the photos you want on the new blank file.
    8.  You will see on lower right of Elements,  the background layer and as many layers as you have photos.  These layers need to be permanently placed on the background layer. Go to Layers and press Merge Visible.  This will merge all layers to the background.
    9.  Save as and you are done.

  • Stepping into Java Beans from JSP

    I am trying to figure out how to step into the Java Source code for my beans that are used in my JSP pages. I need to be able to debug them by stepping into them, using break points, etc.
    I have Nitro installed and a sample JSP page with the import to my test Java Bean class. What I did was create two projects in my work space. One as a Web project application and one as a Java project. I referenced and opened both projects. Everything compiles fine and the syntax is correct.
    The problem is I can not make the link for importing the class.
    I get this error: Class com.BrianTest.MyBean not found in import com.BrianTest.MyBean
    Anyone got a clue or a good example? I did try and add the class path and I tried to put it in a Jar file and attach the source to the Jar, but same problem.
    Thanks :?

    Stepping into jsp:useBean is not possible, but you can step-into jsp getter & setter tag.
    Since you are using java bean from a dependent project you need to configure your server with DevLoader.
    And currently only Tomcat server can be configured with Sysdeo Devloader to handle this situation
    Download Sysdeo DevLoader for Tomcat from http://www.sysdeo.com/eclipse/tomcatPlugin.html
    NOTE: If the project is self sufficient and not dependent on other projects/locations for classess/libraries then NitroX picks up all the libraries & classes present within default WEB-INF/lib & WEB-INF/classes respectively. And in this case you need not modify server configuration.
    Sysdeo DevLoader is to allow your web project to use libraries/classes from dependent projects. All you need to do is extract DevLoader.zip present within tomcatPluginV3.zip inside your Tomcat/server/classes folder.
    For more information about DevLoader please refer to http://www.sysdeo.com/eclipse/readmeDevLoader.html
    This will solve your problem and you should be able to run/debug your application. And most important make sure you have the correct NitroX build that supports Sysdeo DevLoader, refer http://www.m7.com/whatsnew.htm document against your build id (Help > About NitroX > NitroX Icon)

  • Put results of dynamic sql into pl/sql table

    Hi.
    I tried to "google up" solution to my problem but in vain, so if possible could you give me a hint?
    The test code which I will paste here is somewhat akward, it is part of bigger code and I tried to simplify and adjust it.
    The problem is:
    I have sql statement which I construct on the run, and I want to put results of this statement into collection.
    With present code I get "ORA-00932: inconsistent datatypes".
    The collection must be global, since later on I need to do selects from this collection using:
    select col_1, col_2, col_3 from table(cast(v_pole_final as t_pole)))
    And I do not want put constructors into sql statements (which i believe would help).
    The select will always return columns types varchar, number, number.
    I.e. the same structure as in type "t_zaznam".
    I want to use "execute immediate", or "ref cursor - fetch bulk collect into collection".
    Thanks for help.
    Jan
    -------------- My code:
    create or replace type t_zaznam is object (col_1 varchar2(64), col_2 number, col_3 number);
    create or replace type t_pole is table of t_zaznam;
    create or replace function sulc_experim return number
    is
    s_sql_temp varchar2(6000):= 'select ''asdf asdf'', 7, 777 from dual '||
    ' union '||
    ' select ''yes boss'', 1, 111 from dual'||
    ' union '||
    ' select ''go home'', 9, 999 from dual';
    v_pole t_pole:= t_pole();
    v_pole_final t_pole:= t_pole();
    begin
    execute immediate s_sql_temp into v_pole;
    return 0;
    end sulc_experim;

    user5714007 wrote:
    Thank you.
    I think this is what I meant by "And I do not want put constructors into sql statements (which i believe would help)."
    It would be helpful to be able to select "on the fly" also multiple-columns and mainly multiple-rows results into collection.In case you didn't notice: The deciding difference that Karthik made was this line:
    execute immediate s_sql_temp bulk collect into v_pole;
    If that is not the trouble you have, then please explain you problem with a few samples. What works and what does not work.
    Also there is always dbms_sql where you can create the paramters/output types "on the fly".

Maybe you are looking for