掌桥专利:专业的专利平台
掌桥专利
首页

一种扩展状态机逻辑的方法、装置、存储介质和电子装置

文献发布时间:2023-06-19 11:42:32


一种扩展状态机逻辑的方法、装置、存储介质和电子装置

技术领域

本发明属于计算机控制技术领域,具体涉及一种扩展状态机逻辑的方法、装置、存储介质和电子装置。

背景技术

状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。状态机广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法——FMM--有限消息机,将复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点。同时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现。

现有技术中,状态机的逻辑是事先确定的,即在产品定义时就已经清楚的确定。运行时,遵循事先设定的逻辑,完整执行状态机的逻辑即可,期间不能对状态机的逻辑进行随意或灵活更改。

因此,当有外部的事件、动作和/或状态需要加入到状态机的逻辑中时,需要对状态机进行重新设定,重新编写程序,对状态机的设定和使用带来不便。

发明内容

为了解决上述状态机逻辑不能更改的技术问题,本发明提出了一种扩展状态机逻辑的方法、装置、存储介质和电子装置。

根据本发明的第一方面,提供一种扩展状态机逻辑的方法,所述方法包括:

获取基于待扩展的状态机逻辑任务的状态机逻辑调整描述文件;

获取状态机的状态机配置文件;

基于所述状态机逻辑调整描述文件和状态机的状态机配置文件生成状态机的当前执行逻辑集合。

进一步,所述方法还包括:基于所生成的状态机的当前执行逻辑集合,更新状态机的状态机配置文件。

进一步,所述待扩展的状态机逻辑任务包括至少一条待扩展的状态机逻辑信息,所述至少一条待扩展的状态机逻辑信息包括待扩展的状态机逻辑。

进一步,所述基于所述状态机逻辑调整描述文件和状态机的状态机配置文件生成状态机的当前执行逻辑集合的步骤为:在对应的基于状态机的状态机配置文件的状态机逻辑集合中,增加和/或删除所述状态机逻辑调整描述文件中的状态机逻辑。

进一步,所述至少一条待扩展的状态机逻辑信息还包括调整选项和待扩展的状态机名称,则所述基于所述状态机逻辑调整描述文件和状态机的状态机配置文件生成状态机的当前执行逻辑集合的步骤为:

根据所述状态机逻辑调整描述文件的待扩展的状态机逻辑信息中的待扩展的状态机名称,从多个状态机中获取与所述状态机名称对应的状态机的状态机配置文件;

从所获取的对应的状态机配置文件中得到状态机逻辑集合;

根据所述状态机逻辑调整描述文件的待扩展的状态机逻辑信息中的调整选项和待扩展的状态机逻辑,在所得到的状态机逻辑集合中增加和/或删除相应状态机逻辑。

进一步,所述待扩展的状态机逻辑为待新增的状态机逻辑,所述状态机逻辑包括当前状态、触发条件以及输出动作和次态中的至少一个,

当待新增的状态机逻辑中的至少一个状态是所述状态机配置文件的状态机逻辑集合中的已有状态时,在状态机配置文件的状态机逻辑集合中增加该待新增的状态机逻辑。

进一步,当待新增的状态机逻辑中的至少一个状态是所述状态机配置文件的状态机逻辑集合中的已有状态时,在状态机配置文件的状态机逻辑集合中增加该待新增的状态机逻辑的步骤包括:

获取待新增的状态机逻辑的当前状态;

判断所获取的当前状态是否是所述状态机配置文件的状态机逻辑集合中的已有状态;当所获取的当前状态是所述状态机配置文件的状态机逻辑集合中的已有状态时,基于已有状态增加待新增的状态机逻辑;当所获取的当前状态不是所述状态机配置文件的状态机逻辑集合中的已有状态时,则获取待新增的状态机逻辑的次态;

判断所获取的次态是否是所述状态机配置文件的状态机逻辑集合中的已有状态;当所获取的次态是所述状态机配置文件的状态机逻辑集合中的已有状态时,基于已有的状态增加待新增的状态机逻辑。

进一步,采用状态转移二维表格方式分析并生成状态机的当前执行逻辑集合,在状态转移二维表格中,第一行为包括多个状态的状态行,第一列为包括多个触发条件的触发条件列,所述状态行和所述触发条件列交叉形成多个单元格,在每个单元格中能够标记在对应状态下满足相应触发条件时所执行的动作和/或迁移的次态。

进一步,所述状态机逻辑的状态还包括有状态条件,当所述状态机逻辑的触发条件满足后,对当前状态的状态条件进行计算,根据状态条件计算结果的真或假,执行相同或不同的输出动作,和/或根据状态条件计算结果的真或假,进行状态机状态的迁移或不进行状态机状态的迁移,和/或在动作执行完成后,进行状态机状态的迁移或不进行状态机状态的迁移。

