Documenting Usage Instances of Sequence File Globals

I'm new to TestStand 3.5, and I'm inheriting someone else's work.
Is there a way to find out in what sequences and steps each of the individual Sequence File Globals are being set and called?
Maybe someone's written a utility to do this? 

Hi Alan,
You can use TestStand API methods to get File Globals in your Sequence File:
1. First, get the Sequence File Object containing the File Globals by using TestStand API method "Engine.GetSequenceFileEx";
2. Then, get the PropertyObject that contains the default values of the global variables for the Sequence File by calling "SequenceFile.FileGlobalsDefaultValues" property;
3. Finally, run "Engine.ReleaseSequenceFileEx" method to release the reference of object.
Regards
MY

Similar Messages

  • Comment, "sequence file global"

    I'm running a Win2K (8186 Controller) machine running TestStand 3.0 and LabWindows/CVI 7.0.  How can I place comments in the comment field of my Sequence File Globals?  There are fields on the column headings labeled Field, Type, Value, and Comment. The column labeled Comment does not have a box in Properties... to place a comment.
    Tony 

    Hey Tony,
    When you double click on the Sequence File Global, does a dialog come up allowing you to change the value and properties of the Global?  If this is the case could you post a screenshot of what this dialog looks like?  Also I just want to double check, this is all in the TestStand Sequence Editor, and not a TestStand Operator Interface correct?  I have pasted a screenshot of what mine looks like below.
    Message Edited by Patrick P. on 03-05-2007 09:25 AM
    Pat P.
    Software Engineer
    National Instruments
    Attachments:
    TSscreenshot.JPG ‏685 KB

  • How do I read the Visual Source Safe version of a sequence file?

    I can read the TestStand Version using RunState.SequenceFile.Data.Version. I would like to sink the version numbers in VSS and TestStand up. How do I obtain the version number maintained by VSS.
    Thanks, Jeff

    One way to get the VSS version number is through the command line using the History command. See VSS help for more info. I think it would be possible to create an EXE step in TestStand that would execute the VSS command line and pipe the output to a file, where it could be read with some custom code. Of course it would be nice if there was a built-in TS step to do this. Here is an example of the VSS history command usage and it's output.
    ---- Example -----
    C:\DevStudio\Vss\win32>ss history $/tekcal-ni/projects/80e0x/80e0x.seq -#2
    History of $/tekcal-ni/projects/80e0x/80E0X.seq ...
    Label: "Beta1"
    User: Marki Date: 4/29/02 Time: 8:45a
    Labeled
    Label comment: Release to Customer Service.
    ***************** Version
    14 *****************
    User: Marki Date: 4/26/02 Time: 3:00p
    Checked in $/TekCal-NI/Projects/80E0X
    Comment: Changed delay time for DC Accuracy/Linearity from 0 to 100 mS.
    ---- End of Example -----
    If you just want the last version, use the "-#1" option instead of -#2 as in this example. VSS uses labels or whole number version numbers, so you would need to relate this to your TS version number, perhaps with a sequence file global variable.

  • Command line options / API Support to launch the sequence file

    does teststand support any command line options / API Support to launch the sequence file and also populate the test run status. I want to explore the option of integrating the teststand with QC where I can launch the sequence from QC and results are sent back to QC.
    Thanks in advance,
      -Dilip

    Hi Dilip,
    Here are the command line options for TestStand v4.2.1:
    Command Line Processing
    Command line usage:
       seqedit.exe [<sequence file>]
                   [/goto <location>]
                   [/run <sequence> <sequence file>]
                   [/runEntryPoint <entry point> <sequence file>]
                   [/quit]
                   [/setCurrentDir]
                   [/useExisting]              
                   [<workspace file>]
          <location>:  property object path to the item to display in the file
                   Location examples:
                         TestExec.exe c:\example.seq /goto "Seq[\"MainSequence\"].Main[\"Power On\"]"
                         TestExec.exe c:\example.seq /goto "Seq[\"MainSequence\"].Main[\"ID#:JifH4ODTf0y1z7bJ​ne0G7D\"]"
                         TestExec.exe c:\example.seq /goto "Seq[1].Main[4].TS.LoadOpt"
          <sequence file>:  sequence file to open
          <sequence>:       sequence to run
          <entry point>:    entry point, such as Single Pass or Test UUTs, to run
          <workspace file>: workspace file to open
       You may specify multiple sequence files, sequences, and entry points.
       Quotes are required for arguments that contain a space, such as
       "Test UUTs" and "C:\My Documents\Test Sequence.seq"
    I don't believe you'll get a return status of the executed sequence from the editor on close; but you could design your sequence to write the status to a file and then read that by your QC application.
    -Jack

  • Saving persistent data in sequence file

    I need to be able to save data collected and processed during one session and have it available during the next session (i.e. I want to be able to update the initial value of some sequence file globals). How do I do this in TestStand? e.g. I might want to keep track of how many times a particular sequence has been run. I know that I can store this information in StationGlobals, but the variable is unique to the sequence and does not qualify as a global.

    To Hurst -
    I still could not reproduce the problem. I have attached two sequences.
    temp30a.seq:
    "MainSequence" calls teh "Alter Default Globals" sequence in temp30b.seq
    temp30b.seq:
    Contains file globals string with value "Original".
    "Alter Default Globals" alters itself and increments the count.
    "MainSequence" displays the file global
    Open temp30a.seq and run "MainSequence". Close execution display.
    Open temp30b.seq and run "MainSequence". You will get a prompt showing "New Value", not "Original"
    Scott Richardson (NI)
    Scott Richardson
    National Instruments
    Attachments:
    temp30a.seq ‏13 KB
    temp30b.seq ‏29 KB

  • Sequence files documentation in TestStand 4.0.1

    How can I generate sequence files documentaton in TestStand 4.0.1 for all sequences from particular workspace (tests suite) in automatic way? Is there any seqence already written or mayby TestStand 4.0.1 provides some extention of sequence files documentation tool known from TestStand 3.x

    It's not trivial, but if you look at the ForEach.seq tool sequence (Components\NI\Tools\ForEach.seq) you can use that as an example of enumerating all .seq files under a particular directory and performing an operation on them. That tool opens and resaves all the sequence files under a particular directory. With some work it could be made to generate sequence file documentation instead. Also I think there's a sequence in ForEach.seq that you could call to get back an array of all sequence files' absolute paths under a particular directory which you could then loop on and call into the documentation sequence with.
    Hope this helps,
    -Doug

  • Sequence File Documentation adding code module inputs/outputs

    Hi there,
    I would like to document my sequence file. I have used the TS tools| Sequence File Documentation which works fine but I would like to add more information like the code module input and outputs.
    I am using LabVIEW code modules.
    How can I access the VI Parameter table: parameter name, type, in/out and value and then add them to docgen_txt.seq ?
    Any suggestion would be much appreciated.
    Thanks in advance..
    Marken

    Hi Marken
    In this thread there is an example how to create a LV-Module dyamically. Accessing the LV-Parametertable is a sub topic there.
    http://forums.ni.com/t5/NI-TestStand/Create-a-LabVIEW-Step-dynamically/m-p/977348#M25792
    Hope this helps,
    Regards
    Juergen 
    =s=i=g=n=a=t=u=r=e= Click on the Star and see what happens :-) =s=i=g=n=a=t=u=r=e=

  • How do I generate documentation for a sequence file hierarchy?

    I am trying to generate documentation for all of the sequence files used in my test suite. Some of the tests are kinda complex with nesting to eight to ten levels with hundreds of sequence files. The sequence file documentation tool will only let you document the active sequence file and there doesn't appear to be any way to recursively search for the sequence files in LV or TS. Does anyone have a way to do this?

    Hi lars,
    For each sequencefile you will need to create a reference to it by use of the Engine.GetSequenceFile() method.
    Next create a new context by using the SequenceFile.CreateNewContext(), use the SequenceFileObj reference returned by the GetSequenceFile() method.
    Once you have the SeqenceContext reference, use this as the parameter to the second step which calls a dll in docgen.seq, (sorry can not remember what is called at the moment). The at the moment this parameter is ThisContext reference. Probably best to make a copy of this sequencefile (docgen.seq) and make the modification to the copy.
    On the second step, open up the specify module dialog and change the ThisContext to your new variable holding your new SequenceContext. Close the sepecify dialog.
    Some where in your cleanups you will need to set the New Sequence Context to Nothing and call the ReleaseSequenceFile() method passing it the sequencefile reference. Releasing the reference to the sequence file maybe a bit tricky because if the engine is still using the reference, then it will not be released.
    I have tried this and it did generate a document of a sequencefile not previously loaded. My only problem was releasing the sequencefile.
    I am not suggesting that this is a usable solution, because you wouldn't want the dialog window opening up for each sequence file. This maybe a starting point for you.
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • Can I create a global custom step type, available for all sequence files through a single copy?

    I would like to create a custom step type and make it available to any (new or existing) sequence file, without having to copy/paste it every time, to avoid maintenance problems...

    Hi Andre,
    You need to create the custom step type in the station view rather in the sequence file view.
    There's a step type button near the Users Button.
    Click on this button then proceed in creating the custom step type as you would have done in the sequence file.
    If you are using TS 1.0.x then the new step type will be added to the types palette.ini.
    If you are using TS 2.0 then will be able generate a new group ini file to hold your custom step types.
    Regard
    Ray Farmer
    Regards
    Ray Farmer

  • How do I save a running sequence file

    Part of my testing requires a large number of variables to be passed to and from the UUT within TestStand. I can store some of these variables in the station globals, but I'd like the option to store others in the sequence files at run time and save them to disk (save the sequence file) at the end of the test. I can create variables in the station globals and commit the globals to disk just fine (LabVIEW vi's using the TestStand API). However, I cannot figure out how to do the same thing with a sequence file. My code is able to create and populate the locals variables with no problem, but I cannot save the running sequence file to disk with the new locals (or file globals) intact (they disappear when the sequence ends.) The reason I want to save the sequence file is to avoid manually entering all these variables into each sequence file locals list.
    So, I think the questions are:
    How do I make the new locals or file globals a part of the running sequence file?
    How do I save the sequence file to disk before it stops running?
    I can increment the change count on the file. I have figured out two or three ways to save the file while it's running without errors (although I doubt it's actually doing anything.) I'm using the TestStand API in LabVIEW vi's to pull this off and cannot find the functions I'm looking for.
    Sorry if this is rambling, it's kind of hard to describe.

    Hi Lars,
    The reason that we can't save the local variables created during
    runtime is because TestStand creates a runtime copy of the variables
    when the sequence starts. After the sequence is finished executing,
    this copy is discarded. The reason behind this is that TestStand allows
    for a single sequence to have multiple executions at the same time, and
    each instance gets its own runtime copy of the local variables. If new
    locals could be saved to the actual sequence file in memory, it could
    cause major problems for other execution threads of that particular
    .seq file.
    You can use the API to add variables to the actual file using
    GetSequenceFileEx and incrementing the Change Count, or create a
    separate sequence that modifies another sequence file, but adding these
    locals to the sequence file from itself isn't possible.
    Hope this helps Lars,
    Have a good one.
    Dan Weiland
    Applications Engineer
    National Instruments
    www.ni.com/support
    Dan Weiland

  • File globals scope?

    I would like to have some of my File Globals shared across multiple executions while others are execution specific. Is it possible to accomplish this using the Advanced properties flag (PropFlag_Shared?) for the specific variables I would like to be common?

    Scott -
    Sorry about that. The sequence editor assumes that a variable that is marked as shared is a type. We limit users in this way because if users edit a shared property in a step instance, it would edit the type definition itself.
    In your case there is no type but the sequence editor incorrectly limits you. I have written up a problem on this behavior internally.
    Since shared-at-runtime does not work as we discussed and you want to still use shared, you will have to unshare the property before editing its value. Unfortuneately, the sequence editor may not allow you to edit the flags because it is shared. Instead of using the Advanced button on the Properties dialog box to edit the flags, you can use the shortc
    ut Ctrl-Shift-F1 to open the dialog directly.
    Keep in mind that we never considered someone wanting to share individual file globals as you are doing. We will consider supporting this in the future better.
    I hope this helps...
    Scott Richardson
    Scott Richardson
    National Instruments

  • How do I make Step Types in the Type palette be "master" versions which all sequence files on a particular should use? (since this only seems to "half work")

    The situation I would like is to have a library of step types which sequence developers can use. Therefore if new step types need to be added, or existing ones modified - all that needs to be done is to roll out a new MyTypes.ini (for example), and the code modules/substeps.
    Scenarios:
    If I create types in MyTypes.ini (make sure "Attach to this file" is checked, so they get saved here). I can then create a sequence file using these step types. No problem so far.
    I can open the type palette, modify the step properties, and save. When I go back to my sequence file an asterisk appears (saying it needs to be saved, even if I have opened it from scratch). The properties have been updated to reflect what is in the Type Palette. Still no problem (Type versions are the same in the sequence file and type palette).
    This is where the problem appears:
    If I change a step type (in the Type Palette) from using a code module to using a Post-Step substep instead (changing the module adaptor to "None") - any instances do NOT update when you open sequence files. (The same happens vice versa also).
    Please note that the "Type version" listed in the sequence file DOES match that listed in the Type Palette - the properties are the same but the manner in which the code modules are called is DIFFERENT! This then can lead to to runtime errors if the old code module has been deleted for example.
    The only way around this is to open EVERY sequence file that contains an instance of the step type, and make sure that you have "Apply changes to all loaded instances of this type" checked in the step type properties dialog. This is is not a good solution since files could be missed, and is very time consuming if you have hundreds of sequence files!
    What I need is that the Type Palette on any particular station contains the MASTER copies of each type. These are loaded whenever a sequence file is loaded and NOT retreived from the sequence file. As discussed above this seems to work when you modify properties - but doesnt work fine if you change the way in which code modules are called.
    Am I doing something wrong or is this a limitation?

    I had a system recently containing seven sequence files, approx 20 subsequences in each, and around 10-20 steps in each sub-sequence. Every step (except for the NI non-code module types) was an instance of a step type.
    Each one of these steps had an Edit sub-step and a code module called through the code module adapter.
    In order to make these into "wrapped up" step types it was decided to move the code module to a Post-Step substep (as also done in the NI-IVI step types) - so that developers cannot fiddle with the code prototype or module.
    In order to do this I had to open all 7 of the sequence files, make the changes and then ensure that "Apply changes in this dialog to a loaded instances" was checked. This seems to sort of work, but some steps started causing Error 17502 (System Error) when you configure them (call the Edit substep). Over the course of the past few months I have had to effectively check every instance of a type to see if it works (deleting the step and replacing it when it doesnt). Other strange things happened like some of the step type instances now have the "None" (adapter) icon associated with them - but both still work.
    The idea of creating a type-def of a step type is a good one, but frustrating that it doesnt seem to fully work. Why should the sequence file also store a version of the step-type - which is what is effectively causing this problem - why not make it so that if you dont have the step types installed in the type palette - TOUGH! Message Edited by RichM on 03-15-2005 06:55 AM

  • How can I include multiple limits in the sequence file documentat​ion for custom step type?

    Hi,
    I have a custom Step Type that contains Measurements property under Results. Its type is Array of NI_LimitMeasurement.
    I would like to see the values in the sequence file documentation like NI_MultipleNumericLimitTest type.
    Is there any trick to do that?
    Thanks,
    Andras

    Hi Andras,
    I have made  a slight change to the sequencefile 'docgen_txt.seq'.
    In the Sequence 'Step Doc' is a section which handles MultipleNumericLimit step type. There is a precondition check on the step 'Add Multiple Numeric Limits' if the step is of type 'NI_MultipleNumericLimit'. As your step type is based on the MultipleNumeric Limit type, I have just removed this precondition and just relied on the existence of Parameters.Step.Result.Measurement. Equally you could add a new section in this sequence to handle your Custom Step Type which is only called when the precodition match your type name.
    Now when you run the DocGen tool it handles your custom step type.
    Find attached my modified sequencefile 'docgen_txt.seq'.
    Just copy the contents of '..\National Instruments\TestStand 3.5\Components\NI\Tools\DocGen' to the User folder. Then place the attached file in the User\Tools\DocGen overwritting the version that is in that folder.
    Then launch TestStand and try it out on your sequence file.
    If you are using the html version, then you will have to make the same change into Step Doc sequence of the docgen_html sequence file.
    Hope this helps
    Regards
    Ray Farmer
    Message Edited by Ray Farmer on 05-19-2007 05:28 PM
    Regards
    Ray Farmer
    Attachments:
    docgen_txt.seq ‏184 KB

  • Questions about "Diff Sequence File With..." function

    Hello,
    I've started working on a project where I'm maintaining a piece of older code written by a since-departed employee of my company.  It's a TestStand 3.0 sequence file calling on Labview 7.0 code. The thing is, there were two of these installations done at different times and, somewhere in the woods between stations 1 & 2, the code base diverged.  Part of it was due to not being able to get exact duplicate hardware for the PXI chassis and part was, apparently, due to the fact the client used the 2 machines to test different UUT models.
    So, I'm looking at copies of the installed code base on the two machines using the diff feature in TestStand.  (If it makes a difference, I'm doing this viewing in TestStand 3.5 since TS3.0 has mysteriously gone corrupt on me at the moment on my main development computer and, if memory serves, you have to uninstall all the later version of TS to reinstall an older version.  An altogether fun process, no doubt, but a little time consuming.)
    Anyway, the first thing I notice is that very many of the sequence steps have different Step Properties.Step ID values that look something like this: "ID#:2vMTp0db002mQDXArddRSA".  Messing with the diff screen showed an option to "Ignore Unique Step Ids" which got rid of these.  Regarding these unique step ID's: When are they generated and do they remain constant on a particular machine?  Beyond mere curiosity, I wonder because another diff is in some of the "On Pass Target" or "On Custom Condition True Target" under certain Step Properties and the value under there looks suspiciously like those unique ID's (i.e. ""ID#randomstuff"").  Are these all dynamically updated at runtime or will I break something by changing those (say if I copy a sequence from one version overwriting it in the other)?
    So, I filtered the unique ID's out.  The next large area of difference is that many, but by no means all, Labview VI calls have a difference under Step Properties > Flexible Labview Adapter Properties > ViCall > Connector Pane Checksum > Value.  Also, in a few other instances, ViCall > error out > Connector Number is different as well.  Does this indicate a different underlying VI?
    There are a few other differences, but I can interpret those.  My goal is to get one sequence file for both machines so the code will be easier to maintain.  I do think that some of the VI's with different Connector Pane Checksums may be different between the two installations since one of the different hardware components required a different driver library.  This leads to a third question, what does it take to use identical sequence files when the underlying VI's might differ?  Is it just the interface needs to be the same?  Like the connector pane has the same geometry and data types for the exposed inputs and outputs?
    Thanks for any help,
    Mike
    Solved!
    Go to Solution.

    I just got off the phone with NI support, so no worries on the answers.
    Short versions:
    The unique ID's are regenerated when a sequence is copied.
    Teststand doesn't need higher versions uninstalled to reinstall an earlier copy.
     Connector Pane Checksum implies a different underlying VI, but having the same connector geometry/inputs/outputs/types should allow you to have a different VI for different installations without different sequence files.
    Still waiting to hear back from support on whether the goto pointers get updated properly when a sequence or portion of a sequence is copied.

  • Type conflict where type not found in sequence file

     Hi,
    from a central master sequence, I am starting several sequences from other sequence files in new executions. These sequences have individual types as input and output parameters, the types being defined within these sequence files.
    The master sequence only knows the names (as strings) of these types and when I do a "Find/Replace in files" in the master sequence file looking for those types, they are not found.
    However when I change one of the types in its respective sequence file while I have the master sequence file open, the master sequence file is shown with an asterisk and later I get a type conflict if the settings is to "Never allow automatic type conflict resolution". This is fairly awkward since the master sequence file is supposed to be password protected and no-one should have to touch it in a project.
    What can cause this behavior?
    Apparently, usage of these types spread around through all sequence files although they do not have any need for using the types from other files.
    Is it possible that it makes a difference whether the type was first defined in a type palette file or directly in a sequence file?
    Best regards,
    Peter

    Peter,
    using the data type as parameter in another sequence file will include the type definition in the calling sequence file, therefore changing it. I am not sure why the Find/Replace tool does not display it, but it shows up in the types palette of the file.
    When the data type is changed, it will result in a type conflict....
    So when trying to reproduce the issue with TS 2010, i receive an dialog for resolving type conflict when setting to never do an automatic resolve...
    Nevertheless, the calling sequence must be updated for sure if a used type is changed.
    hope this helps,
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

Maybe you are looking for