NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Plantage avec CmtGetLock

Solved!
Go to solution

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.

0 Kudos
Message 1 of 5
(3,613 Views)

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,

jigg
CTA, CLA
testeract.com
~Will work for kudos and/or BBQ~
0 Kudos
Message 2 of 5
(3,611 Views)

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.

0 Kudos
Message 3 of 5
(3,608 Views)

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

Message 4 of 5
(3,581 Views)
Solution
Accepted by topic author SDS35150

Merci, oui en effet, j'ai essayé avec CmtTryToGetLock, il n'y a plus de plantage, mais mon appli semble ralentir considérablement.

 

0 Kudos
Message 5 of 5
(3,578 Views)