根据本发明的第二方面,提供一种扩展状态机逻辑的装置,所述装置包括处理器,所述处理器执行如上所述方法的计算机程序。

根据本发明的第三方面,提供一种存储介质,该存储介质中存储有执行如上所述方法的计算机程序,所述计算机程序被设置为运行时执行如上所述的扩展状态机逻辑的方法。

根据本发明的第四方面,提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如上所述的扩展状态机逻辑的方法。

本发明的有益效果:本发明实施例提出的扩展状态机逻辑的方法和装置,不需要固件升级,仅需要更新状态机配置文件即当前执行逻辑集合,即可对设备的状态机的状态机逻辑进行新增、删除、修改等操作,能够在状态机运行过程中进行,可以灵活的对状态机的逻辑进行更改。

附图说明

图1是本发明实施例提出的扩展状态机逻辑的方法的流程图;

图2是本发明实施例提出的扩展状态机逻辑的方法中调整状态机执行逻辑的流程图;

图3是应用本发明实施例的扩展状态机逻辑的方法增加状态机逻辑的操作示意图;

图4是应用本发明实施例的扩展状态机逻辑的方法增加状态机逻辑的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于附图和以下实施例。

根据本发明的第一方面,本发明实施例提出了一种扩展状态机逻辑的方法,如图1所示,包括:

在100中,获取基于待扩展的状态机逻辑任务的状态机逻辑调整描述文件;

在本发明实施例中,当需要对设备中的一个或多个状态机的执行逻辑进行调整时,相应的获取基于待扩展的状态机逻辑任务,在所述待扩展的状态机逻辑任务中包括至少一条待扩展的状态机逻辑信息。

所述待扩展的状态机逻辑信息为对一个状态机增加一条状态机逻辑,或删除一个状态机配置文件中已有的一条状态机逻辑。本领域技术人员可以理解,在要修改一个状态机配置文件中已有的一条状态机逻辑的情况下,只需要在基于状态机配置文件的状态机逻辑集合中删除该已有状态机逻辑并增加新的状态机逻辑即可。

因此,所述一条待扩展的状态机逻辑信息可以包括调整选项(增加/删除)、待扩展的状态机名称以及待扩展的状态机逻辑(本身)。所述状态机逻辑可以包括当前状态、触发条件、输出动作和次态。所述当前状态为控制对象当前所处的状态;触发条件又称为“事件”,当满足一个触发条件时,可以触发一个输出动作,和/或执行一次状态的迁移,迁移到次态,次态是相对于当前状态而言的,一旦转移到次态,次态就变成新的当前状态。

当对一个状态机增加一条状态机逻辑时,相应的待扩展的状态机逻辑信息中的调整选项为“增加”,待扩展的状态机名称例如为“编号01”,待扩展的状态机逻辑为待增加的状态机逻辑本身。

当删除一个状态机配置文件中已有的一条状态机逻辑时,相应的待扩展的状态机逻辑信息中的调整选项为“删除”,待扩展的状态机名称例如为“编号02”,待扩展的状态机逻辑为编号02的状态机的状态机配置文件中已有的一条状态机逻辑本身。

在本发明实施例中,基于包括至少一条待扩展的状态机逻辑信息的待扩展的状态机逻辑任务,生成状态机逻辑调整描述文件,所述状态机逻辑调整描述文件中同样包括有调整选项(增加/删除)、待扩展的状态机名称和待扩展的状态机逻辑等信息,针对待扩展的状态机逻辑任务中的每条待扩展的状态机逻辑信息进行了描述,说明了需要在哪个状态机上增加或删除特定的状态机逻辑,从而能够根据一个扩展的状态机逻辑任务中的多条待扩展的状态机逻辑信息,对设备中的多个状态机的执行逻辑进行调整。

本领域技术人员可以理解,如果所述待扩展的状态机逻辑任务仅是对特定状态机增加状态机逻辑,那么所述一条待扩展的状态机逻辑信息可以仅包括待扩展的状态机逻辑本身。

在200中,获取状态机的状态机配置文件;

状态机的状态机配置文件不能被随意改动。所述状态机的状态机配置文件中配置有状态机的固有的要执行的状态机逻辑集合,是例如通过状态机配置工具初始设定的。

获取设备中全部状态机的状态机配置文件,通过状态机名称能够查找到相应状态机的状态机配置文件。

需要说明的是,获取状态机的状态机配置文件可以在获取基于待扩展的状态机逻辑任务的状态机逻辑调整描述文件之前或之后,均能够实现本发明的目的。

在300中,基于所述状态机逻辑调整描述文件和状态机的状态机配置文件,生成状态机的当前执行逻辑集合。

