FSM与State模式在某试验台测控系统中的应用研究
2018-08-21夏京川段从武宋国堃赵世平
机械制造与自动化 2018年4期
夏京川,段从武,宋国堃,赵世平
(四川大学 制造科学与工程学院,四川 成都 610065)
0 引言
在某试验台测控系统中,根据试验要求,存在多个中间状态并且相互之间有复杂的转换关系,确定不同输入条件下测控系统状态迁移过程以及内部切换模式,是设计该系统软件的关键。本文根据FSM原理,对系统中对象的控制和顺序视图进行了建模,并且采用State模式,将状态转换显示化,与不同状态的行为进行隔离,极大地提高了软件设计的可靠性与复用性。
1 FSM与State模式简介
1.1 FSM原理
FSM(finitestatemachine)是包含有限状态的概念化机器,状态机在某一个时刻只有一个状态,通常由输入事件引起状态的改变,而下一个状态则依赖于当前状态和输入事件[1]。其中,状态表示一种可识别、存在于一段时间间隔内的情况;事件是在某一个时间点发生的事情,具有原子性且在概念上无持续;动作是与状态转换相关的可选输出,动作执行计算,作为状态转换的结果;警戒条件是值为真或假的布尔表达式,可以对事件进行验证[2]。一个典型的微波炉有限状态机系统如图1所示[3]。

图1 微波炉系统FSMUML图示例
1.2 State模式
简单的FSM可以使用switch/case语句来实现,然而此时FSM的逻辑和实现动作的代码之间没有分离,难以达到代码的复用和有效维护。状态迁移表是实现FSM的另一种途径,通过一个处理事件的引擎,查找与事件匹配的转换,调用相应的动作,并更改状态[4]。但对于大型FSM,状态迁移表的查找会耗费大量时间,导致效率低下。……
登录APP查看全文
