Problems with upgrading interfaces of custom step types

This question is about configuration management of custom step types.
Here at Cummins, we have defined our own custom step types (CSTs) using MyTypes.ini. People all over the company use these CSTs in their seq files.
All these CSTs are calls to individual sequences in a seq file (for simplicity, we'll call this file "Source.seq"). An example CST would be MyStep which calls the sequence MyStep_sequence in the file Source.seq.
What we want to do going forward is: add one more parameter to the interface of this CST. That means, we will add one more parameter to the sequence MyStep_sequence and then upgrade the definition of the step in MyTypes.ini. We don't want to break existing users, and want the future users of this CST to be able to use this new parameter for newer functionality (ofcourse I did think about creating a new CST all together, but that seemed more maintenance in the future).
In order to achieve this, my idea was to check mark the box "Use Default" in MyTypes.ini for the new parameter (I propose this because very few of the new users will want to care about this new parameter). At the same time, increment the version number of the step. So now, when an old file is brought up that was using this step, it should be usable just as is without any modifications (ofcourse it will need to be re-saved). When this step is used now by a new person, he will be able to see the new parameter and either not care about it (leave it checked as "Use Default") or pass a desired input to it.
First question :, does this sound like a good long term approach for maintaining backward compatibility and CM control? Or are there any percieved issues with doing this due to which its recommended to just go ahead and create a new step?
Second question: this seems to work only if the new parameter is added as a the last parameter in the sequence. if I move things around, (for ex: make this new parameter the first parameter of the sequence), it seems to mess things up. I am okay with making the new interface parameter the last one, but just wanted to throw out this observation I made and see if people had any comments..
Third question: to make things a little more complex, some of the other sequences in Source.seq also USE MyStep. But I've realized that the only implication this has is, I'll have to open up Source.seq and re-save it beofore I send it out to the users..?

Hi Anuj,
Answer 1: Yes, this is a good long term approach in regard to compatibility, maintenance, and control.
Answer 2: Yes, as of TestStand 4.0 this is expected behavior, as the programmatic reordering of prototypes is not a supported code generation teqnique.
Answer 3: In short, yes you much open and save every sequence that contains your new CST. Be sure to save your step type first, making sure to increment your version number. This method will ensure that the step type conflict is automatically resolved in files that load this new type. If you forget to increment your version number you will have to manually resolve this conflict.
Thanks
Evan Prothro
RF Systems Engineer | NI

Similar Messages

  • Custom Step Type Execution

    I've made a custom step type which calls a .NET module. In the Properties>>SubSteps tab I added an Edit type which opens a dialog for the user to enter parameters when they edit that step type. Then I added a Post-stpe type which I thought was what gets called when the step is actually executed in a sequence. When I run a sequence that uses one of these types, the edit dialog pops up again, then only after I close the edit dialog does the post-step run. I assume I read something wrong because I thought the edit step type should only get called when one is editing the custom step type in the sequence editor prior to actually running the sequence that uses that step.

    Josh,
       I think the issue is with the Edit step. Before the custom step type ever runs in a sequence the desire is to be able to edit parameters via some custom mechanism. i.e. one of the main reasons for creating a custom step type is to override and customize the parameter enter\select functionality. When a user adds a step, usually the next thing he or she does is immediately right click and select to edit it and enter parameters. When one of these custom steps is added and you try to 'edit' it, here is where the problems start. If, as you say, the .NET object will not get instantiated until the sequence is actually run, you will never be able to access it and call its functions at edit time. I guess that's why all the examples I've seen use calls to C\C++ style dlls so no objects are involved.
       Clearly the problem stems from my misunderstanding of when a .NET object can and\or will be created in custom steps in Test Stand. It just seemed logical to me that one should be able to force creation of an object in a pre-step but I now know that isn't true. However, there has to be some step or event (possibly when the Test Stand environment loads for example) in which I can create any .NET objects I want to use in custom steps. Maybe I'll look into that. If it turns out to be too much trouble to do so, I will stick to doing things via direct C\C++ dll function calls. Most of our .NET modules are just wrappers of multiple C\C++ dlls anyways. If you have any more info or I'm mistaken in my thinking please let me know. Thanks again.

  • Problem with upgrade Windows 2003 to Windows 2008

    Hi,
    I have problem with upgrade Windows 2003 to Windows 2008 R2
    When I run installer it check compatibility drivers and programs after that appear message that I need to uninstall  "adaptec storage manager" but I already remove this driver from the system and registry.
    Any ideas to solve this problem?
    My server it's IBM System x3500
    Regards 

    Not sure if this issue was solved or no longer relevant, but I had the same issue with the same IBM x3500 server type.
    Based on the SETUPACT.LOG output from the Server 2003 to 2008 upgrade compatibility check, the problem was that the driver AACMGT.SYS is unsigned, and hence not acceptable for running in Windows Server 2008.
    AACMGT.SYS is a part of IBM ServeRAID but unfortunately, even the latest versions 9.3 to not seem to update or replace this file. It's also possible this file is a residue of an earlier, deprecated version of ServeRAID, I don't know.
    In the end, to get passed the Upgrade check hard stop, I did this, though I'm not sure if all steps are needed:
    0. Make sure you have a system backup in case you break something doing this steps. If you do break your system and cannot recover from backups, it's not my fault!
    1. Go into Device Manager --> Disks and check the Driver properties for the disks on your system. You might have AACMGT.SYS listed for some/all disks and also listed as unsigned. 
    2. Uninstall IBM ServeRAID from the system, just in case
    3. Do into Device Manager and go under Disks, and manually Uninstall all the disks in the list including "AdaptecArray SCSI Disk" and some other secondary. I did not reboot right away.
    4. Go to console, go into C:\WINDOWS\SYSTEM32\DRIVERS, and rename AACMGT.SYS to something else. 
    5. Reboot the system and hope it still boots. Go into Device Manager -> Disks and make sure that AACMGT.SYS is no longer listed.
    6. Run the 2003 to 2008 Upgrade process again. The Compatibility checker should no longer flag "Adaptec Storage Manager" as a blocker.

  • Custom step types and custom step data.

    Hello.
    I have a good understanding of how TestStand allows custom step types to allow users to store custom data.
    I have also read numerous posts about users asking for the ability to store some custom data associated with steps.
    In my scenario I am required to write a sequence using a few third party supplied step types.
    To assist in developing and debugging this sequence, we would like to store a container of custom data with each steps.
    Option 1: Create custom step types.
    This is really not an option, relying on third party step types. Any customization made to their step types will magically disappear, along with any custom data, the next time I install one of them service packs.
    You may argue that I just have to ensure all custom fields are recreated before opening a sequence file. This works in my office when everyone is at edge with this, but in a few months someone will "take responsibility"
    and upgrade the 3rd party packs without reading the entire upgrade procedure.
    Option 2: Create links in Sequence Locals
    This does work, but is not very associative. To work, the name of the Locals entry would need to be the unique ID of the step it refers to.
    Also, it requires some more maintenance to insert new steps, and to remove stale references.
    I really hope that someone in TestStand R&D reads this, and enables users to store step custom data, for example by adding a "CustomData" container to the TS property of the step.
    Regards,
    Ivar S.

    Ray:
    Thanks for answering.
    I am aware that I can extend a custom step type by creating a new step type based on the first type.
    For example, I have this 3rd party JtagExecuteTest step type, supplied by another solution vendor.
    In my sequence, I want a custom error & failure handler, that needs information about each step as they fail.
    For handling and logging purposes, I need each step in my sequence to carry information in addition to the setup required by JtagExecuteTest.
    So I set forth, and modify the step type JtagExecuteTest step, along with some other 10-15 step types that the other solution vendor has put in their package.
    This works like a charm until I have to reinstall or upgrade the package.
    Because I modified the steps using their original name, all data I put into the steps are lost.
    Next attempt, I follow your advice and create MyJtagExecuteTest step, based on the original steps. Again, I repeat this customization for 10-15 step types.
    This works like a charm until I have to upgrade the package.
    Now some wise guy at the other solution vendor has renamed a DLL or a function call, breaking down every step that I have customized.
    Mush better, though, because I can repeat the customization process and the data does not disappear.
    Still, this is just too much hassle just to put TestStand to some decent use.
    If I could just click on a step, add my custom properties, and have TestStand retain those data as a user customization that particular step instance.
    Much like you have Sequence.Locals, it would be extremely useful to have a Step.Locals container for the users to use at will.
    Regards,
    Ivar Svendsen.

  • Creating a step type "launcher" that would insert the appropriate built-in or custom step type at edit time

    Hi everybody,
    I'm looking for tips, pointers,directions... to be able to perform this operation in TS 4.0 sequence Editor, if it's even possible...
    I'm managing a test system with a "home-made" virtual instruments abstraction Layer complementary to IVI classes for instruments which do not have classes defined, customizing the sequence editor accordingly for developpers of my department.
    So basically when the instrument is IVI, the developper uses the built-in IVI step-type type and when it is not, he uses the the custom step types that I developped for this particular class of instruments.  
    However there are classes where I do have both IVI and specific drivers available and I do need to use both in the test sequence.
    For example let's say there are two sources of DC power available in the testbench, one being a programmable IVI compliant DC power supply, and the other one composed of fixed "blocks" of DC power supply managed by externals relays and you need to use them both in the test sequence.
    What I would like to be able to do in the sequence editor is inserting the appropriate step type at edit time just by selecting the source of power supply (by a ring or enum for eg), and if the first ressource is selected, it inserts IVI step type, and if the second ressource is chosen, it inserts the appropriate custom step type.
    Any Ideas on how to accomplish this ?
    Regards,
    Cyril
    Cyril Bouton
    Active LabVIEW Developper
    Solved!
    Go to Solution.

    Hello Cyril,
    Here is an idea that could be done:
    You could create a dynamic step by having a step that holds all the properties for both configurations (the superset of the necessary variables) and an extra one that indicates which 'mode' the step is in.  Then you create the main Edit substep in whichever language you desire.  That substep window will then have a box/dropdown/etc. at the top you can use to choose between modes A & B.  When the user changes the value, you would dynamically change the rest of the window to contain the appropriate properties for mode A or B.  You then copy the property values in that window to the Step properties, and copy the mode to your variable and you can run the step in that mode.  When the step then runs, it checks the mode variable, and depending on its value, it will run the step in mode A or B.
    Now we could add a dialog that allows us to choose when we put a step down but we should still allow the user to change later via the Edit substep we create.
    I don't think we can create something that inserts a completely different step, but we can have one step that has the ability to do both and we can pick which one we execute.  Also note we still don't have the ability to edit the Panels for a step, so we have to use a new window that we call from our Edit substep to complete the step.
    Hope this helps.
    Regards,
    Olivier L. | Certified LabVIEW Developer

  • "Disable tracing" as part of custom step type behavior

    Hi !
    Currently writing custom step types based on sequences (my step type's default adapter is a sequence), I would like to set the "disable tracing" right in my step type definition.
    The problem is that this option isn't visible in the 'Default Run Options" tab... The only way I found to do this is using Pre and Post Expression to set 'ThisContext.Tracing = True /False'.
    But I don't like the fact to use Pre/Post Expressions in my step type (I would prefer to let it blank for end users).
    Is there any way to achieve this without using Expressions ?
    Solved!
    Go to Solution.

    Here a printscreen on the properties available for my custom step... No TS container...
    Am I missing something ?
    Attachments:
    Step Prop.png ‏15 KB

  • Stationglobals in a Labview custom step type inside a new thread do not get updated

    Hi,
    I have a Custom Step type which I use to pass parameters to TestStand from a VI and vice-versa through some step fields. I run the VI inside a sequence in a new thread and expect the VI to update the parameters when I change them through the TestStand StationGlobals.
    For example, I have a waveform injection custom step. I want to continuously inject a signal while I do some measurements on it. So, I put this step type in a sequence and ran it in a new thread. 
    I pass the VI parameter 'Stop_Injection' through a step field as shown in image 1. And I expect the step field to get updated when the new thread is run continuously by passing the corresponding stationglobal in the Pre-expression of the custom step (image 2). But this fails to happen. The VI does not get updated.
    On the other hand, if I do not bother with the step field and directly pass the stationglobal (figure 3), it works perfectly. 
    Any idea why this is happening?
    I hope I was clear in my question.
    LabVIEW 8.6.1
    TestStand 4.1.1
    Message Edited by Changi on 08-06-2009 12:50 AM
    Attachments:
    1.JPG ‏92 KB
    2.JPG ‏42 KB
    3.JPG ‏91 KB

    Hi,
    In image 3 you are linked directly to the StationGlobal of which you are continually updating therefore seeing the changes.
    In the other you are only linked to the Step.Stop_Injection and are only updating this valve from the stationglobals once in the pre-expression. You are not changing the reference.
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • The custom step type

    How can I possibly do the custom step type with MS VB and after that to use this with ActiveX Automation Adapter?
    "Only a life lived in the service to others is worth living..." - Albert Einstein

    Hi,
    The process of generating custom steps is basically the same what every adapter you use. ( See user manual chapter 9)
    As an example I've taken the Computer Demo sequence found in the TestStand\Examples\ for VB and created a custom step for the Power On test.
    Attached is the an ini file called MyTest.ini. Places this in Teststand\cfg\TypePalettes folder.
    Then launch TestStand and you should find the new step in the palette.
    (This is for TestStand 2.0.1)
    Hope this get you started
    Regards
    Ray Farmer
    Regards
    Ray Farmer
    Attachments:
    MyTypes.ini ‏41 KB

  • Custom Step Type: Sequence Call

    OK, I'm primarily a LabVIEW programmer, but in TestStand I understand how to:
    * Create a Custom Step Type
    * Link a LabVIEW Module for execution, post substep, edit substep, etc.
    * Prevent the user from selecting a different module for an instance of my Custom Step Type.
    All good stuff.
    Now here's what I want to do: the exact same thing, except that I want the custom step to call a subsequence instead of a LabVIEW VI during execution. Yes, I want to use a LabVIEW VI for the edit substep (to set certain parameters for this instance of the subsequence call. Yes, I want to use a LabVIEW VI for the post substep.
    Can this be done?

    Hi,
    Short answer, yes.
    When you create your step type, for the Specify Module you would use a SequcenceCall Adapter instead of your labview adapter.
    You would have to have your sequencefile with your sequences already created seperately and you would set the sequencefile not to use a process model in the sequencefile properties.
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • Automatically Installing Custom Step Types in TestStand 4.2

    We have developed Custom Step types that needs to be integrated in a deployed TestStand System (customized UI with TestStand RunTime Engine) . We can customize the palette manually and add the related INI file. We also understand that the information gets saved in Testexec.ini in Cfg folder @ C:\ProgramData\National Instruments\TestStand 4.2\Cfg. What I am curious is how this process can be automated.
    Thanks

    dug9000 wrote:
    I just want to add to the above that there are very good reasons to use type palettes even in a deployment. Using a type palette in a deployment ensures that all of the sequences on the deployed machine will use the version of the type in the type palette file... Using type palettes is recommended as a way to control which type versions are being used and to keep types more organized and centralized.
    Absolutely - that's exactly why we're doing it this way.  Our customer is in a regulated industry, and we need to control their development environment configuration very tightly.  Speaking of which, so when will there be VIPM (TestStand Edition)?
    Copyright © 2004-2015 Christopher G. Relf. Some Rights Reserved. This posting is licensed under a Creative Commons Attribution 2.5 License.

  • Put the report into shape for custom step type

    Hi All,
    I created a custom step type and also managed to get the results logged into the report file.
    In the report file(See ‘[15 33 14][22 10 2007].xml.vi’ please remove the 'vi' extension) the 'StepResult' (created by my custom step type) appears just below the status. Is it possible to get it displayed somehow the cell(measurement column) next to it, like in a Numeric Limit Step? I’m using the ‘horizontal.xsl’ stylesheet and Teststand 3.5.
    Furthermore, is it possible to change the name of the column headers? Or the structure of the header?
    Cheers
    Attila
    Attachments:
    [15 33 14][22 10 2007].xml.vi ‏17 KB

    Hi again Attila,
    Further to my above post, I've collaborated with colleagues here and have been able to modify the horizontal.xls stylesheet such that it is suitable for what you require. This modification will ensure that all properties named StepResult will be displayed as you described, in line in the table.
    To ensure compatibility with your results in TestStand, a small modification to your sequence file is required. In your sequence file, right click the value for your custom step, go to Advanced > Edit Flags and uncheck all boxes. The text in the bottom of the window should now read "0x0". This should mean that your data is displayed correctly.
    I am attaching the modified horizontal.xls for you to use [remove the .vi extension]; please make sure a backup is created before you replace it. The file should be placed in your TestStand directory under Components\NI\Models\TestStandModels\StyleSheets. Modifications to column headers as described in the above post can be made to this file.
    I hope this soultion is satisfactory and that you are able to implement it. If you have any further questions please don't hesitate to reply.
    Regards,
    Tom
    Applications Engineering, NI UK
    Attachments:
    horizontal.xsl.vi ‏84 KB

  • Custom step type revision

    I have created several custom step types, but the names are not displayed correctly when I insert a step in a sequence. This worked fine in TS 2.0, but not in 3.0. Is there something that needs to be done with the version of the step type to be correctly recognized in TS 3.0.
    Thanks,
    Scott Trosper

    Scott -
    I am not aware of any issues like this. The version of the step type should not make a difference. Basically the Default Step Name Expression on the General tab of the Step Type Properties dialog box defines the name of the step at insert time.
    Could you append a sequence with the step type in it?
    Could you specify what you got in TS 2.x and now what you get in 3.0 for the step name when you insert a new step?
    Scott Richardson (NI)
    Scott Richardson
    National Instruments

  • Custom step type Export and Import

    Hi,
       I have created custom step types similar IVI for all my HAL drivers.
    I need help in sharing it with my team in different locations.
    I am looking at exporting and importing of the custome step types similar to templates.
    Could anyone help me with this.
    Thanks in advance
    Anna

    Anna,
    when creating the step type definition, you have picked a location for it. By default, it is "MyTypes.ini".
    You can create your own custom ini-file containing your specific step types in the type editor.
    When distributing your step types, you have to pass the ini-file containing the type definition(s) AND all sources connected to that types (substep modules).
    On the target machine, you have to include that ini-file in the system for type definitions in the type editor.
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • 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

  • Problem with iChat changing my custom away message after 30 minutes

    Lately, I've been having a big problem with iChat changing any custom away message that I put up to "Away" after 30 minutes or so. Is there anything I can do to make it stop? Another issue I'm having is that sometimes when people on my buddy list change their away message, it doesn't show up on iChat unless I go offline and then sign back on. Any idea why it's doing that, and what I can do to get it to stop?
    Thanks.
    - Danielle
    G3 iMac   Mac OS X (10.3.9)  

    Hi ienjoyanime,
    Go to the General Section of iChat Preferences.
    Does it say you are set to Go to Away when you log off/QUit iChat ?
    is the computer going to Sleep at this point ?
    10:59 PM Saturday; April 1, 2006

Maybe you are looking for