Discussions au sujet de NI LabVIEW

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

Transfert du valeur d'un enum

Résolu !
Accéder à la solution

Bonjour,

 

j'aimerais transférer en tant que "données de message", une valeur bien précise d'une constante énum (dont j'ai fait une définition de type) entre une boucle de gestion de messages et une boucle de gestion d'évènements. Si je connecte mon enum (avec la valeur qui m'intéresse) au" Enqueue message (single).v"i je n'arrive pas à le récupérer dans la la bge en utilisant la function "variant to data".
Est-ce que quelqu'un pourrait me suggérer la procédure correcte à suivre, s'il vous plait?
Merci d'avance.

Cordialement,

 

Tibe  

0 Compliments
Message 1 sur 4
1 365 Visites
Solution
Accepté par l'auteur du sujet Tibe68

Bonjour Tibe68,

 

A priori, tu utilises le Framework QMH de LabVIEW. Je ne suis pas certain d'avoir compris ce que tu souhaites faire, alors voici 2 possibilités pour répondre à ta question :

  • Transmettre la valeur de ton Enum de la EHL a la MHL : c'est n'est que dans ce sens que le sous-VI Enqueue Message (Single).vi est utile. En effet, il permet d'ajouter un élément dans la Message Queue UI qui est dépilée uniquement dans la MHL. 

Transfert Enum.PNG

 

  • Envoyer la valeur de ton Enum de la MHL a la EHL : pour cela il te faut créer un évènement utilisateur dont le type de donnée est ta définition de type pour ton Enum. Il faut ensuite que la EHL s'abonne à cet évènement (tout comme elle est abonnée à l'évènement stop). Tout est maintenant prêt pour que la MHL génère l'évènement avec la bonne valeur et que la EHL reçoive l'évènement et retourne la donnée.

Retrieve Enum.PNG

 

Read Broadcasted Enum.PNG

 

J’espère que cela t’aidera.

    Benjamin R.


Senior LabVIEW Developer @Neosoft


Message 2 sur 4
1 336 Visites

Comme répondu par Benjamin, je pense que dans ton "variant to value", comme type, tu dois mettre une constante de ton type enum. Il suffit de tirer ton type enum dans le diagramme.

 

Ton contrôle doit être en mode "type def" (toujours mettre les enums en type def):

Walker34_0-1626687106915.png

 

Message 3 sur 4
1 309 Visites

Bonjour BenjaminR et Walker34,

 

vous aviez vu juste tous les deux : mon erreur consistait à avoir câblé l'entrée "type" du "Variant en donnée" avec une constante "enum" générique et non pas avec la "déf de type" que je voulais transmettre comme "données de message".
Maintenant tout fonctionne (enfin, au moins cette partie du programme...🙂)
Merci beaucoup et bonne journée.
Cordialement,

 

Tibe

0 Compliments
Message 4 sur 4
1 298 Visites