根据所述状态机逻辑调整描述文件,在所述状态机配置文件的状态机逻辑集合中删除和/或增加状态机逻辑,生成状态机的当前执行逻辑集合。具体的,基于状态机的状态机配置文件获取状态机执行的状态机逻辑集合,例如可以生成状态转移图或二维表格;根据所述状态机逻辑调整描述文件,确定需要增加和/或删除的状态机逻辑,在基于状态机的状态机配置文件的状态机逻辑集合中增加或删除相应状态机逻辑后,得到状态机的当前执行逻辑集合,由状态机执行。可选择的,可以基于状态机的当前执行逻辑集合,更新状态机的状态机配置文件,灵活的对状态机的逻辑进行更改。

图2示出了本发明的优选实施例的调整状态机执行逻辑的流程图,其中设备包括多个状态机,根据一个扩展的状态机逻辑任务中的多条待扩展的状态机逻辑信息,对设备中的多个状态机的执行逻辑进行调整,所述待扩展的状态机逻辑信息还包括调整选项和待扩展的状态机名称。

在301中,根据所述状态机逻辑调整描述文件的待扩展的状态机逻辑信息中的待扩展的状态机名称,从多个状态机中获取与所述状态机名称对应的状态机的状态机配置文件;

根据所述状态机逻辑调整描述文件中的待扩展的状态机名称,在已获取的设备的多个状态机的状态机的状态机配置文件中进行查找,找到对应状态机的状态机配置文件。

在302中,从所获取的对应的状态机配置文件中得到状态机逻辑集合;

从所获取到的状态机配置文件中得到供状态机执行的所有逻辑,可以生成状态转移图或二维表格。

在303中,根据所述状态机逻辑调整描述文件的待扩展的状态机逻辑信息中的调整选项和待扩展的状态机逻辑,在所得到的状态机逻辑集合中增加和/或删除相应状态机逻辑,得到状态机的当前执行逻辑集合。

其中,对于删除状态机逻辑的操作,需要在所获取的状态机逻辑集合中删除所述状态机逻辑调整描述文件中记录的待删除的状态机逻辑。对于增加状态机逻辑的操作,需要在所获取的状态机逻辑集合中相应的增加所述状态机逻辑调整描述文件中记录的待增加的状态机逻辑。

本发明实施例的上述方法,不需要固件升级,仅需要更新状态机的当前执行逻辑集合,即可对设备的状态机的状态机逻辑进行新增、删除、修改等操作,能够在状态机运行过程中进行。

在本发明的一种实施方式中,如图3所示,基于包括有待新增的状态机逻辑信息的一个待扩展的状态机逻辑任务,使用状态机配置工具生成状态机逻辑调整描述文件,所述状态机逻辑调整描述文件针对待扩展的状态机逻辑任务中的待新增的状态机逻辑信息进行描述,说明需要在哪个状态机上增加特定的状态机逻辑;并且,当增加的状态机逻辑中包括设备中没有的功能函数时,状态机配置工具通过新增函数接口来调用相关功能函数,配置在状态机逻辑调整描述文件中。状态机的状态机配置文件是通过状态机配置工具初始设定的。状态机执行器根据所述状态机逻辑调整描述文件,在所述状态机配置文件的状态机逻辑集合中增加待新增的状态机逻辑,生成状态机的当前执行逻辑集合,并基于所生成的状态机的当前执行逻辑集合,调用相关功能函数,执行逻辑。

其中,在所述状态机配置文件的状态机逻辑集合中增加待新增的状态机逻辑步骤中,获取待新增的状态机逻辑中的状态,包括当前状态和次态(如果有),在所获取的至少一个状态是所述状态机配置文件的状态机逻辑集合中已有的状态时,增加待新增的状态机逻辑,优选的采用如下方式进行,如图4所示。

在3031中,获取待新增的状态机逻辑的当前状态;

待新增的状态机逻辑包括当前状态、触发条件以及输出动作和次态中的至少一个,即,待新增的状态机逻辑包括当前状态、触发条件以及输出动作,或者包括当前状态、触发条件以及次态,或者包括当前状态、触发条件、输出动作和次态。

在3032中,判断所获取的当前状态是否是所述状态机配置文件的状态机逻辑集合中已有的状态;

在3033中,当所获取的当前状态是所述状态机配置文件的状态机逻辑集合中已有的状态时,基于已有的状态增加待新增的状态机逻辑;

在本发明的优选实施例中,采用状态转移二维表格方式分析并生成状态机的当前执行逻辑集合,在状态转移二维表格中,第一行为包括多个状态的状态行,第一列为包括多个触发条件的触发条件列,所述状态行和所述触发条件列交叉形成多个单元格,在每个单元格中能够标记在对应状态下满足相应触发条件时所执行的动作和/或迁移的次态。

