Forum Lifedomus
Votre avis ? Automate appelé par un autre automate - 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 : Votre avis ? Automate appelé par un autre automate (/showthread.php?tid=3654)



Automate appelé par un autre automate - jojo - 05-21-2017

.
Bonjour,
Il m'arrive depuis un automate d'en appeler un autre.
Cela me permet par exemple d'utiliser l'automate appelé comme une fonction. Plutôt que de reproduire l'automate appelé 3 fois dans les 3 automates maîtres, il n'est repris qu'une seule fois, et si cette "fonction(alité)" est appelée à évoluer, je fais la modif une seule fois !

MAIS

J'ai constaté un GROS problème.
Je crée une action pour exécuter l'automate, puis une autre qui suit cette action : elles sont lancées les une après les autres, et l'action qui suit le lancement de l'automate n'attend pas la fin de l'automate.

Exemple (je lui ai fait actionner des lampes pour être sûr des actions)
Mon automate principal s'appelle Z_Main.
Il a démarré à 20:14:12 en appelant l'automate Z_Sub.
[attachment=1719]
L'automate Z_Sub a bien démarré à 20:14:12
[attachment=1720]
comme je suis sûr qu'il dure 5 secondes (cfr Délais), je m'attendais à ce que la seconde action de l'automate Z_Main démarre à 20:14:17.
Or elle a été enclenchée à 20:14:13 (13 ou 12, c'est la même chose, c'est dû aux arrondis, à l'après de quelques millisecondes)
[attachment=1721]

N.B. pour avoir les heures d'exécution de mise à jour de l'automate appelé (Z_Sub), il ne suffit pas de l'ouvrir une fois appelé (quand on l'ouvre directement, on a les heures d'exécution de la fois précédente), mais il faut faire une modif dans  l'automate (changer la durée du Wait), afin de pouvoir le sauver, et alors on a les heures mises à jour.

La "solution" serait d'ajouter un Délais dans l'automate Z_Main qui correspond à la durée d'exécution du Z_Sub. Mais ce n'est pas propre, ET ici c'est facile, mais vous pouvez avoir des automates Z_Sub qui ont des durées d'exécution variables ...


RE: Automate appelé par un autre automate - Hsd - 05-21-2017

Bonjour,

ce n'est pas un problème c'est juste un comportement qui a été voulu par les développeurs.

Si tu veux attendre la fin de l'execution de l'automate tu peux metrte en oeuvre ceci

http://forum-lifedomus.com/showthread.php?tid=777&pid=5131#pid5131


RE: Automate appelé par un autre automate - jojo - 05-21-2017

Merci pour ton idée / ta solution.

Et si je veux que mon second automate se comporte comme une fonction (c'est-à-dire qu'il puisse éventuellement être appelé par plusieurs automates en même temps, comment devrais-je faire ?
Car le mode Recommencer, va interrompre l'instance actuelle et en recommencer une nouvelle depuis le début ?


RE: Automate appelé par un autre automate - Hsd - 05-21-2017

Je ne pense pas qu'il soit possible d'utiliser ton automate comme une "fonction" car on ne peut pas lancer deux fois le même automate


RE: Automate appelé par un autre automate - jojo - 05-21-2017

ok,
Si juste avant de faire le délais en fonction de la variable, on fait un test sur une autre valeur de la variable qui dit si le second automate est en cours, on peut ainsi attendre qu'il ait fini ailleurs, et ensuite le démarrer.
Je crois que c'est faisable, mais seulement si on risque d'avoir 2 instances simultanées de la fonction.
En tout cas merci, tu m'as donné plein d'idées (qui m'empêcheront de dormir cette nuit Icon_thunder-20740 )


RE: Automate appelé par un autre automate - pepite - 05-22-2017

Arreter de me perdre et de me noyer @jojo et @HSD ;-)


RE: Automate appelé par un autre automate - jojo - 05-22-2017

investi dans une LD, et
  1. tu seras heureux, car nette augmentation du WAF
  2. tu comprendras mieux nos charabias Eek-1e6fb



RE: Automate appelé par un autre automate - pepite - 05-23-2017

(05-22-2017, 11:22 AM)jojo a écrit : investi dans une LD, et
  1. tu sera heureux, car nette augmentation du WAF
  2. tu comprendras mieux nos charabias Eek-1e6fb

si seulement ;-)


RE: Automate appelé par un autre automate - Ives - 07-24-2017

(05-21-2017, 04:22 PM)jojo a écrit : J'ai constaté un GROS problème.
Je crée une action pour exécuter l'automate, puis une autre qui suit cette action : elles sont lancées les une après les autres, et l'action qui suit le lancement de l'automate n'attend pas la fin de l'automate.

J'ai un peu de mal à suivre des explications mais j'ai compris que les automates sont asynchrones; lorsqu'un automate A lance un automate B ; A continue son exécution sans être influencé par B ?
Un automate peut-il lancer simultanément plusieurs autres automates ?


RE: Automate appelé par un autre automate - jojo - 07-24-2017

en effet, un automate peut lancer en parallèle plusieurs automates
Et si tu ne veux pas que celà soit le cas, regarde comment faire dans ma signature (enchainement des automates)