Discussions au sujet de NI LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Comportement - proposition

Bonjour à tous,

 

Oui, en effet, il y a "révélation"

 

Mais cette révélation n'est pas le variant en lui même, ni les fonctions OpenG.

 

La révélation est la sortie "type string" de la fonction "variant to flattened sting" ... qui donne accès à la totalité du contenu du "descripteur de type" .

 

Alors là ... je dis oui ...  variant + descripteur = téléportation ! Smiley Happy

 

Parce que je peux facilement, en sortie de variant, retrouver le type complet de la donnée (ou des) qu'il contient (cela a toujours été ma grande interrogation)

 

Et l'utilisation de ce descripteur est la base de toutes les fonctions "variant-OpenG".

 

Pour ma défense :

 

J'ai fait une recherche sur ce forum (francophone) avec le mot "descripteur" ... Ce sujet (celui-ci) est le seul ou ce terme "descripteur" est évoqué.

 

Depuis le temps que l'on discute du variant, je suis étonné que personne (à part Eric) ne soit venu "me mettre à la masse" en me parlant de ce descripteur de type.

 

Je suis bien content d'avoir trouvé le maillon manquant !

 

Effectivement, cela change complètement mon regard sur le variant.

 

Bonne journée à tous,

 

 

0 Kudos
Message 31 of 63
(2,213 Views)

ouadji a écrit :

 

Depuis le temps que l'on discute du variant, je suis étonné que personne (à part Eric) ne soit venu "me mettre à la masse" en me parlant de ce descripteur de type.

 


Et pourtant ce descripteur est utilisé dans l'une de nos librairies internes à laquelle la plupart de mes projets font recours. Argghh...

0 Kudos
Message 32 of 63
(2,195 Views)


ouadji a écrit :

 

Depuis le temps que l'on discute du variant, je suis étonné que personne (à part Eric) ne soit venu "me mettre à la masse" en me parlant de ce descripteur de type.

 



Pourtant il est dans le dans le post suivant Excel et les variants

et je t'avais noté >> je réponds à ton post sur l'utilité des variants

Je ne parle pas du mot "descripteur" mais entre le texte et l'image...

non?

A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Kudos
Message 33 of 63
(2,190 Views)

Je ne parle pas du mot "descripteur" mais entre le texte et l'image...non?

 

bein ... heu ... maintenant que le franc est "tombé", oui ...

 

mais sur le coup, non.

 

La compréhension tient parfois à peu de chose ... un mot, une phrase.

 

Le franc est tombé quand j'ai ouvert cette fonction OpenG cablée sur le sélecteur de ta structure case,

 

et là, j'ai vu cette fonction "variant to flattened string" .... et surtout  sa sortie "type string".

 

c'est la que j'ai vu que cette sortie donne ce fameux "descripteur de type" ... clic sur l'aide ... et bingo .... détails complets sur les données qui composent un descripteur de type.

 

En fait, cela fait un an que je me demande à quoi peut bien servir un variant, puisqu'il faut connaître le type contenu pour en extraire la donnée.

 

La réponse était "là", juste sous mes yeux, dans la palette Variant.

 

La clef de toute cette histoire est la sortie "type string" de la fonction "variant  to flattened string".

 

La fonction OpenG que tu utilises "Get TDEnum from Data", te donnes uniquement le type de niveau 1 ... array, cluster ...

 

Mais en décodant le descripteur tu peux connaître la totalité du type ... pas uniquement "array" ... mais "array 2D de booléen". (ou tout ce que tu veux, même les types complexes)

 

Maintenant que j'ai compris, je veux bien utiliser les variants (si j'en ai besoin)

 

En effet, les variants sont là pour répondre à un besoin précis ... faire du traitement sur des types différents, multiples.

 

Et c'est bien pour ça que je n'ai (quasi) jamais utilisé de variant ... je n'ai jamais eu besoin de traiter des données de types différents par un même VI.

 

De plus, a chaque fois que je tombais sur du code avec des variants, je voyais ces fonctions OpenG.

 

Mais jamais  je n'ai vu un code qui faisait ça "en manuel", en manipulant directement le descripteur de type.

 

Oui ... j'aurais du ouvrir et analyser toutes les fonction OpenG ... je serais "tombé dessus" moi-même ... ok.

 

 

 

 

 

 

0 Kudos
Message 34 of 63
(2,185 Views)

Je ne voudrais pas démarrer un nouveau débat mais les variants sont très pratiques même sans recourir au descripteur de type.

Par exemple pour transmettre des données de types différents par une même queue comme cela est décrit ici ou encore ici.

 

Format donnée à transmettre = cluster contenant :

  • un enum servant à spécifier le type de la donnée
  • variant contenant la donnée

Avec un (strict) typed def pour chaque type de données, cela est très simple et utile. Un incontournable pour mes projets.

Message 35 of 63
(2,174 Views)

ouadji a écrit :

 décodant le descripteur tu peux connaître la totalité du type ... pas uniquement "array" ... mais "array 2D de booléen". (ou tout ce que tu veux, même les types complexes)

  


 il existe une note d'application de NI qui décrit cela. J'ai cherché en quelques minutes mais je n'ai pas retrouvé. Il faut dire que j'ai lu cette note (pour la dernière fois) il y a très longtemps (2005)... est-elle toujours là?

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Kudos
Message 36 of 63
(2,166 Views)

En vrai connaître le type du variant ne sert pas si souvent que ça... Et le descripteur n'est pas utile puisque 2 fonctions (une dans vi.lib et une dans OpenG) s'occupent de tout en extraire 🙂 La vraie force des variants ce sont leurs attributs 😄

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

Message 37 of 63
(2,162 Views)

Eric.M a écrit :

En vrai connaître le type du variant ne sert pas si souvent que ça... Et le descripteur n'est pas utile puisque 2 fonctions (une dans vi.lib et une dans OpenG) s'occupent de tout en extraire 🙂 La vraie force des variants ce sont leurs attributs 😄


Salut

Très bonne remarque, même si personnellement je suis plus nuancé. (Pas forcement 50 nuances de Variant).

Je nuance donc la phrase une des forces des variants est également les attributs.

Car personnellement j'utilise les attributs des variants pour ajouter des données (possibilité de filtrage rapide d'information mais que je n'utilise pas) mais par contre dans beaucoup de fonction et de toolkit j'ai besoin de coder "N'importe quoi vers" et le type est indispensable. (par exemple j'ai une fonction VData vers base de données, VData vers chaîne de caractères,...).

Je me permets donc de nuancer via mon utilisation personnelle.

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

Message 38 of 63
(2,153 Views)

Eric.M a écrit :

le descripteur n'est pas utile puisque 2 fonctions (une dans vi.lib et une dans OpenG) s'occupent de tout en extraire


Re, tu penses à quoi ? tout en extraire? A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Kudos
Message 39 of 63
(2,152 Views)

Moi difficile parlé francé.

 

Les VIs extraient toutes les infos nécessaires du descripteur.

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

0 Kudos
Message 40 of 63
(2,147 Views)