parallel_history_2.xml 3.9 KB

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