runner.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. '''
  2. Created on 10-sep.-2014
  3. @author: Bruno
  4. '''
  5. from fsaclasses import State, Transition, After, AtomValue, Float, FSAModel,Event,RunTimeEvent,Events
  6. import fsasimulator
  7. def buildModel():
  8. statea = State("a")
  9. stateb = State("b")
  10. statec = State("c")
  11. stated = State("d")
  12. transitionab = Transition("a2b",statea,stateb)
  13. transitionab.trigger = After(Float(5.0))
  14. transitionbc = Transition("b2c",stateb,statec)
  15. transitionbc.trigger = After(Float(2.0))
  16. transitioncd = Transition("c2d",statec,stated)
  17. transitioncd.trigger = Event("c")
  18. transitionda = Transition("d2a",stated,statea)
  19. transitionda.trigger = After(Float(5.0))
  20. fsamodel = FSAModel(
  21. [statea,stateb,statec,stated],
  22. [transitionab,transitionbc,transitioncd,transitionda]
  23. )
  24. fsamodel.initialState = statea
  25. return fsamodel
  26. if __name__ == '__main__':
  27. fsamodel = buildModel()
  28. events = Events([RunTimeEvent('a',3.0),RunTimeEvent('b',5.0),RunTimeEvent('c',10.0)])
  29. controller = fsasimulator.Controller(fsamodel, events, [])
  30. controller.start()