我正在设计一个状态机,并且有一个特定的状态,我可以从两个不同的状态进入...我不知道如何回到以前的状态......或者我的模型是错误的?
说明:
| state | trigger | nextstate --------------------------------- 1. | initial | evtX | A 2. | initial | evtY | B 3. | B | evtX | A 4. | A | evtZ | ????
最后一行是我遇到麻烦的地方。我需要转换到初始状态,如果A从第1行的过渡点到达,我需要转换到状态B,如果A从第3行的转换到达。
我如何更好地建模?
答案 0 :(得分:1)
事实上,你有两种不同的A状态:
| state | trigger | nextstate
---------------------------------
1. | initial | evtX | A1
2. | initial | evtY | B
3. | B | evtX | A2
4. | A1 | evtZ | initial
4. | A2 | evtZ | B
如果你想要更强大的东西,可以试试Harel / UML状态图(它有'超级,正交区域和活动作为状态的一部分“[1])。你可能会看到SCXML作为weel [2]我不知道他们中的任何一个。
[1] http://en.wikipedia.org/wiki/Harel_statechart#Harel_statechart