Assert Structural Type Mismatch Function

Owning Palette: Assert Type VIs and Functions

Requires: Base Development System

Breaks the calling VI if type is the same data type as any of the mismatch inputs, ignoring type definitions and type names.

This function does nothing at run time. Use this function in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for specific data types or to force a malleable VI to decline specific data types.

Details  

 Add to the block diagram  Find on the palette
type specifies the input data type.

LabVIEW ignores any run-time value on the wire connected to this input.
mismatch specifies the data type that you want to compare against type.

To set the data type of this input, wire a constant or control of the desired data type to mismatch. Wire one data type to each mismatch input you want to compare against type. LabVIEW ignores any run-time value on the wire connected to this input.

Assert Structural Type Mismatch Details

Avoiding Unexpected Behavior in Your Malleable VI

To avoid unexpected behavior in your malleable VI, you can use this function to force a specific subdiagram of your Type Specialization structure to decline data types that you intend to be accepted by previous subdiagrams.

For example, you create code in the first subdiagram of a Type Specialization structure for data type A in a malleable VI. When the input data type is A, you expect the Type Specialization structure to accept the first subdiagram. However, if the code in the first subdiagram breaks for reasons unrelated to the data type, for example, due to a broken subVI, the Type Specialization structure declines the first subdiagram and attempts to compile the remaining subdiagrams in order. A problem that can arise in this situation is when one of the remaining subdiagrams is also acceptable with data type A. In this case, the malleable VI is unbroken but may behave in an unexpected way for data type A.

Handling Data Types with Subtypes

For data types with subtypes, such as arrays, clusters, and some refnums, this function also checks array dimensions and subtypes, but not the subtype names. For example, the calling VI does not break if the input data type is 1D array of variant and the specified mismatch data type is 2D array of variant or 1D array of scalars. If the input data type is a cluster of a string named lecture and an unsigned 8-bit integer named number of students, while the specified mismatch data type is a cluster of a string named lecture 1 and an unsigned 8-bit integer named size, the calling VI breaks because the subtypes of the two clusters are the same even though the subtype names are different.