sccd.xml 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?xml version="1.0" ?>
  2. <diagram author="Simon Van Mierlo" name="Timer">
  3. <description>
  4. </description>
  5. <inport name="ui" />
  6. <class name="MainApp" default="true">
  7. <method name="MainApp">
  8. <body>
  9. <![CDATA[
  10. this.canvas = ui.append_canvas(ui.window,400,150,{'background':'#eee'})
  11. this.clock_text = this.canvas.add_text(25,25,'0.0')
  12. this.actual_clock_text = this.canvas.add_text(25,50,'0.0')
  13. var interrupt_button = ui.append_button(ui.window, 'INTERRUPT');
  14. var continue_button = ui.append_button(ui.window, 'CONTINUE');
  15. ui.bind_event(interrupt_button.element, ui.EVENTS.MOUSE_CLICK, this.controller, 'interrupt_clicked');
  16. ui.bind_event(continue_button.element, ui.EVENTS.MOUSE_CLICK, this.controller, 'continue_clicked');
  17. ]]>
  18. </body>
  19. </method>
  20. <method name="update_timers">
  21. <body>
  22. this.clock_text.set_text(get_simulated_time().toFixed(2));
  23. this.actual_clock_text.set_text(time().toFixed(2));
  24. </body>
  25. </method>
  26. <scxml initial="running">
  27. <state id="running">
  28. <transition target="." after="0.05">
  29. <script>
  30. this.update_timers();
  31. </script>
  32. </transition>
  33. <transition target="../interrupted" event="interrupt_clicked" port="ui">
  34. <script>
  35. this.update_timers();
  36. </script>
  37. </transition>
  38. </state>
  39. <state id="interrupted">
  40. <onentry>
  41. <script>
  42. console.log("entering interrupted");
  43. </script>
  44. </onentry>
  45. <onexit>
  46. <script>
  47. console.log("entering interrupted");
  48. </script>
  49. </onexit>
  50. <transition target="." event="interrupt_clicked" port="ui">
  51. <script>
  52. this.update_timers();
  53. </script>
  54. </transition>
  55. <transition target="../running" event="continue_clicked" port="ui">
  56. <script>
  57. this.update_timers();
  58. </script>
  59. </transition>
  60. </state>
  61. </scxml>
  62. </class>
  63. </diagram>