From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet des autres produits NI

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

Creatind and developing a TSUI(TestStand User Simple Interface) on Python

Résolu !
Accéder à la solution

Currently, I am creating a Teststand interface, a simple interface, TSUI to view and control a running sequence.

knowing that the solution is already given by a national instrument in LabVIEW language.
but I want to create in python language especially I used Teststand engine but I did not succeed.

do you have the idea of tracks?

 

Actuellement je suis entrain de créer une interface de Teststand user simple interface TSUI pour visualiser et contrôler une séquence en cours d'exécution.

sachant, que la solution est déjà donné par national instrument en langage LabVIEW .
mais moi je veux la créer en langage python notamment j'ai utilisé engine Teststand mais j'ai  pas réussi.

Est ce que vous avez des idée ou de pistes?

 

0 Compliments
Message 1 sur 9
3 496 Visites

Bonjour,

 

Il me semble qu'il y a eu un post similaire il y a peu de temps. Si c'est votre poste, merci d'éviter les doublons sur le forum.

 

Je ne sais pas si Python est le bon langage pour créer une interface utilisateur custom pour TestStand. A ma connaissance, Python n'est pas forcément le langage le plus facile pour la création d'interface utilisateur tout court.

 

Pour ce qui est de votre problème, si vous n'arrivez pas à insérer les objets Activex, il faut s'orienter vers des forums Python pour demander de l'aide sur l'utilisation d'un serveur ActiveX et l'insertion de contrôle ActiveX.

 

Pour ce qui est de la création d'une interface personnalisée pour NI TestStand, vous pouvez regarder les codes existants en LabVIEW, C ou .NET pour vous en inspirer. Il me semble également que le sujet des opérateurs interfaces est abordé dans le cours TestStand II pour comprendre le fonctionnement.

 

Cependant, partir de 0 pour une interface opérateur dans un langage qui ne me semble pas forcément adapté, et qui n'aura pas de support officiel me semble un baeu challenge.

 

Votre capture correspond à un montage ou a un embryon en Python ?

 

MaximeR

 

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Message 2 sur 9
3 442 Visites

Bonjour, 

Merci pour votre réponse. En fait, j'ai posté mon sujet pour avoir des avis et savoir c'est faisable ou non car déjà j'ai réussis à 

programmer et gérer l'interface de User Manager en python Monsieur MaximR et j'ai fait ça juste à l'aide du moteur Engine et bien sur en utilisant

les classes, les méthodes et les propriétés qui sont proposés par API TestStand. pour l'instant je me suis bloquée sur l'interface TSUI.

Note: la capture est fait par un logiciel graphique juste pour avoir une idée sur l'interface que je voulais créer en python. et merci 

0 Compliments
Message 3 sur 9
3 433 Visites

Bonjour,

 

Pour tout vous dire, je ne comprends pas tout à fiat votre réponse.

Vous arrivez à gérer le mécanisme de Login de TestStand depuis Python ?

Vous me dites que vous êtes bloqués sur l'interface TSUI. je ne comprends pas ce que cela signifie. TSUI = TestStand User Interface.

 

L'aide de TestStand pour créer une interface utilisateur consiste à regarder comment sont faites les Simple UI de TestStand fournis dans les langages supportés (C++, C#, CVI, LabVIEW, VB.NET). Ces sources sont disponibles dans le dossier d'installation de TestStand\UserInterfaces\Simple.

 

C'est le meilleur conseil que je peux vous donner pour savoir comment l'implémenter. D'ailleurs, je pense que ce sera le seul conseil que NI pourra vous donner car c'est écrit comme cela dans l'aide.

 

Pour bien comprendre aussi votre besoin, pourquoi choisir Python pour faire cette interface ?

Pour supporter les fonctionnalités d'une interface opérateur TestStand, il faut enregistrer des callbacks. Je sais que l'appel d'ActiveX est possible en Python, et à priori vous arrivez à démarrer le moteur TestStand si vous arrivez à vous logger, mais est ce que l'enregistrement de Callback sur des évènements ActiveX est possible je ne sais pas.

 

Dans ce que vous faites actuellement en Python, vous arrivez à créer une interface en utilisant les contrôles ActiveX de TestStand ?

 

Merci

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

0 Compliments
Message 4 sur 9
3 413 Visites

