-"""Provide state machine plugin.
-
-…
-
-TODO: documentation, doctests
-"""
from controlpi import BasePlugin, Message, MessageTemplate
for state in self.conf['states']:
commands = self.conf['states'][state]['commands']
for command in commands:
- sends.append(MessageTemplate.from_message(command))
+ template = MessageTemplate.from_message(command)
+ if template not in sends:
+ sends.append(template)
transitions = self.conf['states'][state]['transitions']
for transition in transitions:
- receives.append(MessageTemplate(transition['trigger']))
+ template = MessageTemplate(transition['trigger'])
+ if template not in receives:
+ receives.append(template)
self.bus.register(self.name, 'StateMachine',
sends, receives, self._receive)