NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

新手上路如何在状态机中实现子状态

已解决!
转到解答

高兴表情新手上路,请多关照。谢谢。

请问如何在状态机中实现子状态??

0 项奖励
1 条消息(共 5 条)
4,957 次查看

是希望在状态机里面加一个状态是么?我理解错没有?

 

如果加一个状态就对里面的条件结构加一个分支就可以了。希望问题能问得再明白一点

0 项奖励
2 条消息(共 5 条)
4,933 次查看
是状态的层次结构。一个父状态可以包含几个子状态。当父状态执行时,某一子状态执行;当父状态不执行时,所以子状态均不能执行。 就是在一个状态中再嵌套状态机。有什么实现方法呢??谢谢了。
0 项奖励
3 条消息(共 5 条)
4,919 次查看

听上去你自需要在状态机某个分支里,也就是某个条件分支里再套一个条件分支就可以了对么?

外面的状态执行到的时候里面某一个状态会执行,外面的不执行,里面所有的都不会被执行

0 项奖励
4 条消息(共 5 条)
4,913 次查看
解答
已被主题作者 Orange125 接受

在古典型状态机中,您所说的子状态完全可以定义成主状态中的一个状态。至于主状态不执行,则子状态不执行,由于状态的执行时某一时刻仅能执行一种状态,本身就能满足这个要求。

 

有些情况下,需要状态机的嵌套,前提是嵌套的状态机中的状态是多个状态中的共有状态。比如一般可以把一个状态分为

"进入状态、执行状态和离开状态”,其中进入状态和离开状态都是瞬时的,仅执行一次。在进入状态时做一些初始化工作,在离开状态时做一些复位工作,并转入另外状态。

对于多个状态中的共有状态,采用子状态处理是非常合适的,可以极大地减少主状态的数量。但是如果各个子状态均不相同,还是转化成主状态比较合理。

 

上述的子状态比较容易实现,无非是通过移位寄存器保存子状态的枚举,这和主状态实现机理相同。

陈树学
QQ:276509891 .
EMAIL:CSXCS_366@126.COM
qq群:78561268 80754347 37591940
http://labview.weebly.com/
新书《LabVIEW实用工具详解》已经发售,敬请关注。
5 条消息(共 5 条)
4,863 次查看