Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Variant (utilité)

Résolu !
Accéder à la solution

Je reviens avec une question qui me hante depuis bien longtemps.

 

Quelle est l'utilité du Variant ?  (non, ce n'est pas un troll)

 

Je programme en LV depuis 3 ans ... et je n'ai jamais utilisé un variant.

cela n'explique rien ... mais cela accentue mon interrogation

 

réponse que je lis un peu partout  :

 

c'est un "conteneur" dans lequel tu places ce que tu veux, indépendamment du type ... donc très pratique !

 

ouadji:

 

ok ... je place ce que je veux dans un variant.

Mais ... pour pouvoir "en sortie" exploiter la donnée placée dans ce variant, je dois en connaître le type (fonction variant to data)

 

Dès lors ... pourquoi ne pas "passer" directement le type dont question.

Pourquoi transiter par "une boîte noire" ... avec laquelle je dois de toute façon en "décoder" la sortie (variant to data).

 

Dans mon code, je ne pourrai jamais placer dans un même variant (par exemple contenu dans un cluster) ... une fois un U32 et une fois un String 

et plus loin dans mon code ... utiliser la sortie de ce variant (variant to data) ... une fois en lui cablant un type U32, et une autre fois en lui cablant un type String.

 

Donc ... quel est l'utilité de passer par un variant ... alors que le ou les types de données que l'on peut en extraire ... sont formatés en amont du code.

 

Je me doute qu'il me manque un maillon ... et que je passe à côté de l'essentiel,

 

si un d'entre vous peut "me débloquer" à ce sujet, je suis preneur.

 

Peut-être ceci pourrait-il m'aider :

 

un exemple de code (minimum, le plus simple possible) .... ou l'utilisation d'un variant est obligatoire / indispensable.

 

Un code minimum impossible à réaliser sans l'utilisation d'un variant.

 

merci à tous.

 

 

 

0 Compliments
Message 1 sur 42
6 036 Visites
Solution
Accepté par ouadji

Bonjour Ouaji,

 

Ton raisonnement est bon, mais le variant a une utilité surtout quand tu codes car à mon sens il te permet de faire de la programmation "polymorphe" sans VI polymorphe. D'où un gain de temps à l'édition et à la modification. C'est à dire que tu as ton connecteur d'entrée de VI que tu n'as plus besoin d'adapter en permanence. Tu adaptes juste le contenu de ton vi suivant le cas utilisé.

 

Un très bon exemple de ce que j'avance est de jeter un coup d'oeil sur le modèle de création de projet LabVIEW (2013) en choisissant le modèle "gestionnaire de messages".

Cette structure te permet de faire passer un message et des données "polymorphes" de la boucle de gestion d'évènements à la boucle consommatrice. Le VI non polymporphe de dépliage de la file d'attente a donc toute son importance.

 

Si d'autres personnes ont une autre utilité je suis preneur également 🙂

 

 

Message 2 sur 42
6 028 Visites

je reviendrai dans une futur vidéo sur l'utilisation des variant que décrit TeamJP34.

 

en attendant il y a une autre utilisation que j'adore, c'est la possibilité d'utiliser les "variant attribut", j'essaiera de prendre le temps de faire une petite vidéo ce soir là dessus, enm attendant je vous renvoie vers ça : Using Variant Attributes for High-Performance Lookup Tables in LabVIEW qui se trouve dans la section LabVIEW Development Best Practices de community.ni.com


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

Message 3 sur 42
6 017 Visites

les différentes réponses (merci à tous) semblent conforter une "impression" que j'avais ...

 

à savoir ...

 

L'utilité du Variant est essentiellement une "facilité de développement"

 

mais semble (je dis bien "semble") n'avoir que peu d'utilité (aucune?) au niveau du "code pur".

 

je dirais même plus ... il facilite peut-être le développement (mise au point) ... mais complique le code lui-même.

 

maintenant ....

 

TiTou nous parle des "variant attribut".

 

Ces "variant attribut" auraient-ils une utilité "pur code" ?

