如何设计状态机

时间:2018-03-13 20:12:08

标签: state-machine

我希望有人可以帮我正确设计这个状态机。我在这个项目中使用Spring状态机和Papyrus。我有很多简单的正交状态和一种“主”状态,它取决于所有其他状态“开启”。所以,让我们说......

M.off -> M.on
A.off -> A.on
B.off -> B.on
C.off -> C.on

有些事件会触发从A.off到A.on,B.off到B.on等的过渡。我将这些(A,B,C)中的每一个都放在自己的区域中。只有当A B和C都处于“开”位置时,我才想转换到M.on状态。

我不确定在状态机中构建它的最佳方法。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

我不知道Spring Statemachine的细节。但是对于一个UML状态机,一个解决方案是在所有区域都在他们的" on"状态。

从问题中不清楚当A,B或C在M" on"时关闭时会发生什么。假设:M进入" off"。

为了使/保持这个简单,我将历史伪状态添加到每个区域,以便记住哪些区域是" on"每当有人去"关闭"。

Quote

当输入转换的源状态的全部处于活动状态时,将触发到连接的转换(因此,仅当A&& B& C& C为" on&时#34;。)