D'ailleurs, vous utilisez quel modules python pour faire voter IHM ? QT, TKinter ...?

 

Merci

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

0 Compliments
Message 5 sur 9
3 395 Visites

j'ai utilisé la libraire kivy. mais je pense que je vais la changer par la libraire PyQT 

0 Compliments
Message 6 sur 9
3 371 Visites

Bonjour,

 

Est ce que vous pouvez également répondre à mes questions du post précédent pour qu'on puisse vous aider au mieux ?

Par rapport à Qt, effectivement, il peut simplifier le développement. Attention cependant, à ma connaissance ce framework limite ensuite un portage facile sans celui-ci. 

De plus, le framework Qt est payant si on souhaite utiliser son logiciel sans être obligé de le distribué en open source.

 

https://www.qt.io/licensing/

 

Du moins c'est ma compréhension de leur licence pour mettre posé la question sur un projet Python.

 

Cordialement

 

MaximeR

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

0 Compliments
Message 7 sur 9
3 356 Visites

1- Je suis arrivée à gérer le mécanisme de "user manager" en script python à partir de la déclaration du moteur engine à l'aide de la librairie Pywin32. En appelant les classes et les méthodes qui sont proposés par API Teststand. (Voir capture1).

 

2- TSUI signifie : [Teststand Simple User Interface].

 

3- Python : c’est un langage simple, multifonction et populaire. En fait, il est imposé dans le cahier des charges).

 

4- Pour les déclarations des objets ActiveX : Oui, est possible en python à l'aide de la libraire pywin32 et oui j’ai pu les appelés et les déclarés sauf pour les utiliser dans les classes et les méthodes, En fait, j'ai eu toujours des erreurs de références en passant ces objets-là dans les arguments c'est là où je me bloque. (Voir capture 2) [car je veux s’interfacer et visualiser les informations d’un déroulement d’une séquence en Teststand].

 

5- pour la librairie Kivy c'est juste une libraire pour faire la partie graphique de l’IHM.

 

6- je veux m’orienter vers la librairie PyQt (je sais qu’elle payante) car la librairie Kivy ne propose pas des widgets "container" active X et du coup ça sera impossible de l’utiliser.

Tout télécharger
0 Compliments
Message 8 sur 9
3 334 Visites
Solution
Accepté par l'auteur du sujet tidalos

Merci pour les réponses.

 

Alors en fait il y a plusieurs composants dans l'API TestStand pour la gestion des UI.

Il y a d'un côté le moteur d'exécution TestStand. Ça vous arrivez à le démarrer. Ensuite vous avez toutes les méthodes et les propriétés hérités du moteur, qui vous permette de vous identifier, ouvrir et exécuter des séquences.

 

Ça on doit pouvoir y arriver en Python car ça ne nécessite pas de composants graphiques. On peut tout faire sans les composants graphiques natifs, mais la Python a beau être "simple, multifonction et populaire" (tout se discute), ça fera énormément de boulot à implémenter alors que ça existe dans d'autres langages.

 

Ensuite il y a les contrôles ActiveX TestStand. Dans ce cas vous devez pouvoir instancier le contrôle dans un conteneur ActiveX et donc gagner beaucoup de temps. la visualisation de l'exécution des séquences par exemple, la gestion des boutons d’exécutions... Dans ce cas, il faut 2 conditions, être capable de les instancier quelque par, à priori Kivy, on oublie, peut être Qt et ensuite de les lier au point d'entrées qui vont bien sur les fonctions de l'API.

 

Pour ce point, je persiste et signe, la meilleure aide est de regarder comment s'est fait dans l'exemple Simple UI dans un autre langage. Le code n'est pas si gros et le C, C++, VB.NET, LabVIEW sont eux aussi des langages "simple, multifonction et populaire".

 

Pour ce qui est de Python, indépendamment des qualités d'un langage, si ce n'est pas le langage adapté, ce sera toujours plus compliqué. Faire un site web en LabVIEW, ça n'a pas vraiment de sens mais c'est faisable. Faire un site web se basant sur Python c'est certainement plus simple. L'inverse est vrai pour une UI TestStand. Si ce choix technique ne peut plus être remis en cause, je pense que c'est dommage, si oui, la question mérite vraiment de se poser.

 

En vous souhaitant bien du courage.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Message 9 sur 9
3 319 Visites