[发明专利]状态机的实现方法和装置在审
申请号: | 201510530765.0 | 申请日: | 2015-08-26 |
公开(公告)号: | CN105138332A | 公开(公告)日: | 2015-12-09 |
发明(设计)人: | 钟灿 | 申请(专利权)人: | 上海联影医疗科技有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 骆希聪 |
地址: | 201807 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 状态机 实现 方法 装置 | ||
技术领域
本发明涉及状态机,尤其是涉及一种状态机的实现方法和装置。
背景技术
现有的状态机实现一般有过程模式和状态对象模式两种。
过程模式一般通过条件判断的方式对状态进行划分,判断得到具体状态后,再在该判断分支内对事件进行判断,确定响应的转换动作。这种模式的缺点包括:代码复用性差;状态的退出和进入在多个转换动作中都必须重写;增加或修改一个状态时需要修改多个判断分支,可维护性差;对于复杂的系统,存在大量的状态和时间,代码量庞大,维护困难等。
状态对象模式则是将一个特定的状态用一个状态对象封装起来,并将事件和转换等作为对象的方面来描述,解决了过程模式需要大量判断分支的情况。通过对象封装可以很容易增加一个状态。这种方法的缺陷在于:每增加一个事件或改变一个转换,都可能影响多个类;对于复杂的系统,状态对象的数量也很庞大,可维护性仍不高;对象中的转换方法也很难在其他状态对象中复用。
发明内容
本发明所要解决的技术问题是提供一种可动态配置的状态机的实现方法和装置,
本发明为解决上述技术问题而采用的技术方案是提供一种状态机的实现方法,包括状态机生成流程,其包括以下步骤:获取用于生成状态机的配置文件,该配置文件描述每个状态的标识以及对各个事件的响应信息和状态转换信息,且描述多个状态间的层级关系;根据该配置文件生成状态机;以及提供一响应功能集模块,该响应功能集模块包含该状态机中的响应信息所对应的响应功能。
可选地,获取用于生成状态机的配置文件和根据该配置文件生成状态机的步骤是在一状态机引擎中执行,该状态机引擎与该响应功能集模块相互独立。
可选地,该状态机生成流程还包括:提供一数据池,该数据池包含该响应功能集模块的各响应功能需要共享的数据。
可选地,该数据池具有统一的数据访问接口。
可选地,该数据池具有实时访问的加密接口。
可选地,上述方法还包括离线调试流程,其包括以下步骤:打开指定的配置文件;生成需要调试的状态机;呈现该配置文件中所记录的事件;将调试者选择的事件传入该状态机,驱动该状态机运行;以及获得及呈现当前状态的列表。
可选地,上述方法还包括实时调试流程,其包括以下步骤:从运行的状态机中实时读取数据;以及呈现所读取的数据。
本发明还提出一种状态机的实现装置,包括状态机引擎和响应功能集模块。状态机引擎配置为获取用于生成状态机的配置文件,及根据该配置文件生成状态机,该配置文件描述每个状态的标识以及对各个事件的响应信息和状态转换信息,且描述多个状态间的层级关系。响应功能集模块包含该状态机中的响应信息所对应的响应功能。
可选地,该状态机引擎与该响应功能集模块相互独立。
可选地,上述装置还包括一数据池,该数据池包含该响应功能集模块的各响应功能需要共享的数据。
可选地,该数据池具有统一的数据访问接口。
可选地,该数据池具有实时访问的加密接口。
可选地,上述装置还包括离线调试工具,其配置为执行以下步骤:打开指定的配置文件;生成需要调试的状态机;呈现该配置文件中所记录的事件;将调试者选择的事件传入该状态机,驱动该状态机运行;以及获得及呈现当前状态的列表。
可选地,上述装置还包括实时调试工具,其配置为执行以下步骤:从运行的状态机中实时读取数据;以及呈现所读取的数据。
与现有技术相比,本发明可提供可动态配置的状态机架构,开发人员不需要通过使用对象来封装状态、事件和转换动作,只需通过配置文件描述状态机中的状态结构,定义每个状态的信息和转换动作。根据配置文件能够生成产生开发人员定义的状态机。本发明解决了现有状态机实现模式的复杂度,提高了状态机架构的复用性和可维护性。
附图说明
图1是根据本发明一实施例的状态机实现装置的结构框图;
图2是根据本发明一实施例的配置文件架构实例;
图3是根据本发明一实施例的响应功能集模块实例;
图4是根据本发明一实施例的状态机实例;
图5是根据本发明另一实施例的状态机实现装置的结构框图;
图6是根据本发明一实施例的离线调试工具示意图;
图7是根据本发明一实施例的实时调试工具示意图;
图8是根据本发明一实施例的状态机实现方法流程图;
图9是根据本发明另一实施例的状态机实现方法流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海联影医疗科技有限公司,未经上海联影医疗科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510530765.0/2.html,转载请声明来源钻瓜专利网。