NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

UI message

Solved!
Go to solution

Bonjour,

 

A partir de CVI je voudrai envoyer un UI message vers TS à l'aide de la fonction 'TS_ThreadPostUIMessageEx'.

Comment le message doit être récupéré dans TS?

 

Merci d'avance

0 Kudos
Message 1 of 2
(2,402 Views)
Solution
Accepted by topic author CedricPapin

Bonjour Cédric,

 

Le mécanisme d'UIMessage est voué à envoyer des messages vers une interface utilisateur. Il peut s'agir d'une interface opérateur spécifique à un projet/banc de test, mais également l'éditeur de séquence. Typiquement, si vous utilisez l'UIMessage UIMsg_ProgressPercent (Cf. UIMessageCodes Enumeration), l'éditeur de séquence va capter cet évènement et le traduire par un pourcentage d'avancement dans la barre de status.

 

Dans l'éditeur de séquence (SeqEdit.exe), un callback traite cet UIMessage pour être affiché ainsi, dans la barre de status. Dans une autre interface opérateur, cela pourrait être une barre de progression, ailleurs, ou sous une autre forme... ou ne pas être traité du tout.

 

Vous trouverez une présentation de ces mécanismes et de leur utilisation à cette adresse : Using TestStand User Interface Messages (UI Messages)

 

Bref, ce mécanisme adresse la communication depuis TestStand vers l'interface utilisateur. Gros avantage de ce mécanisme, il est "événementiel". J'enregistre un callack associé à l'apparition de tel évènement (au hasard, l'aparition d'un UIMessage), et s'il apparaît, le callback est appelé et traite l'évènement tel que je le lui définit, pas besoin de pooling.

 

Je ne connais pas de moyen d'enregistrer un Callback depuis TestStand (dans une séquence), je dirais même qu'il n'y en a pas (à confirmer). D'après l'aide de UIMessage, il semble néanmoins possible de procéder par pooling pour récupérer les UIMessages. On pourrait donc imaginer une séquence à lancer dans un nouveau thread qui ferait ce pooling... Mais je pense que c'est une erreur d'utiliser les UIMessages dans le sens Interface vers TestStand.

 

Finalement que cherchez-vous à faire ? Quelles informations avez-vous besoin de faire passer de votre interface vers TestStand ? Avez-vous besoin d'une liaison "évènementielle", i.e. qui réagisse n'importe quand à une interaction utilisateur ? Ou simplement de passer des informations à un moment bien précis dans le déroulement d'une séquence de test ?

 

Cordialement,

0 Kudos
Message 2 of 2
(2,377 Views)