Forum Lifedomus
Tuto enchaînement d'automates - Version imprimable

+- Forum Lifedomus (http://forum-lifedomus.com)
+-- Forum : Les outils de configuration et design (http://forum-lifedomus.com/forumdisplay.php?fid=7)
+--- Forum : Config Studio (CS) (http://forum-lifedomus.com/forumdisplay.php?fid=8)
+---- Forum : Automatismes (http://forum-lifedomus.com/forumdisplay.php?fid=42)
+----- Forum : Automates (Module logique avancé) (http://forum-lifedomus.com/forumdisplay.php?fid=144)
+----- Sujet : Tuto enchaînement d'automates (/showthread.php?tid=3671)



enchaînement d'automates - jojo - 06-06-2017

Bonjour,
Suite à ma question sur l'exécution en parallèle ou en séquences d'automates appelés par d'autres,
@HSD m'a redirigé vers la solution proposées par @tilleul Amen-1fb6 Amen-1fb6 Amen-1fb6

Elle fonctionne SUPER !

Mais j'ai voulu l'exploiter un peu plus, et je vous partage le fruit de mes recherches.

L'idée est que si un automate tourne, il ne peut pas être appelé par un autre.
Dès qu'il a fini de tourner, il démarre, et celui qui l'a appelé attend qu'il soit fini pour continuer.

LIMITATION : si vous avez plus d'un automate qui sont en attente de pouvoir exécuter un "sous"-automate, il y a problème...

Donc j'ai créé une variable Booléenne <Run_ZA_Sub>.
Elle sera à TRUE quand l'automate <ZA_Sub> tourne et à FALSE à la fin de l'automate.

Donc pour l'illustration, j'ai créé un automate <ZA_Main> qui
[attachment=1746]
1) actionne une lampe (pour être sûr qu'il démarre bien)
2) teste la variable <Run_ZA_Sub>
     - si true, alors on fait un Wait sur un déclencheur de cette variable à FALSE, puis on exécute l'automate <ZA_Sub>
     - si false, on exécute directement l'automate <ZA_Sub>
3) on fait à nouveau un Wait sur la valeur de la variable <Run_SA_Sub> = FALSE
4) re-actionne la lampe pour valider que mon automate principal s'est bien terminé.

L'automate appelé <ZA_Sub> fait :
[attachment=1747]
1) mettre la variable <Run_ZA_Sub> = TRUE
2) fait ce qu'il doit faire, ici juste un wait de 5 secondes, pour les besoins du test.
3) repasse le variable <Run_ZA_Sub> à FALSE

Voilà, c'est on ne peut plus simple, et encore merci à @tilleul pour l'idée.

Je vais exploiter ceci pour améliorer la gestion de mes caméras via Surveillance Station et également pour éviter des chevauchements dans les automates qui disent des chose dans les Sonos.


RE: enchaînement d'automates - Hsd - 06-06-2017

Mais tu ne t'arrêtes jamais toi  Doh-23e2

En tout cas super  Cool-1614 encore une fois


RE: enchaînement d'automates - pepite - 06-11-2017

Au top du top @jojo

Juste..wouw