12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?xml version="1.0" ?>
- <diagram author="Glenn De Jonghe" name="TestHistoryParallelDeep">
- <description>
- Testing history deep.
- </description>
- <outport name="test_output" />
- <class name="Class1" default="true">
- <scxml>
- <parallel id="parallel">
- <state id="orthogonal" initial="wrapper">
- <parallel id="wrapper">
-
- <state id="state_1" initial="inner_1">
- <state id="inner_1">
- <transition event="to_inner_2" target="../inner_2"/>
- </state>
- <state id="inner_2"/>
- </state>
-
- <state id="state_2" initial="inner_3">
- <state id="inner_3">
- <transition event="to_inner_4" target="../inner_4"/>
- </state>
- <state id="inner_4"/>
- </state>
-
- <history id="history" type="deep"/>
-
- <transition event="to_outer" target="../outer"/>
- </parallel>
- <state id="outer">
- <transition event="to_history" target="../wrapper/history"/>
- </state>
- </state>
-
-
-
- <state id="orthogonal_tester" initial="start">
- <state id="start">
- <transition target="../step1">
- <raise event="to_inner_2" />
- <raise event="to_inner_4" />
- </transition>
- </state>
- <state id="step1">
- <transition cond="INSTATE('/parallel/orthogonal/wrapper/(state_2/inner_4,state_1/inner_2)')"
- target="../step2">
- <raise port="test_output" event="check1" />
- <raise event="to_outer" />
- </transition>
- </state>
- <state id="step2">
- <transition cond="INSTATE('/parallel/orthogonal/outer')" target="../step3">
- <raise port="test_output" event="check2" />
- <raise event="to_history" />
- </transition>
- </state>
- <state id="step3">
- <transition cond="INSTATE('/parallel/orthogonal/wrapper/(state_2/inner_4,state_1/inner_2)')" target="../end">
- <raise port="test_output" event="check3" />
- </transition>
- </state>
- <state id="end"/>
- </state>
- </parallel>
- </scxml>
- </class>
- <test>
- <expected>
- <slot>
- <event name="check1" port="test_output"/>
- </slot>
- <slot>
- <event name="check2" port="test_output"/>
- </slot>
- <slot>
- <event name="check3" port="test_output"/>
- </slot>
- </expected>
- </test>
- </diagram>
|