
Envoyé par
goomazio
Salut,
Tu pourras recevoir une trame quand ton programme sera prêt à écouter les messages de l'autre pc, relié sur le réseau rs485 modbus, qui interroge ton programme.
Pour pouvoir continuer à recevoir des trames en même temps que d'analyser une trame reçue, utiliser un thread serait une solution.
Ou bien tu fais un seul thread : il faudra que ton programme (qui est en fait le thread principal) envoie la trame à ce thread unique, il analysera les trames. Ca peut être compliqué car ce thread pourrait recevoir plusieurs trames d'affiler pendant qu'il serait déjà en train d'en analyser une, il faudra gérer une file d'attente.
Donc c'est peut-être plus simple de faire un thread pour chaque trame reçue :
Tu pourrais démarrer ton thread quand tu reçois un message. Je suppose que tu vois quand je veux dire, tu as surement une fonction qui établit une connexion avec la machine qui interroge ton programme, et une fonction qui reçoit les messages. Alors, à chaque réception de message (de trame), tu lance un thread qui analysera cette trame. Le thread s'occupera d'analyser la trame et, en même temps, ton thread principale continuera à écouter les trames arrivantes et lancera chaque fois un nouveau thread pour analyser ces nouvelles trames reçues.
Dans la fonction de création de thread, on passe en argument la fonction que le thread exécutera. C'est cette fonction bien sur qui analysera ta trame. Et c'est donc là que tu gèreras ta lumière verte, en affichant une image en fonction de l'état de la lampe par exemple, ou en utilisant une puce que tu active ou désactive...
En espérant t'avoir aidé et ne pas être passé à côté du principal en parlant de choses plus basiques,
salut!
Partager