NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

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..?
0 Kudos
Message 1 of 3
(3,042 Views)
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

0 Kudos
Message 2 of 3
(3,016 Views)
Thanks for your response..
 
Anuj
0 Kudos
Message 3 of 3
(3,011 Views)