le 08-20-2015 09:41 AM
Salut,
Effectivement, si tu utilises la fonction de Ouadji dans un sous-vi, cela ne fonctionnera pas tel quel.
La solution qui me semble la plus simple, c'est effectivement de te recréer un compteur sur lequel tu t'autorise l'interruption 🙂
Par exemple comme ceci:
le 08-20-2015 09:56 AM
la tempo (structure event) dans un sous-VI ...
dans le "Main", le Booléen ... dont je passe la Référence au sous-VI
VI joint en LV 2011
le 08-20-2015 10:35 AM
Merci, ça réponds parfaitement au sujet.
le 08-21-2015 02:35 AM
Je reste quand même d'avis que ce n'est pas une utilisation "propre" de la structure évènement.
Mais si cela te convient, tant mieux.
Bon courage pour la suite.
Cdt,
Michael.
le 08-21-2015 03:11 AM
Bonjour,
Effectivement je travail sur ta solution.
Je me ça dispo dès que j'ai terminé.
le 08-21-2015 04:11 AM
@Michael.C : " Je reste quand même d'avis que ce n'est pas une utilisation "propre" de la structure évènement."
En effet, ici, je n'utilise pas la structure event dans son rôle premier ...
ce, dans la mesure ou son fonctionnement principal se base sur le "timeout" ... qui lui, n'est pas de l'événementiel.
Ceci dit, je te défie d'implémenter une temporisation que l'on peut interrompre instantanément d'une autre façon.
(j'insiste sur le côté instantané de l'arrêt)
Quant au côté "propre" ... cette remarque est tout à ton honneur ... j'aime les développeurs qui ont des "principes", une éthique de développement.
Donc ... "en gros", bravo pour ta rigueur.
Ceci dit, quand on développe, rien n'interdit de "détourner" et de jouer d'astuces. (vision perso)
le 08-21-2015 04:17 AM
Voilà,
Plus besoin d'intérompre le diaporama car il il ne bloque plus l'execution de mon VI principale.
Merci à vous pour les explications et votre apport qui me permet d'évoluer grandement sur mon projet.
Bonne continuation et encore merci,
le 08-21-2015 04:24 AM
Ouadji,
Mon propos était juste une remarque pour les développeurs "débutant".
En effet, quand on a une expérience suffisante de labview, il n'est pas interdit d'utiliser ce type d'astuce, à mon sens.
Je voulais juste mettre la personne en garde sur une utilisation excessive de cette méthode au début d'un projet, car je pense que dans le temps, la maintenabilité du programme peut s'en trouver altérée.
Après ne s'agissant pas de temp réel, il est vrai que ta méthode sera celle qui donne le résultat la plus proche de l'instantanée.
-> Question facultative : Connais tu le temps d'itération d'un event timeout pour la vérification des évènements (en clair, qu'elle est la réactivité maximum que l'on peut attendre d'une boucle event) ?
A savoir que de mémoire, je ne sais plus d'où je tire cette information, une temporisation de 150 ms dans un programme n'est pas ressenti par l'opérateur en cours de manipulation.
Bonne journée,
Michael.
08-21-2015 04:48 AM - modifié 08-21-2015 04:51 AM
mais ta "remarque" était justifiée, il n'y a pas de soucis.
Pour un débutant il est en effet préférable de s'en tenir à une stricte utilisation canonique des choses.
qu'elle est la réactivité maximum que l'on peut attendre d'une boucle event ?
Je n'en sais strictement rien !
De toute façon, même avec une structure event ... tout dépendra des priorités établient à l'instant " t " par le gestionnaire des tâches de l'OS.
Mais même si on ne parle que du code interne de LV, je n'ai aucune idée du temps de boucle d'un "timeout" (via une While),
ni du temps de réponse d'une structure event à une action utilisateur.
Ceci dit, intuitivement, et sans compter les retards provoqués par l'OS (uniquement le code interne de LV) ... je pense que l'on doit être bien en dessous de 150ms.
une temporisation de 150 ms dans un programme n'est pas ressenti par l'opérateur en cours de manipulation
oui, d'accord .... mais pas plus !
Un retard de 2/10 de seconde commence a être perceptible.