0 Compliments
Message 4 sur 42
6 009 Visites

je ne suis pas sûr de bien comprendre ce que tu veux dire pas "une utilité "pur code""...

dans un tableau, des éléments de même type sont référencés par indice, dans un variant les attributs sont référencés par nom et peuvent avoir différent type.

 

Je sais pas si c'est "pur code", mais en tout cas c'est bien pratique quand on développe, c'est très souple et surtout performant.


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Compliments
Message 5 sur 42
6 004 Visites

"pur code"

 

aurais-tu un exemple d'implémentation (une quelconque fonction a réaliser)

 

qu'il est impossible de coder sans utiliser un variant.

 

... un code ou l'utilisation d'un variant est indispensable. (sans variant ... c'est le cul de sac)

 

 

PS:

 

Le variant n'est-il pas "un outil" qui facilite la mise au point. (soit la "construction" du code)

 

Une fois cette mise au point terminée ... l'utilisation du variant peut-être supprimée.

 

 

et avec ce "PS" on revient sur ma première question ...

 

existerait-il un code qu'il est impossible de "faire tourner" sans l'utilisation d'un variant ?

 

(ce qui donnerait alors une réelle utilité "pur code" au variant .... et non une simple facilité lors de l'implémentation / mise au point)

 

 

 

0 Compliments
Message 6 sur 42
5 997 Visites

Smiley très heureux dans ce cas arrêtons d'utiliser LabVIEW et mettons nous à l'assembleur!

 

je ne suis pas un puriste, pour moi le variant est un type de donnée à ma disposition dans LabVIEW, j'ai des primitives qui permettent de faire variant to data et data to variant, donc si l'utilisation de variant me permet de développer mon appli plus rapidement, ça me suffit.

 

je ne sais pas trop comment répondre à ta quesion car je ne me la pose jamais... est ce que je pourrais remplacer les variants par autre chose? pourquoi même essayer si je développe mon appli plus vite avec?

 

Ce que je te propose c'est de jeter un oeil aux fonctions "read section cluster" et "write section cluster" de package OpenG Variant Configuration File?


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

Message 7 sur 42
5 992 Visites

Je respecte totalement ta réponse TiTou ... tu vois "cela" sous un angle différent, tout simplement.

 

Il est vrai que personnellement, je développe uniquement pour mon propre plaisir

 

je peux donc me permettre le "luxe" d'être puriste ... et de me poser parfois des questions du type "électron libre"  Smiley heureux

 

Si les variants te permettent de développer "plus vite" ... c'est une excellente raison de les utiliser (je te comprends à 100%)

 

 

 

Pour "le reste" .. je lance une petite "provocation sympathique" à tous Smiley tirant la langue

 

à celui qui me montrera un bout de code qu'il est impossible de réaliser autrement qu'en utilisant un variant.

 

 

Ce jour là ... je le jure ... je change d'avis à propos des variants   Smiley heureux

 

 

merci à toi TiTou.

 

0 Compliments
Message 8 sur 42
5 990 Visites

Ouadji, as tu regardé le code que j'ai cité plus haut?


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Compliments
Message 9 sur 42
5 974 Visites

J'ai ouvert le JKI VI Manager ...

 

effectivement ... il y a un package "Variant Configuration File"

 

Le soucis est que je dois installer le package ... "juste" pour voir le code.

 

C'est une manip que je n'aime pas faire "inutilement"

 

(installer et ensuite devoir désinstaller ... uniquement pour jeter un coup d'oeil au code ... bof !)

 

J'évite (si possible) de prendre le risque (inutile) de créer un éventuel soucis ... sur mon installation de LV qui tourne tip-top.

 

Je reconnais qu'il y a là un éventuel et léger trouble du comportement de ma part   Smiley très heureux   ... j'assume !   Smiley heureux

 

Donc ... (s'il te plaît) ... si tu as "sous la main" un vi de ce package .... que je puisse "voir" directement ... ce serait le top.

 

 

 

 

0 Compliments
Message 10 sur 42
5 971 Visites