为Linux应用构造有限状态机方法4

粉碎设备2020年06月25日

三、自动生成状态机 为实用的软件系统编写状态机并不是一件十分轻松的事情,特别是当状态机本身比较复杂的时候尤其如此,许多有过类似经历的程序员往往将其形容为"毫无创意"的过程,因为他们需要将大量的时间与精力倾注在如何管理好状态机中的各种状态上,而不是程序本身的运行逻辑。作为一种通用的软件设计模式,各种软件系统的状态机之间肯定会或多或少地存在着一些共性,因此人们开始尝试开发一些工具来自动生成有限状态机的框架代码,而在Linux下就有一个挺不错的选择──FSME(Finite State Machine Editor)。 图2 可视化的FSMEFSME是一个基于Qt的有限状态机工具,它能够让用户通过图形化的方式来对程序中所需要的状态机进行建模,并且还能够自动生成用C++或者Python实现的状态机框架代码。下面就以图1中城门的状态机为例,来介绍如何利用FSME来自动生成程序中所需要的状态机代码。 3.1状态机建模 首先运行fsme命令来启动状态机器,然后单击工具栏上" "New"按钮来创建一个新的状态机。FSME中用于构建状态机的基本元素一共有五种:事件(Event)、输入(Input)、输出(Output)、状态(State)和转换(Transition),在界面左边的树形列表中可以找到其中的四种。 状态建模 在FSME界面左边的树形列表中选择"States"项育碧目前正在致力于开发《刺客信条:胜利》的新功能创新异步交互玩法。,然后按下键盘上的Insert键来插入一个新的状态,接着在右下方的"Name"文本框中输入状态的名称,再在右上方的绘图区域单击该状态所要放置的位置,一个新的状态就创建好了。用同样的办法可以添加状态机所需要的所有状态。 图3 状态建模事件建模 在FSME界面左边的树形列表中选" "Events"项,然后按下键盘上的Insert键来添加一个新的事件,接着在右下方的"Name"文本框中输入事件的名称,再单击"Apply"按钮,一个新的事件就创建好了。用同样的办法可以添加状态机所需要的所有事件。 图4 事件建模状态转换是整个建模过程中最重要的一个部分,它用来定义有限状态机中的一个状态是如何切换到另一个状态的。例如,当用来控制城门的状态机处于Opened状态时,如果此时有Close事件产生,那么状态机的当前状态将切换到Closed状态价格从8美元到1600美元不等,这样一个完整的过程在状态机模型中可以用closeDoor这样一个转换来进行描述。

南宁白癜风医院
一岁半的孩子肚子胀
山东白癜病医院
相关阅读
广州市吉林大学技师学院携手“商汤”共育人工智能领域高技能人才

广州市有色金属技师大学紧紧围绕大写字母中国蓬勃发展策略性,抢抓粤港澳...

2024-04-08
职场内涵:像散步一样思考我们的职业目标

非常喜欢追剧的我们总能大大收获。《延禧攻略》不只有勾心斗角,它能让我...

2024-03-27
每经14点 | 国家医保局:继续降低乙型肝炎、核酸检测等价格;雄安新区为拟挂牌上市企业提供“一对一管

每经总编:陈鹏程 1丨雄安高新区为拟万科母该公司民营企业提供“PK管家式...

2024-01-12
蔚来成全球首家三地上市车企!中概股大留住,香港、新加坡竞逐激烈

之在此之前概股转至浪潮独自奔涌,蔚来(09866.HK;NIO.NYSE;NIO.SI)5年初20日登...

2024-01-08
紧接著汇总(Ⅲ)2022年高考真题&答案!丨持续更新ing

忘了 19:00,百年育才 挥音直播间,专业大咖谈起,悉心估分罗列高难度! 附...

2023-12-30
葡萄牙生活家的美德,发掘咖啡鲜为人知的绝妙用处! | 微课堂

在在是一年一度的招生季,想必勾起了不少果树的真情自述。不告诉他有多少...

2023-12-23
友情链接