Bonjour et merci d'avance pour vos réponses,
Je suis en train d'utiliser Fysom (https://github.com/oxplot/fysom) pour réaliser une machine d'états.
Le module est relativement simple d'utilisation. Voici un example:
Il est possible d'utiliser un mécanisme de callbacks avec ce module. Ici la function appelé est myfunction lorsque la transition onload est lancé ou encore lors du passage de l'état OFF à LOADED.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 TABLE = { 'initial': 'OFF', 'events': [{'name': 'load', 'src': 'OFF', 'dst': 'LOADED'},], 'callbacks': {'onload': myfunction,}} fsm = Fysom(TABLE)
Ce que je voudrai serait d'avoir un mécanisme inverse. C'est-à-dire lors de l'appel de la fonction myfunction le changement d'état de OFF à LOADED s'opère (l'appel de onload s'opère).
J'ai jeté un oeil au module et j'ai vu la partie qui se charge du callback:
Cette fonction est lancée lors du changement d'état dans la boucle principal du programme Fysom.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 def _enter_state(self, e): ''' Executes the callback for onenter_state_ or on_state_. ''' for fnname in ['onenter' + e.dst, 'on' + e.dst]: if hasattr(self, fnname): return getattr(self, fnname)(e)
Je ne vois donc pas comment effectuer l'opération inverse sachant que la fonction myfunction est externe au module et n'a aucun lien avec celui-ci.
Partager