Discussions au sujet des autres produits NI

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

Close Reference (??)

Je suis en train de potasser les reférences et les Classes. (à cause de TiTou Smiley clignant de l'œil )

 

Une question qui me tracasse :

 

Quand je transforme une référence ... to more specific / to more generic

et que ensuite, sur cette référence "modifiée" ... je fais "Close Reference"

 

Ai-je bien "fermé" la référence de départ ???

 

Autrement dit : 

 

Je prends un cas extrème.

 

Je prends la Référence d'un Controle/Tableau sur mon FP,

et je la transforme en une Référence totalement Generique

 

ensuite je fais "Close Reference" sur cette Ref Generique,

question : ai-je bien fermé la référence de mon Controle Tableau de départ ???

 

(Je pense que oui ... mais ...)

 

0 Compliments
Message 1 sur 12
5 729 Visites

@ouadji wrote:

 

Quand je transforme une référence ... to more specific / to more generic

et que ensuite, sur cette référence "modifiée" ... je fais "Close Reference"

 

Ai-je bien "fermé" la référence de départ ???

 


Oui.


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

Epictetus

Antoine Chalons

Message 2 sur 12
5 720 Visites

Tu peux faire un test avec des sondes, tu verras que ta ref a la même valeur avant ou après le changement.

C'est logique, ta référence est un pointeur, qui pointe vers le même objet, peut importe le niveau specific/generic.

Cordialement,

Simon D.
CLA | Certified LabVIEW Architect
CTA | Certified TestStand Architect
Message 3 sur 12
5 716 Visites

Merci TiTou, merci Simon, me voila réconforté.

Il me semblait bien que "oui", mais comme LV est un langage de haut niveau

mes certitudes_assembleur sont bousculées, je préférais "demander".

 

J'ai une autre question (Oooh, l'emmerdeur Smiley clignant de l'œil )

 

Voici 2 Snippets

Celui du dessus   ... c'est le code "utilisateur".

Celui du dessous ... c'est le sous-vi utilisé dans ce code utilisateur, soit le "carré vert" à gauche.(avec le -1)

 

J'essaye d'expliquer le problème ...

(Tout "fonctionne", mais pas comme je voudrais)

 

Ce code permet, pour un sous-VI, de retrouver des References d'un VI_Main (de Controles de son Front Panel).

En entrée : un Tableau de Labels <Label(s)>

En sortie  : un Tableau de References <Array_Ref>

                 La Reference du VI_Main <Main_VI_Ref>

 

Le sous-VI qui utilise ce code ... manipule les References et ensuite ferme ces References. (merci TiTou Smiley clignant de l'œil )

Comme les References sont passées dans un Tableau ... j'utilise une boucle "FOR indexée" pour les fermer.

Mais ... problème .... La Reference "Main_VI_Ref" ne fait pas partie du Tableau, je dois la fermer "à part".

Impossible d'ajouter cette Ref au Tableau de sortie ... il y a conflit de Classe.

 

J'aimerais faire ceci :

 

Transformer "Main_VI_Ref" pour la rendre compatible avec mes autres "Control_Ref"

et pouvoir ainsi l'ajouter au Tableau de sortie (snippet du bas).

Mais ... à l'arrivée je dois aussi pouvoir la re-transformer et retrouver une VI_Reference (snippet du haut).

 

J'ai un peu tout essayé (to more x, to more y) ... je n'y arrive pas.

Je n'arrive pas à trouver une transformation qui rende compatible une VI_Ref avec une Control_Ref.

 

Pourquoi tout ceci ? ...

pour pouvoir au final (dans le snippet du haut) "fermer" toutes mes Ref avec une seule et unique boucle FOR.

(car toutes les ref seront dans le Tableau)

 

Bench_1.png

 

 

Ci-dessous le code du "carré vert"

 

 

Bench_2.png

 

Merci beaucoup pour votre aide et votre temps.

 


0 Compliments
Message 4 sur 12
5 702 Visites

@ouadji wrote:

 

Tout "fonctionne", mais pas comme je voudrais

 



Smiley très heureux une belle rafarinade!

 


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 12
5 697 Visites

ouadji wrote:

 

Le sous-VI qui utilise ce code ... manipule les References et ensuite ferme ces References. (merci TiTou Smiley clignant de l'œil )



Tu oublies de fermer la ref du panel 😉


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

Epictetus

Antoine Chalons

0 Compliments
Message 6 sur 12
5 696 Visites

ouadji wrote:

 

Pourquoi tout ceci ? ...

pour pouvoir au final (dans le snippet du haut) "fermer" toutes mes Ref avec une seule et unique boucle FOR.

(car toutes les ref seront dans le Tableau)

 


Je ne pense pas que ce soit possible car les classes "Control" et "VI" n'ont pas d'ancêtre commun, donc tu ne peux pas faire de "to more generic class" qui te permettra de mettre tout ensemble dans un tableau 1D ; si tu insistes vraiment tu peux faire un tableau de cluster de tableau mais ce serait vraiment farfelu.

De plus, pas le peine de mettre ton "close ref" dans une boucle, il accepte les tabeaux 1D en entrée.


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

Epictetus

Antoine Chalons

Message 7 sur 12
5 695 Visites

Tu oublies de fermer la ref du Front Panel

arrrg, il l'a vu ... Oeil de Lynx ... bien vu TiTou !

 

 

Close Reference accepte les 1D comme entrée

ça c'est le top, la grande classe

savais pas ... merci, n'oubierai pas.

 

Pour le reste ... ok ... pas possible alors.

Pas d'ancètre commun, ...je comprends, oui alors pas possible.

Pas possible de "remonter" et de passer de l'un à l'autre, ok.

0 Compliments
Message 8 sur 12
5 688 Visites

Je reviens sur le "sujet".

à propos de cette remarque (justifiée) ... "tu as oublié de fermer la Ref du Front-Panel"

 

Fermer la Reference du FP, c'est fermer la Reference "B" ... c'est bien ça ?

 

Mais en "C" alors ? ...

J'ai 11 Controles sur mon FP, le Tableau de References en "C" comporte 11 Reférences.

Je n'utilise que 3 de ces References ... et après les avoir utilisées, je ferme ces 3 References.

 

Et les 8 References non utilisées de mon noeud "Control [ ]", ne faut-il pas "aussi" les fermer ?

 

Autre question...

 

Si je ferme la Reference du Front Panel, ne vais-je pas invalider toutes les References qui en découlent ?

soit invalider les References du Tableau "Control [ ]" ?

 

Et de façon plus générale, en fermant la Reference d'un Front Panel,

que deviennent toutes les References créées "au delà" ??

 

 

Bench_1.png

0 Compliments
Message 9 sur 12
5 673 Visites

Je suis un peu perdu ...

 

Comment se fait-il que "ceci" fonctionne sans problème ???

 

D'une façon parfaitement séquentielle, je ferme la Reference avant de l'utiliser,

comment ce code peut-il fonctionner ? ...

 

(j'ai un seul Controle sur mon FP, d'où l'index "0")

 

Bench_1.png

0 Compliments
Message 10 sur 12
5 670 Visites