NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Parameters specified by the step do not match the sequence parameters

Solved!
Go to solution

I've just upgraded from Teststand 4.1.1 to 4.2 and have come across this

problem when reviewing existing sequence files.

 

When I open a sequence file and select any Sequence Call type step, which calls another sub-sequence

in a different sequence file, I'm informed that the parameters used do not match those required.

To be specific, in the Step Settings area, a red exclamation symbol appears alongside the

name of sub-sequence called by the step, and the tool tip displayed when the mouse pointer is

hovered over the exclamation mark states:

"The parameters specified by the step do not match the sequence parameters."

 

The tool tip goes on to explain how to fix this problem by clicking the exclamation symbol.

 

I also find that by deselecting the "Use Prototype of Sequence" in the Step Settings\Module tab

solves the problem. 

 

When the sequence is run, no problems occur with the execution, the test performs correctly.

 

Is there a way to clear this error for every Sequence Call step in a single operation ?

 

 

thanks,

 

 

Gary. 

 

0 Kudos
Message 1 of 6
(5,739 Views)

This is likely due to a difference between the "Pass by Reference" setting on the sequence call step and the actual called sequence. The information on the Additional Results panel is incorrect if these settings do not match so the Sequence Editor warns you of the situation. TestStand 4.2 introduced this behavior.

 

I've attached a sequence file that updates all steps in a sequence file. You can modify it to work with multiple sequence files. It updates all steps that have incompatible prototypes, not just sequence calls. Run the "Install Tool Menu Item" sequence to create an item in the Tools menu that will update all steps in the active sequence file.

 

EDIT: see this reply for new file

Message Edited by Support on 10-13-2009 02:05 PM
0 Kudos
Message 2 of 6
(5,728 Views)

Erik,

 

Before I start to apply the tool you have kindly provided, I have another question.

 

Why should the "How Passed" attribute of the argument in the calling step

be different from the "Pass by reference" parameter attribute, set in the called

sequence ?

 

Put another way, for example, I can see that an argument in a Sequence Call step

is set to pass by reference, and in the called sequence definiton, the parameter is defined

to be called by value, i.e. the "Pass by reference" attribute is unchecked.

 

I do not understand how the caller can have the wrong "How passed" setting.

 

The sequences have not been edited, only the Teststand version has changed. 

 

 

Thanks,

 

Gary. 

 

 

0 Kudos
Message 3 of 6
(5,678 Views)

Erik,

 

I've now had chance to use the tool that you provided to remove the Pass by Reference/Value inconsistency

occurring in sequence call steps.

 

Unfortunately while resolving one problem it seems to create another.

After processing the sequence file, a check of a sequence call step properties shows the previously defined

arguments to be missing, and replaced with the text:

 

<The expression cannot be empty> . 

 

Any further suggestions appreciated.

 

Gary.

0 Kudos
Message 4 of 6
(5,670 Views)

Erik,

 

Some information which may help you re-create the problem:

 

Our sequence files were originally created using Teststand 3.5, then later modified using

Teststand 4.1.1 .

 

Sequence call steps created using TS 3.5 display the problem, but sequence call steps

created using TS 4.1.1 do not.  

 

This refers to both versions of sequence call steps occurring in the same sub-sequence.

 

 

Gary.

0 Kudos
Message 5 of 6
(5,667 Views)
Solution
Accepted by topic author Gary_H

My apologies for attaching a buggy sequence file. I forgot to pass a parameter to the LoadPrototype method to keep the existing parameters. I've attached a corrected version of the sequence file. I modified it to update only SequenceCall steps because of potential problems reloading DLL prototypes.

 

Let me try to explain why you are seeing this in TestStand 4.2. The Additional Results feature we added to TestStand 4.1 needs to know which parameters are inputs, outputs and input/outputs (i.e. which parameters are Pass by Reference). Previous to TestStand 4.1, the sequence call step did not store this information but rather obtained it dynamically and displayed it in the How Passed column. Now that we store the Pass by Reference option with the step, you can have an inconsistency between the option stored in the step and the actual parameter of the called sequence. This inconsistency affects only Additional Results and not execution. In TestStand 4.1, the sequence editor does not warn you about these inconsistencies. We added the warning in TestStand 4.2 so that you will have the correct Additional Results information.

 

When TestStand 4.1 or 4.2 loads a sequence file from a pre-4.1 version, TestStand sets the Pass by Reference option to true for all parameters in sequence call steps. That's why you will see the warning message for any sequence call step created in TestStand 3.5 if any parameter is not Pass by Reference. You will also see the problem if you change the Pass by Reference option of a parameter in the called sequence.

 

 

 

 

 

Message 6 of 6
(5,650 Views)