parallel_history_2.xml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?xml version="1.0" ?>
  2. <diagram
  3. xmlns="msdl.uantwerpen.be/sccd"
  4. author="Glenn De Jonghe"
  5. name="TestParallelHistory2">
  6. <description>
  7. Testing history where the history state is directly inside a parallel element (deep).
  8. </description>
  9. <inport name="test_input" />
  10. <outport name="test_output" />
  11. <class name="TestClass" default="true">
  12. <scxml initial="parallel">
  13. <parallel id="parallel">
  14. <state id="orthogonal_1" initial="orthogonal_inner_1">
  15. <state id="orthogonal_inner_1" initial="state_1">
  16. <state id="state_1">
  17. <onentry>
  18. <raise port="test_output" event="in_state_1" />
  19. </onentry>
  20. <transition port="test_input" event="to_state_2" target="../state_2"/>
  21. </state>
  22. <state id="state_2">
  23. <onentry>
  24. <raise port="test_output" event="in_state_2" />
  25. </onentry>
  26. </state>
  27. <transition port="test_input" event="to_outer_1" target="../outer_1"/>
  28. </state>
  29. <state id="outer_1">
  30. <onentry>
  31. <raise port="test_output" event="in_outer_1" />
  32. </onentry>
  33. </state>
  34. </state>
  35. <state id="orthogonal_2" initial="orthogonal_inner_2">
  36. <state id="orthogonal_inner_2" initial="state_3">
  37. <state id="state_3">
  38. <onentry>
  39. <raise port="test_output" event="in_state_3" />
  40. </onentry>
  41. <transition port="test_input" event="to_state_4" target="../state_4"/>
  42. </state>
  43. <state id="state_4">
  44. <onentry>
  45. <raise port="test_output" event="in_state_4" />
  46. </onentry>
  47. </state>
  48. <transition port="test_input" event="to_outer_2" target="../outer_2"/>
  49. </state>
  50. <state id="outer_2">
  51. <onentry>
  52. <raise port="test_output" event="in_outer_2" />
  53. </onentry>
  54. </state>
  55. </state>
  56. <history id="history_1" type="deep">
  57. </history>
  58. <transition port="test_input" event="exit" target="../next_to_parallel"/>
  59. </parallel>
  60. <state id="next_to_parallel">
  61. <onentry>
  62. <raise port="test_output" event="outside" />
  63. </onentry>
  64. <transition port="test_input" event="to_history_1" target="../parallel/history_1"/>
  65. </state>
  66. </scxml>
  67. </class>
  68. <test>
  69. <input>
  70. <event name="to_outer_1" port="test_input" time="0.0"/>
  71. <event name="to_outer_2" port="test_input" time="0.0"/>
  72. <event name="exit" port="test_input" time="0.0"/>
  73. <event name="to_history_1" port="test_input" time="0.0"/>
  74. </input>
  75. <expected>
  76. <slot>
  77. <event name="in_state_1" port="test_output"/>
  78. <event name="in_state_3" port="test_output"/>
  79. </slot>
  80. <slot>
  81. <event name="in_outer_1" port="test_output"/>
  82. </slot>
  83. <slot>
  84. <event name="in_outer_2" port="test_output"/>
  85. </slot>
  86. <slot>
  87. <event name="outside" port="test_output"/>
  88. </slot>
  89. <slot>
  90. <event name="in_outer_1" port="test_output"/>
  91. <event name="in_outer_2" port="test_output"/>
  92. </slot>
  93. </expected>
  94. </test>
  95. </diagram>