le 05-26-2016 07:31 AM
Bonjour,
Je crois malheureusement avoir déjà la réponse à ma question mais je demande quand même :
J'ai un évènement qui se déclenche lors du changement de plusieurs variables, toute de type identique (booléen), et j'aimerais récupérer des données, lorsque l'évènement se déclenche, sur la variable qui a déclenché l'évènement (en particulier son nom). Malheureusement le noeuds de données d'évènement ne me propose que source(?), type, et temps, alors que si je ne mets qu'une seule variable je peux récupérer un refnum sur cette variable.
une idée ? ou es ce tout simplement pas possible ?
d'avance merci.
Résolu ! Accéder à la solution.
le 05-26-2016 08:19 AM
le 05-27-2016 08:30 AM
Merci de ta réponse.
J'ai oublié de présciser que mes évènements sont de type dynamiques. En passant, je ne sais pas exactement ce que je peut récupérer avec la propriété source !?
le 05-27-2016 08:32 AM
le 05-27-2016 08:57 AM
Bien sur, le voici :
Comme tu peux le voir, je ne peux récupérer que mon RefEvnmtUtil dans le noeud de propriété de mes évènements. J'aimerais pouvoir récupérer leurs noms, où une référence sur la donnée, ou encore le nom de l'évènement déclencheur tout simplement. Ce que je veux c'est pouvoir afficher "Event 1" ou "Event 2", en fonction de celui qui a déclenché l'évènement.
05-27-2016 10:44 AM - modifié 05-27-2016 10:51 AM
Tu as placé les 2 user event ensemble ... humm ... je pense que tu vas avoir du mal de récupérer la donnée.
(Si jamais cela "est possible" ... je suis intéressé de savoir "comment")
mais peut-être que de "simplement" pouvoir les différencier est suffisant, comme ceci : (VI joint LV2012)
Tu as placé tes 2 Contrôles booléens en "switch when pressed" ...
à chaque tour de boucle, toutes les 50ms (la While du dessus), tu peux ne générer aucun event ... ou alors, tu peux générer Event_1 ET / OU Event_2
Si tu génères les deux ... l'ordre sera indéterminé.
le 05-27-2016 10:56 AM
En effet, ce n'est pas possible de récupérer la donnée. UsrEventRef est un controle alors on ne peut pas le passer à un noeud de propriétés. On peut toujours récupérer la valeur du refnum (typecast to U32) mais on ne peut utiliser ça pour générer une référence valide à un contrôle car LabVIEW ferme automatiquement la référence lorsque qu'elle est passé par un événement dynamique (message d'erreur reference no longer valid).
La méthode de Ouadji est une alternative possible dans ce cas mais il faudrait également évaluer s'il est préférable de séparer les événements dynamiques.
Ben64
le 05-27-2016 12:07 PM
@ ben64 : " UsrEventRef est un controle .... "
Mes excuses, mais je ne comprends pas ... que veux-tu dire par "UsrEventRef est un controle" ?
"On peut toujours récupérer la valeur du refnum (typecast to U32) ..."
désolé ... mais je ne comprends pas trop non plus ..
de toutes façon, que veux-tu faire avec une Référence qui serait sous la forme d'un U32 ?
"évaluer s'il est préférable de séparer les événements dynamiques"
personnellement ... je sépare.
le 05-27-2016 12:33 PM
@ouadji wrote:@ ben64 : " UsrEventRef est un controle .... "
Mes excuses, mais je ne comprends pas ... que veux-tu dire par "UsrEventRef est un controle" ?
"On peut toujours récupérer la valeur du refnum (typecast to U32) ..."
désolé ... mais je ne comprends pas trop non plus ..
de toutes façon, que veux-tu faire avec une Référence qui serait sous la forme d'un U32 ?
"évaluer s'il est préférable de séparer les événements dynamiques"
personnellement ... je sépare.
Excuses non nécessaires, je ne suis pas familier avec la nomenclature francaise de LabVIEW, j'ai toujours utilisé la version anglaise. C'est probablement plus simple de montrer ce que j'essaiyais de faire (la conversion U32 était pour récupérer la valeur numérique du refnum mais c'est finalement une étape inutile).
Ben64
le 05-27-2016 12:37 PM