Accueil > Forum > > > > communication thread
communication thread
vendredi 18 avril 2008 à 20:14:56 |
communication thread

pupuce54980
|
bonsoir tout le monde, j'ai un soucis technique j'aurais voulu savoir comment vous vous y prendrais le soucis c'est que je dévellope un programme avec un chronométrage, donc mes capteurs se sont des cellule photoelectrique relié a un module arduino diciemilia. se module créer une liaison série sur l'ordinateur pour pouvoir communiquer avec celui ci, j'ai 3 capteur 1 au départ un de sécurité et un a l'arrivé, j'ai programmer ma carte entrée sortie pour recevoir un caractère spécifique en fonction du capteur. donc mon chronométrage est simple capteur 1 on enregistre le temps, capteur 3 on enregistre le temps - le tps de capteur 1 mais bon j'ai une interface graphique, donc pour éviter de figer l'interface il faudrait que je créer un thread, créer le thread c'est pas difficile j'ai réussit a le faire, mais se qui m'ennuie c'est que les variables qui sont dans mon interface ne sont pas dans mon thread et vice versa, en fait j'ai besion d'envoyer des variables de mon interface vers le thread, et une fois le chronométrage effectué de récupérer les variables du thread vers l'interface graphique, j'ai vu que l'on pouvait créer des deléguer pour qu'a partir du thread on puisse lancer une fonction du processus principales mais en aucun cas passer une variable. si quelqu'un a une solution je suis preuneur.
|
|
vendredi 18 avril 2008 à 21:59:43 |
Re : communication thread

juju12
|
Tu peux envoyer des messages entre threads cf PostThreadMessage()
|
|
samedi 19 avril 2008 à 03:27:11 |
Re : communication thread

pupuce54980
|
heu c vague comme réponse, tu peu détailler un peu svp
|
|
samedi 19 avril 2008 à 14:49:58 |
Re : communication thread

juju12
|
C'est pas vague; si tu as construit une interface graphique tu sais déjà ce qu'est un message non? A moins que tu l'ai pas faite en natif. Dans ce cas une petite explication : à chaque thread est associée une file de messages; ceux-ci sont de nature diverses : pour la plupart ils ont trait aux événements des fenêtres (clics, affichage...) mais tu peux en créer des personnalisés. Un petit exemple plus ou moins adapté à ton cas :
#define WM_START_CHRONO (WM_USER+0x1) #define WM_QUIT_THREAD (WM_USER+0x2) #define WM_CHRONO_RESULT (WM_USER+0x3)
DWORD __stdcall ThreadChrono(LPVOID idMainThread) { MSG msg; lbl_MsgLoop: BOOL bResult=GetMessage(&msg,NULL,WM_USER,WM_NULL); // récupère un message if(bResult==-1) return 1; // si erreur dans la récupération on quitte if(msg.message==WM_QUIT_THREAD) return 0x0; // si message quitter on quitte le thread if(msg.message==WM_START_CHRONO) // si on demande le chronométrage { // ton code de chrono } PostThreadMessage((DWORD)idMainThread,WM_CHRONO_RESULT,la_valeur_résultat,0); goto lbl_MsgLoop; // on va attendre un autre message }
utilisation : HANDLE hThisThread=GetCurrentThread(); DWORD idThisThread=GetThreadId(hThisThread),idThreadChrono; HANDLE hThreadChrono=CreateThread(0,0,ThreadChrono,(LPVOID)idThisThread,0,&idThreadChrono); ... // quand chronométrage souhaité PostThreadMessage(idThreadChrono,WM_START_CHRONO,0,0);
// pour recevoir la valeur : si tu as une interface graphique, tu as forcément quelque part une boucle de messages donc il suffit de traiter le message WM_CHRONO_RESULT
Voila, je sais pas si ça marche tel quel mais du moins il y a l'idée générale; reporte-toi à MSDN pour l'emploi des différentes fonctions.
|
|
samedi 19 avril 2008 à 14:51:45 |
Re : communication thread

juju12
|
j'oubliais : pour quitter le thread chrono proprement (quand tu fermes l'application par exemple) : PostThreadMessage(idThreadChrono,WM_QUIT_THREAD,0,0);
|
|
Cette discussion est classée dans : créer, thread, interface, capteur, chronométrage
Répondre à ce message
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|