12-17-2015 08:18 AM
Bonjour,
Je rencontre un problème dans mon application finale qui est integrée sous teststand. J'utilise actuellement CVI 2013. Mon IHM comportent des boutons qui font appellent à des callbacks. En parrallèle, mon appli contient 2 timers qui arrivent à échéance toute les 200ms et 100ms. Dans l'un de ces timers la boucle ci-dessous est présente :
do
{
SetCtrlVal (handle, IHM_LED,TRUE); //allumage de la led
etat = CmtGetLock(Mutex_Log);
DELAY_MS(5.0); // attente de 5ms
Loop ++;
} while((etat !=0)&&(Loop < NBLOOPS_Log));
SetCtrlVal (handle, IHM_LED,FALSE); //extinction de la led
.......
.......
etat = CmtReleaseLock(Mutex_Log);
Le problème est que si :
- PAS d'appui sur les boutons => fonctionnement correct.
- clic court ou double clic => fonctionnement correct.
- clic long => fonctionnement correct les timers continuent à tourner.
- clic ou double clic très rapide (pas systematiquement) => le programme reste bloqué sur CmtGetLock et donc mon IHM reste figée, les timers sont arretés.
Mes boutons sont gerés par une callback, mes timers par 2 callback, n'y a t-il pas un problème sur la gestion des evenements ?
Je débute dans labwindows et je ne maitrise pas bien les commandes CmtxxxLock, mais cette boucle était déjà existante dans un projet precedent et ne semblait pas poser problème.
Merci par avance pour vos contributions.
Solved! Go to Solution.
12-17-2015 08:24 AM
Je pense que vous serez mieux servi en postant dans le forum de CVI . Ceci est très spécifique à CVI et non liés à TestStand . Voici un lien : http://forums.ni.com/t5/LabWindows-CVI/bd-p/180
Malheureusement, je ne suis pas assez habile avec CVI de répondre à cette .
Cordialement,
12-17-2015 08:37 AM
Merci,
en fait je l'ai posté hier sur le forum de CVI, mais comme je n'ai pas eu de réponse....j'essaie.
Cordialement.
12-18-2015 09:55 AM
Ce post sur le forum me fait penser à la même problématique, cad un Thread Lock
http://forums.ni.com/t5/LabWindows-CVI/CmtGetLock-Casuing-one-thread-to-Freeze/td-p/813814
Paolo_P
Certified TestStand Architect
Certified LabVIEW Architect
National Instruments France
12-18-2015 10:14 AM
Merci, oui en effet, j'ai essayé avec CmtTryToGetLock, il n'y a plus de plantage, mais mon appli semble ralentir considérablement.