10-21-2014 05:02 PM - modifié 10-21-2014 05:05 PM
un petit soucis quand je compare 2 Reférences ...
A
Je crée une Queue "toto" ... j'y place l'élément I32 "1234"
ensuite je fais accès à cette Queue par un "Obtain Queue" ... cette Queue existe déjà .... elle est nommée (toto)
J'obtiens donc une "autre Reference" sur cette Queue "toto".
Pour preuve, je "retrouve" mon élément "1234" ... et ... "Created new?" est False.
B
Quand labview compare des refs, il compare les Objets correspondants à ces Refs.
Si 2 Refs pointent vers un même Objet ... alors la comparaison de ces 2 Refs (égalité?) donne "True".
Question :
Mes 2 "Obtain Queue" me donne 2 Refs qui pointent vers le même Objet.
Pourquoi la comparaison ce ces 2 Refs ne donne-t-elle pas "True" ???
La sorttie " x=y? " est False !!!
Merci à tous.
le 10-22-2014 02:46 AM
Bonjour Ouadji,
Si le terminal Name est câblé, la fonction Obtain Queue cherche une Queue ayant le même nom et retourne une nouvelle référence vers cette Queue. Pour comparer 2 Queue il vaut mieux utiliser la fonction Get Queue Status et vérifier si le nom est identique.
le 10-22-2014 04:01 AM
Bonjour Benjamin,
merci pour ton intervention.
oui ... une "nouvelle" référence ... pointant sur le "même" Queue.
et si on compare (=?) 2 références pointant sur un même objet, le résultat est "true".
J'ai utilisé cette propriété en scripting dans certains xnode.
Mais je pense avoir trouvé "le pourquoi" ... la doc LV dit :
Equal? Function
When comparing VI Serveur references, this function returns TRUE when the two references refer to the same object ... etc ...
Or, une référence vers une Queue n'est pas une "VI serveur reference".
Je pense que la solution est là.