10_input_event_timeout_py.old 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?xml version="1.0" ?>
  2. <diagram author="Herr Joeri Exelmans" name="input_event_timeout" language="python">
  3. <description>
  4. After transitions taking place when suddenly an input event with higher priority becomes present.
  5. </description>
  6. <inport name="in"/>
  7. <outport name="out"/>
  8. <class name="c" default="true">
  9. <attribute name="i"/>
  10. <constructor>
  11. <body>
  12. self.number_of_times_entered_state_a_a = 0
  13. </body>
  14. </constructor>
  15. <scxml initial="a">
  16. <state id="a">
  17. <onentry>
  18. <raise event="entered_a" port="out"/>
  19. </onentry>
  20. <state id="a">
  21. <onentry>
  22. <script>self.number_of_times_entered_state_a_a += 1</script>
  23. </onentry>
  24. <transition after="0.01" target="."/>
  25. </state>
  26. <transition event="e" port="in" target="../b"/>
  27. </state>
  28. <state id="b">
  29. <onentry>
  30. <raise event="entered_b" port="out">
  31. <parameter expr="self.number_of_times_entered_state_a_a"/>
  32. </raise>
  33. </onentry>
  34. </state>
  35. </scxml>
  36. </class>
  37. <test>
  38. <input>
  39. <event name="e" port="in" time="0.1"/>
  40. </input>
  41. <expected>
  42. <slot>
  43. <!-- initialization -->
  44. <event name="entered_a" port="out"/>
  45. </slot>
  46. <!-- bunch of big steps now happen -->
  47. <slot>
  48. <!-- big step -->
  49. <event name="entered_b" port="out">
  50. <parameter value="10"/>
  51. </event>
  52. </slot>
  53. </expected>
  54. </test>
  55. </diagram>