0
推荐
不知道图片为什么不显示???
1.首先是初始化状态,在第1行的结尾,当前状态时s211
2.在第2行,输入事件G。按照UML状态图,首先s211状态试图处理该事件,结果s211没有描述如何处理,将事件G向上给到s21。s21知道怎么处理,s21触发状态转移,此时进入状态s1,s1初始化后进入s11,此时在s11状态等待
3.内部转移
在第3行,输入事件I,s11不能处理,s11上传事件I给s1,s1处理了时间I。
4.自转移
在第4行,s11收到事件A,,s1有一个靠A事件触发的自转移。s1发生自转移后,最后状态又回到s11.
5.状态机带扩展变量
5.1
在第5行,输入事件D,s11处理事件D,但是变量me->foo此时是0,s11就没有处理D想上报给s1。
s1事件发现me->foo是0,可以处理,s1将me->foo赋值为1。触发状态转移到s,s又转入s11。
5.2 在第6行,输入事件D,s11的guard条件满足,将me->foo赋值为0,状态转移到s1,然后又到s11.
7. 在第7行,输入事件C,最后状态转移到s211.
8.在层次状态机中,同样的状态转移却会导致不同的退出动作
8.1
在第8行输入事件E,s211状态向上报,s状态处理该事件,最后状态为s11
8.2
在第9行输入事件E,s11向上报,s状态处理该事件,最后状态为s11
11.在内部状态转移时,演示guard条件。见11行和12行
|