我正在尝试理解scxml转换目标状态集。下面是我的一些示例代码:
<parallel id="p">
<state id="A" initial="A1">
<state id="A1">
<transition event="test" target="B2" />
</state>
<state id="A2" />
</state>
<state id="B" initial="B1">
<state id="B1" />
<state id="B2" />
</state>
<state id="C" initial="C1">
<state id="C1" />
<state id="C2" />
</state>
</parallel>如果P、A、A1、B、B1、C和C2当前处于活动状态。现在事件“测试”即将到来,因此转换将发生到目标状态"b2“1)基于状态图XML (SCXML)的3.13节:用于控件抽象的状态机表示法,祖先状态A和P将受到影响。2)如果所有状态都已退出并在P处重新进入,则set P、A、A1、B、B2、C和C1为活动状态或set P、A、A1、B、B2、C和C2为活动状态?(因为c2在转换“测试”发生之前是活动的)
发布于 2018-06-28 18:07:54
退出集由源状态和目标状态的LCCA的适当后代的所有活动状态组成。这意味着所有状态都将退出,包括P,因为LCCA必须是a,而不是a
进入集合由转换的完整目标集合的所有成员组成,一旦退出集合中的状态被退出,这些成员将不会处于活动状态。
由于退出后没有活动状态,因此入口集合是B2,这是在转换的目标中指定的,并且是两个缺省状态A1和C1。在退出之前,没有关于哪些状态处于活动状态的“记忆”。
所以"P,A,A1,B,B2,C和C1“是正确的答案。
https://stackoverflow.com/questions/51066974
复制相似问题