在基于状态机的状态机配置文件获取以状态转移二维表格表示的状态机逻辑集合中,例如,所述状态机逻辑集合中已有的状态包括状态S1、状态S2和状态S3,待新增的状态机逻辑为当发生新增触发条件C时从状态S1迁移到状态S2,则在状态转移二维表格的已有状态S1中增加一行新的触发条件的项目,如下表所示。

如果待新增的状态机逻辑为当发生新增触发条件D时从状态S3迁移到状态S4,待新增的状态机逻辑的次态S4不是所述状态机逻辑集合中已有的状态,则增加相应的次态,即在表中增加“状态S4”的列,并在状态转移二维表格中增加一行新的触发条件的项目,如下表所示。

当然,本领域技术人员可以理解,作为选择项,在待新增的状态机逻辑的次态S4不是所述状态机逻辑集合中已有状态的情况下,系统报错,不新增该状态机逻辑。

在3034中,当所获取的当前状态不是所述状态机配置文件的状态机逻辑集合中已有的状态时,则获取待新增的状态机逻辑的次态;

在3035中,判断所获取的次态是否是所述状态机配置文件的状态机逻辑集合中已有的状态;

在3036中,当所获取的次态是所述状态机配置文件的状态机逻辑集合中已有的状态时,基于已有的状态增加待新增的状态机逻辑;

在基于状态机的状态机配置文件获取以状态转移二维表格表示的状态机逻辑集合中,例如,所述状态机逻辑集合中已有的状态包括状态S1、状态S2和状态S3,待新增的状态机逻辑为当发生新增触发条件E时从状态S5迁移到状态S3,则在表中“状态S3”列之前增加“状态S5”的列,并在状态转移二维表格中增加一行新的触发条件的项目,如下表所示。

在3037中,当所获取的次态不是所述状态机配置文件的状态机逻辑集合中已有的状态时,则报错;

使用状态转移二维表格分析工具,能够清楚描述状态的逻辑,灵活方便;通过合理的引导,简化了新增状态的上下关联操作;能够对状态机进行子表分割,保证业务的模块化;有利于判断状态机是否会处于阻塞状态。

在本发明的优选实施例中,与现有技术相比,本发明实施例的状态机逻辑的状态S1、S2、……还进一步包括有各自的状态条件,当所述状态机逻辑的触发条件满足后,对当前状态的状态条件进行计算,根据状态条件计算结果的真或假,执行相同或不同的输出动作,如真动作或假动作,和/或根据状态条件计算结果的真或假,进行状态机状态的迁移或不进行状态机状态的迁移,和/或在动作执行完成后,进行状态机状态的迁移或不进行状态机状态的迁移,从而能够灵活的根据状态条件的计算结果,选择迁移到不同的次态,如下表。

在上表的示例中,在满足触发条件F的情况下,计算状态S1的状态条件,当状态S1的状态条件的计算结果为真时,执行真动作,并在真动作执行完成后迁移到状态S2;当状态S1的状态条件的计算结果为假时,执行假动作,并在假动作执行完成后迁移到状态S3。值得注意的是,此处的动作可以为空,则当真动作或假动作为空时,相当于不会有动作的执行,直接根据状态计算结果就可以进行状态迁移。

在满足触发条件G的情况下,计算状态S2的状态条件,当状态S2的状态条件的计算结果为真时,执行真动作,并在真动作执行完成后迁移到状态S1;当状态S2的状态条件的计算结果为假时,执行假动作,判断到假动作执行完后的次态仍为S2,因此不做状态迁移。

在满足触发条件H的情况下,计算状态S1的状态条件,当状态S1的状态条件的计算结果为真时,执行真动作,并在真动作执行完成后迁移到状态S2;当状态S1的状态条件的计算结果为假时,执行假动作,执行假动作,并在真动作执行完成后迁移到状态S1。

根据本发明的第二方面,本发明实施例还提出一种扩展状态机逻辑的装置,所述装置包括处理器,所述处理器执行如前所述方法的计算机程序。

根据本发明的第三方面,本发明实施例还提出一种存储介质,该存储介质中存储有执行如上所述方法的计算机程序,所述计算机程序被设置为运行时执行如上所述的扩展状态机逻辑的方法。

根据本发明的第四方面,本发明实施例还提出一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如上所述的扩展状态机逻辑的方法。

本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。

计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上,对本发明的实施方式进行了说明。但是,本发明不限定于上述实施方式。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种扩展状态机逻辑的方法、装置、存储介质和电子装置
  • 一种动画状态机的实现方法、装置、存储介质和电子装置
技术分类

06120113023324