Modifying Types Without Altering the Version
Number
You can use PropertyObject Attributes to add data to or update data in a
custom data type without needing to increment the version number of the custom type.
Since object Attributes are an unstructured container, creating an Attribute within an
instance of a custom type does not generate a type conflict. This allows you to use the type
in other TestStand versions which run on the same engine version, making the types more
version-agnostic. This also allows you to use sequence files that call custom types in
multiple versions of TestStand without needing to save the sequence file for each version
using Save As, as long as the TestStand versions run on the same engine
version.
Note You can check the engine
version of a version of TestStand by consulting the program information at Help » About TestStand.
If you need to use a custom type Attribute in a test sequence, you can create the Attribute
in the unique instance of the custom type. If you use this method, you should write your test
programs to ensure they function if the Attribute isn't created for a type instance.
If the runtime behavior of a step which calls your custom type changes when run on older
versions of TestStand with the same engine version, you should add an attribute to the type
which uses the TestStand Sequence Analyzer to report the behavior change or error. Add the
following attributes to the type instance to report an error using an Analyzer message and the
NI_NotSupportedFeature built-in Analyzer rule:
Figure 1. Type Instance Unsupported Feature Analyzer Message Structure
These attributes should contain the following information:
UnsupportedFeatures: Should be structured as an array where each
element represents a feature and contains the following:
FeatureId (String): Unique identifier for the feature.
AnalyzerMessage (String): Message you want to pass to users when
the feature is unsupported.
MaximumTestStandVersion (String): Maximum TestStand version that
the feature can be used in. This value should follow the
major.minor.revision.build format. Revision and build version
values are optional.
MinimumTestStandVersion (String): Minimum TestStand version that
the feature can be used in. This value should follow the
major.minor.revision.build format. Revision and build version
values are optional.
If a user tries to use a Type feature outside of the range of supported TestStand versions,
the Sequence Analyzer will report an error message with the following
structure:
Message: The instance of type <TypeName> has some features which are not supported in current TestStand version: <AnalyzerMessage>.