sccd.xml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?xml version="1.0" ?>
  2. <diagram author="Simon Van Mierlo" name="Timer (Eventloop Version)">
  3. <top>
  4. from sccd.runtime.libs.ui import ui
  5. from sccd.runtime.accurate_time import time
  6. </top>
  7. <inport name="ui" />
  8. <class name="MainApp" default="true">
  9. <method name="MainApp">
  10. <body>
  11. <![CDATA[
  12. self.canvas = ui.append_canvas(ui.window,100,100,{'background':'#eee'})
  13. self.clock_text = self.canvas.element.create_text(25,25,{'text':'0.0'})
  14. self.actual_clock_text = self.canvas.element.create_text(25,50,{'text':'0.0'})
  15. interrupt_button = ui.append_button(ui.window, 'INTERRUPT');
  16. continue_button = ui.append_button(ui.window, 'CONTINUE');
  17. ui.bind_event(interrupt_button.element, ui.EVENTS.MOUSE_CLICK, self.controller, 'interrupt_clicked');
  18. ui.bind_event(continue_button.element, ui.EVENTS.MOUSE_CLICK, self.controller, 'continue_clicked');
  19. ]]>
  20. </body>
  21. </method>
  22. <method name="update_timers">
  23. <body>
  24. self.canvas.element.itemconfigure(self.clock_text, text=str('%.2f' % (self.getSimulatedTime() / 1000.0)))
  25. self.canvas.element.itemconfigure(self.actual_clock_text, text='%.2f' % (time() / 1000.0))
  26. </body>
  27. </method>
  28. <scxml initial="running">
  29. <state id="running">
  30. <transition target="." after="0.05">
  31. <script>
  32. self.update_timers()
  33. </script>
  34. </transition>
  35. <transition target="../interrupted" event="interrupt_clicked" port="ui">
  36. <script>
  37. self.update_timers()
  38. </script>
  39. </transition>
  40. </state>
  41. <state id="interrupted">
  42. <transition target="." event="interrupt_clicked" port="ui">
  43. <script>
  44. self.update_timers()
  45. </script>
  46. </transition>
  47. <transition target="../running" event="continue_clicked" port="ui">
  48. <script>
  49. self.update_timers()
  50. </script>
  51. </transition>
  52. </state>
  53. </scxml>
  54. </class>
  55. </diagram>