totoscill
Messages postés48Date d'inscriptionjeudi 26 avril 2007StatutMembreDernière intervention10 décembre 2009
-
18 févr. 2008 à 15:55
StormEnnairo
Messages postés4Date d'inscriptionvendredi 24 février 2012StatutMembreDernière intervention27 février 2012
-
27 févr. 2012 à 18:54
Bonjour,
Je développe une application me permettant de piloter un outil avec labwindows CVI 8.5. J'utilise une interface utilisateur et une boucle while pour envoyer mes infos en cycle à mon matériel. Le problème est que une fois mon programme lancée (après avoir cliquer sur ok dans mon interface utilisateur) je n'ai plus la main sur mon programme et je suis obligé d' effectué une fin de tache pour l'arreter. J'ai essayé plusieurs solution mais en vain (boucle if qui test l'état d'une commande....). Quelqu'un aurai t'il une solution pour résoudre ce problème? Je vous remercie.
Voici mon bout de code qui pose problème:
int CVICALLBACK OkCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
while(1) // Boucle de commande de mon outil
{
Fmt(Buffer,"%s<%s%f%s","CURR ",Pal1,"\n");
ComWrt(COM,Buffer,256); //write in the buffer
Delay(Timef1);
Fmt(Buffer,"%s<%s%f%s","CURR ",Pal2,"\n");
ComWrt(COM,Buffer,256); //write in the buffer
Delay(Timef2);
Count++;
SetCtrlVal (panelHandle, PANEL_NUMERIC_Nbr_Pal, &Count);
totoscill
Messages postés48Date d'inscriptionjeudi 26 avril 2007StatutMembreDernière intervention10 décembre 2009 19 févr. 2008 à 08:29
Bonjour,
Non je ne crois pas avoir posté quelque chose à ce sujet. Non je n'ai pas essayé les threads, je pensais qu'il y avait une solution plus simple. Je ne maitrise pas trop. Mais je crois que je vais devoir m'y mettre.
Merci
StormEnnairo
Messages postés4Date d'inscriptionvendredi 24 février 2012StatutMembreDernière intervention27 février 2012 27 févr. 2012 à 18:54
le "while(1)" c est pas une boucle infinie ? ne croit tu pas que ca vient de la ta perte de controle ? Regarde sud le sdz le tuto de m@teo te montre comment utiliser un delay.