状况机是一种最为经典的程序设计形式,在LabVIEW 7.1(含)之前它简直统治了大部分的LabVIEW主程序。最根本的状况机结构如图 1所示。状况是状况机运转的经脉,在开端运用状况机形式编撰程序时需求将运用分为若干个状况。下面以图中的运用为例阐明根本状况机的运用。
前面板具有3个按钮(Control)和1个波形显现控件Chart(Indicator),功用分别是:
- 开端收集:Label是start,单击后开端进行模仿数据收集程序(这儿运用随机数替代)。
- 关于:Label是dialog,单击后弹出对话框以阐明这个程序的版权、协助等信息。
- 间断:Label是stop,单击后间断程序的运转。
- Chart:用于显现获取的随机数。
这是一个十分简略的运用,可是具有必定的代表性。依据要求,该运用至少包括以下5种状况结构。
- Initial:初始化状况;
- Idle:闲暇状况,用于呼应各种用户界面操作;
- acquire:收集状况,用于持续模仿收集数据;
- about:用于弹出关于和协助对话框;
- stop:间断状况,退出循环并间断程序。
- 背面板
- 前面板
图 1 根本的状况机结构背面板
仔细分析图中的根本状况机,能够看出状况一直贯穿整个运用程序,并由移位存放器进行值的存放和传递。当时状况分支的成果将决议下一个状况,如图中的Idle状况。在这个状况中,程序将自动检测前面板的三个按钮是否被按下。假如start被按下,则进入acquire状况;假如dialog被按下,则进入about状况;假如stop被按下,则进入stop状况;不然假如没有任何按钮被按下,则依然进入当时的Idle状况持续检测。
从运用1能够看出,根本状况机形式大体上能够满意主程序结构的需求。该形式能够很好地使得运用程序的各个功用以状况的方法有次序地履行,而且确保了程序的可读性(以状况图的方法显现明晰明晰)和扩展性(日后只需求扩展状况即可扩展相应的功用)。
案例中运用的是“string”型结构来符号状况,事实上也能够运用其它的数据类型替换,如ring、numeric或enum。从严厉含义而言,ring并不归于一种数据类型,它仅仅一种特别的numeric性,其性质与numeric根本上相同。虽然ring与enum控件从外观上看是相同的,如图 2所示,可是它们实质上是不同的。首要体现为以下7点。