NI Home > Community > NI Discussion Forums

Discussions au sujet des autres produits NI

Affichage des résultats de 
Rechercher plutôt 
Voulez-vous dire 
Répondre
Trusted Enthusiast
ouadji
Envois : 2 410
0 Compliments

Close Reference (??)

[ modifié ]

Je suis en train de potasser les reférences et les Classes. (à cause de TiTou :smileywink: )

 

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 ...)

 

Chess Game with labVIEW - latest version available here (comments and feedback are welcome)
Trusted Enthusiast
TiTou
Envois : 2 993

Re: Close Reference (??)


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.

_______________________________________________________________________
When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"
Active Participant
SimonD
Envois : 467

Re: Close Reference (??)

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
Trusted Enthusiast
ouadji
Envois : 2 410
0 Compliments

Re: Close Reference (une autre question)

[ modifié ]

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 :smileywink: )

 

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 :smileywink: )

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.

 


Chess Game with labVIEW - latest version available here (comments and feedback are welcome)
Trusted Enthusiast
TiTou
Envois : 2 993
0 Compliments

Re: Close Reference (une autre question)


ouadji wrote:

 

Tout "fonctionne", mais pas comme je voudrais

 



:smileyvery-happy: une belle rafarinade!

 

_______________________________________________________________________
When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"
Trusted Enthusiast
TiTou
Envois : 2 993
0 Compliments

Re: Close Reference (une autre question)


ouadji wrote:

 

Le sous-VI qui utilise ce code ... manipule les References et ensuite ferme ces References. (merci TiTou :smileywink: )



Tu oublies de fermer la ref du panel :smileywink:

_______________________________________________________________________
When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"
Trusted Enthusiast
TiTou
Envois : 2 993

Re: Close Reference (une autre question)


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.

_______________________________________________________________________
When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"
Trusted Enthusiast
ouadji
Envois : 2 410
0 Compliments

Re: Close Reference (une autre question)

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.

Chess Game with labVIEW - latest version available here (comments and feedback are welcome)
Trusted Enthusiast
ouadji
Envois : 2 410
0 Compliments

Re: Close Reference (une autre question)

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

Chess Game with labVIEW - latest version available here (comments and feedback are welcome)
Trusted Enthusiast
ouadji
Envois : 2 410
0 Compliments

Re: Close Reference (une autre question)

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

Chess Game with labVIEW - latest version available here (comments and feedback are welcome)