Construisez des VIs malléables pour effectuer la même opération sur tout type de données acceptable, sans avoir besoin d'enregistrer une copie séparée du VI pour chaque type de données. Les VIs malléables sont utiles si une opération peut être implémentée de façon similaire pour les différents types de données sans requérir de personnalisation importante pour un type de données particulier. Si l'opération doit être implémentée différemment pour différents types de données ou si l'ensemble de terminaux varie en fonction du type de données, construisez plutôt un VI polymorphe.

Vous pouvez créer un VI malléable de différentes façons :

  • Pour un nouveau VI malléable vide, sélectionnez Fichier»Nouveau, puis VI malléable dans la boîte de dialogue Nouveau.
  • Pour convertir un VI existant en VI malléable, remplacez l'extension de fichier par .vim. Si le VI existant n'est pas configuré pour l'inlining dans le VI appelant, le VI malléable est brisé. Vous devez configurer le VI malléable pour l'inlining en sélectionnant Fichier»Propriétés du VI»Exécution, en activant les options Incorporer le code du sous-VI dans les VIs appelants (inlining) et Exécution réentrante avec copies préallouées et en désactivant les options Autoriser la mise au point et Activer la gestion d'erreur automatique.
    Remarque Vous ne pouvez convertir que les VIs standard en VIs malléables. Vous ne pouvez convertir ni les VIs polymorphes, ni les VIs globaux, ni les capacités de CommandeX en VIs malléables.

Lorsque vous placez un VI malléable sur le diagramme, les entrées et sorties affichent les types de données par défaut. Si vous câblez une commande, un indicateur ou une constante à une entrée ou sortie, cette dernière s'adapte au type de données câblé.

Par exemple, dans le VI malléable Classer un tableau 2D, l'entrée tableau 2D et la sortie tableau 2D classé acceptent des tableaux 2D de n'importe quel type de données à l'exception des refnums, et le type de données par défaut est tableau 2D de variants. Si vous câblez un tableau 2D de chaînes à tableau 2D, les types de données de tableau 2D et tableau 2D classé passent tous deux à tableau 2D de chaînes. Cependant, si vous câblez un tableau 1D à tableau 2D, le VI est brisé car ce VI malléable n'est pas implémenté pour accepter des tableaux 1D.

Vous pouvez construire des VIs malléables spécialisés aux fins suivantes à l'aide de la structure Spécialisation de type et des VIs et fonctions d'Assertion de type :

  • Personnaliser des sections de code dans un VI malléable pour des types de données spécifiques
  • Forcer un VI malléable à n'accepter qu'un sous-ensemble des types de données acceptables
  • Forcer un VI malléable à refuser certains types de données spécifiques

Par exemple, le VI malléable Classer un tableau 2D utilise la structure Spécialisation de type pour se comporter différemment lorsque l'indice est un entier plutôt qu'un tableau d'entiers afin de fonctionner comme prévu pour les deux types de données. L'entrée indice contraint les types entiers autres que les entiers signés 32 bits en entiers signés 32 bits. Vous pouvez forcer l'indice à n'accepter que les entiers signés 32 bits en utilisant le VI Assertion de type entier.

Comme les VIs malléables sont intrinsèquement polymorphes, ils acceptent tout type de données qui n'engendre pas d'erreur de syntaxe. NI vous recommande d'autoriser la coercition dans vos VIs malléables pour que le code soit facilement réutilisable. Ne restreignez les types de données qu'un VI malléable peut utiliser que si votre application satisfait à l'une des conditions suivantes :

  • La coercition engendre une charge de performance significative.
  • Des types de données spécifiques n'ont aucun sens dans le contexte de l'application.

Rubriques apparentées

Mise au point des VIs malléables

Choix de VIs malléables ou de VIs polymorphes