Blocage interface utilisateur

totoscill Messages postés 48 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 10 décembre 2009 - 18 févr. 2008 à 15:55
StormEnnairo Messages postés 4 Date d'inscription vendredi 24 février 2012 Statut Membre Dernière intervention 27 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:
  
  Parity=2;
  StopBit=2;
  Count=0;
  
  SetCtrlAttribute (panelHandle, PANEL_LED, ATTR_ON_COLOR, VAL_GREEN);
  OpenComConfig (COM, "", Baudrate, Parity, 8, StopBit, 512, 512);  // open RS232 port
  ComWrt(COM, "MODE:CURR\n" ,11);
  Delay(1);
  ComWrt(COM, "INP ON\n" ,8);
  Delay(1);
  
  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);
   
  /* GetUserEvent (1, &panelHandle, &event);
   
   switch(event)
    {
    case EVENT_COMMIT:


    break;
 
    }*/
     
     
  
   
   }
  
break;
}

3 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
18 févr. 2008 à 16:07
Salut,
De mémoire tu as déjà posté sur le forum à ce sujet. As tu essayé les threads ?

Shell
0
totoscill Messages postés 48 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 10 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
0
StormEnnairo Messages postés 4 Date d'inscription vendredi 24 février 2012 Statut Membre Dernière intervention 27 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.
0
Rejoignez-nous