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.
Add to the block diagram | Find on the palette |
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.
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.