上一篇文章说了说标准状态机,这种模型在自动测试系统(ATS)和自动控制系统(ACS)的编程应用中应用非常方便。因为在ATS和ACS系统运行的过程中几乎不需要与用户互动,只要按照事先设定好的逻辑来判断程序的走向,直到程序结束。但是,在大部分桌面应用和部分工业应用中,程序都需要和用户互动。比如说,需要用户输入参数、下达命令甚至判断程序走向。
     如果程序的用户互动环节比较多,用标准状态机来实现就回比较困难,即使实现了也会使程序代码臃肿、结构混乱。
     那么如何来方便的实现状态机与用户互动的完美结合呢?那就要用到状态机的一个变种——事件状态机。
     与标准状态机相比,事件状态机要稍微复杂一些。他们都包含一个While循环,所不同的是移位寄存器和条件结构换成了 用户定义事件事件结构
      下面这个黑白棋的小程序就使用了这种事件状态机的设计模型。
程序界面:
LabVIEW设计模型——事件状态机_第1张图片
 
主VI:
LabVIEW设计模型——事件状态机_第2张图片
 
注册状态事件子VI:
LabVIEW设计模型——事件状态机_第3张图片
 
附件中提供了源程序以供参考,此程序为个人学习LabVIEW而做,如需它用请与作者联系。联系方式在程序框图中。