Example #1
0
def onjust_opened(e):
  global green_led, red_led
  print 'just_opened'
  green_led.off()
  for i in xrange(15):
    red_led.on()
    time.sleep(0.3)
    red_led.off()
    time.sleep(0.3)


fsm = Fysom({'initial': {'state':'reset', 'event':'init'},
             'events': [
               {'name': 'open_now', 'src': 'closed', 'dst': 'just_opened'},
               {'name': 'opened_forever', 'src': 'just_opened', 'dst': 'open'},
               {'name': 'close_now', 'src': 'open', 'dst': 'closed'},
               {'name': 'was_closed', 'src': 'reset', 'dst': 'closed'},
               {'name': 'was_open', 'src': 'reset', 'dst': 'just_opened'}],
             'callbacks': {
               'onreset': onreset,
               'onopen': onopen,
               'onclosed': onclosed,
               'onjust_opened': onjust_opened, }})


fsm.was_closed()
fsm.open_now()
fsm.opened_forever()
fsm.close_now()