Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : communication thread [ Divers / Divers ] (pupuce54980)

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é dans : créer, thread, interface, capteur, chronométrage


Répondre à ce message

Sujets en rapport avec ce message

Créer un thread sous visual c++ [ par kalf2000 ] salut voila je voudrais creer un thread dans un projet ihm sous vc++.je sais qu'il faut que j'utilise la classe CWinThread mais je ne sais pas comment conception d'interface graphique [ par triton057 ] Bonjour,Je souhaite créer un outil de conception d'interface graphique multi plateformes. Quelqu'un aurait il un exemple d'interface de conception d'i comment créer une interface graphique simplement pour un programme en C sous linux [ par zarzar ] bonjourje dois écrire un programme de traitement d'image BMP en C sous linux qui pour l'instant doit tourner en "ligne de commande"j'ai des fonctions Quels outils utiliser pour créer une interface fonctionnant en C++ [ par fanny ] Bonjour, Je débute en C++ et j'aimerais créer une petite appli, avec le langage objet C++. Quel outil me conseillez-vous pour créer l'interface ? interface dynamique [ par emilia123 ] Bonjour. je souhaite dans le but de créer un chat en C++ sous builder, de créer dynamqieument l'interface. Mais je ne sais pas comment gerer les évène créer un thread sous builder [ par jhonny ] Bonjour,Malgré les cours des profs (je suis étudiant en bts informatique industrielle) je n'arrive pas à faire mes threads sous builder pour créer 3 c Interface graphique style Windows [ par eliot5 ] Je viens de créer sous windev un petit logiciel qui fonctionne bien mais j'aimerais connaitre la manière de procéder pour créer une interface graphiqu Créer un thread et recevoir le résultat [WIN32] [ par Alx1x ] Bonjour. J'ai fait un programme sous Windows en C (avec uniquement l'API windows) avec plusieurs fonctions dont une est blocante. Je voudrais y rajout Créer une interface... [ par winwarrior ] Bonjour,Je cherche comment créer une interface avec vc++ 6qq1 peut m'éclairer plz ?win comment créer un thread sous vc++, ou est définie pthread.h [ par saerlo ] GORDON


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.