Bonjour,
J'utilise Python 3.10 et PyQt5
Je suis en train de développer une interface pour piloter différents moyens (caméra, platine de translation, platine de rotation...).
Tout ces moyens sont connecté en USB, Ethernet et RS232 pour certain.
Dans mon IHM, j'ai besoin d'afficher l'image de ma caméra toutes les secondes et réguliérement rafraichir le status de tous les équipements connectés.
Le pilotage des équipements se fait de maniére asynchrone.
Tout cela sans que l'IHM ne se freeze.
Par conséquent, j'ai besoin d'utiliser des Threads.
Pour le rafraichissement de l'image de la caméra, j'allais utiliser la fonction QTImer, avec son interval de temps pour gérer cela.
Est il possible de lancer 2 QTimer ? (1 pour ma caméra et 1 pour le rafraichissement des status)
Ensuite les autres équipements, j'ai besoin de faire du multithreading.
Il y aura un bouton de connexion afin d'établir la lien.
Ensuite différent bouton pour les piloter.
Mais j'aimerai également, que mes équipements soient capables de mettre d'afficher des données dans mon IHM.
et que mon IHM puisse lui envoyer des données.
Exemple:
1 bouton => connexion à ma platine de rotation
j'ai un champ texte pour indiquer l'angle dont j'ai besoin
Un bouton "GO" pour lancer la rotation
J'ai un QTableWidget qui me permet d'afficher tout le log de mes activités (dans l'exemple il va afficher lancement de la rotation, et afficher la fin de la rotation)
J'ai une fonction FillLogbook qui permet de remplir ce log mais également d'enregistrer le log en temps réel. Donc quand l'action du thread est lancé, il faut que le thread appel cette fonction pour afficher mais aussi pour sauvegarder le log au bon endroit.
C'est un des exemples d'intéraction que je dois gérer.
Auriez vous un exemple ou un bon tuto de gestion de thread pour mon probléme?
Merci d'avance
Julien
Partager