状态机控制方法、装置和电子设备制造方法及图纸

技术编号:35904592 阅读:15 留言:0更新日期:2022-12-10 10:42
本申请提出一种状态机控制方法、装置和电子设备,该方法包括:创建状态机的多个状态,确定每个状态的基本属性和行为属性,基本属性包括:状态的状态名、状态的父状态、状态的类型、状态的历史状态;行为属性包括:入口动作、出口动作、活动处理、事件处理;根据多个状态中每个状态的基本属性,构造多个状态对应的树状结构模型;相同父状态的状态属于树状结构模型的同一级;响应于状态机接收到事件,控制状态机根据树状结构模型和每个状态的行为属性处理接收到的事件。收到的事件。收到的事件。

【技术实现步骤摘要】
状态机控制方法、装置和电子设备


[0001]本申请属于计算机应用
,具体的涉及状态机控制方法、装置和电子设备。

技术介绍

[0002]有限状态机(Finite

state machine,FSM),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程、编译器、网络协议、计算与语言的研究。
[0003]在相关技术中,状态机控制方法采用分支逻辑法、状态转移表法、状态模式法,在这些方法基础上,使用一些处理手段有时可达到具有历史状态特征和层次化特征的目标,然而,这些处理手段需要与具体应用场景相关联,状态机的实现逻辑复杂,不具有通用性、可读性、可扩展性,无法有效应对具有历史状态和层次化特征的复杂场景。因此,如何降低状态机软件系统逻辑实现的复杂度成为亟待解决的重要问题。

技术实现思路

[0004]为了弥补现有技术的不足,本申请提出了一种状态机控制方法、装置和电子设备。
[0005]第一方面,本申请提供一种状态机控制方法,包括:创建状态机的多个状态,确定每个所述状态的基本属性和行为属性,所述基本属性包括:状态的状态名、状态的父状态、状态的类型、状态的历史状态;所述行为属性包括:状态的入口动作、状态的出口动作、状态的活动处理、状态的事件处理;根据所述多个状态中每个状态的基本属性,构造所述多个状态对应的树状结构模型;相同父状态的状态属于所述树状结构模型的同一级;控制所述状态机根据所述树状结构模型和所述每个状态的行为属性处理所述接收到的事件。
[0006]在上述方案中,实现了创建状态机的状态以及构造对应的树状结构模型,从而实现了具有树状结构模型的状态机,由于提出了具有历史状态的层次化状态机模型,因此使得状态机软件代码与状态图中的模型实现对应,利用状态图的可视化特征,提升了软件代码的清晰性和可读性,大大降低了状态机软件系统逻辑实现的复杂度。
[0007]在一个实施例中,所述根据所述多个状态中每个状态的父状态,构造所述多个状态对应的树状结构模型,包括:确定所述多个状态中每个状态的父状态;按照父状态和子状态的关系,将所述多个状态中相同父状态的状态确定为所述树状结构模型的同一级;从上至下依次构造所述多个状态对应的树状结构模型。
[0008]在上述方案中,解决了如何构造树状结构模型的技术问题,实现了根据父子关系从上到下有层次的树状结构模型。
[0009]在一个实施例中,所述控制所述状态机根据所述树状结构模型和所述每个状态的行为属性处理所述接收到的事件,包括:确定所述树状结构模型中从顶层到初始状态的分支中的各个状态,从上至下依次激活分支中的各个状态;所述初始状态属于所述多个状态
中的简单状态;将所述接收到的事件发送至激活的简单状态处理,若激活的简单状态未消费所述接收到的事件,则将所述接收到的事件流转到第i状态处理;所述第i状态为所述简单状态的父状态;若所述简单状态的父状态未消费所述接收到的事件则将所述接收到的事件继续流转到第i+1状态处理,直到所述接收到的事件被消费;所述第i+1状态为所述第i状态的父状态。
[0010]在上述方案中,解决了具有树状结构模型的状态机如何处理事件的技术问题,实现了根据树状结构模型进入状态,以及状态机接收到事件后根据树状结构模型将事件发送至状态进行处理,树状结构模型的状态机可以呈现状态机的进入状态、状态间的事件流转关系,降低了状态机软件系统逻辑实现的复杂度。
[0011]在一个实施例中,所述控制所述状态机根据所述树状结构模型和所述每个状态的行为属性处理所述接收到的事件,包括:响应于当前状态消费了所述接收到的事件,若当前状态为简单状态,则直接退出所述当前状态;响应于当前状态消费了所述接收到的事件,若当前状态为复合状态,则在所述复合状态的子状态中确定处于激活状态的简单状态;从所述处于激活状态的简单状态开始依次向上退出,直到退出所述当前状态。
[0012]在上述方案中,解决了具有树状结构模型的状态机中如何退出状态的技术问题,实现了根据树状结构模型退出状态,树状结构模型的状态机使得状态退出过程清晰、降低了状态机软件系统逻辑实现的复杂度。
[0013]在一个实施例中,所述控制所述状态机根据所述树状结构模型和所述每个状态的行为属性处理所述接收到的事件,还包括:退出具有深历史状态的复合状态时,依次记录具有深历史状态的复合状态的每一层中态处于激活状态的子状态直到底层的简单状态;退出具有浅历史状态的复合状态时,记录具有浅历史状态的复合状态的当前层处于激活状态的子状态。
[0014]在上述方案中,解决了具有树状结构模型的状态机中复合状态如何退出的技术问题,树状结构模型的状态机使得复合状态退出时可以清晰记录历史状态,降低了状态机软件系统逻辑实现的复杂度。
[0015]在一个实施例中,所述控制所述状态机根据所述树状结构模型和所述每个状态的行为属性处理所述接收到的事件,包括:响应于当前状态消费了所述接收到的事件,若目标状态是同一级的简单状态,则直接激活所述目标状态;所述目标状态为所述当前状态要进入的状态;响应于当前状态消费了所述接收到的事件,若目标状态是同一级的复合状态,将要进入的复合状态上一次退出前激活的子状态确定为目标状态;在树状结构模型中确定从要进入的复合状态到目标状态的分支,从要进入的复合状态开始依次向下激活分支中的各个状态。
[0016]在上述方案中,解决了具有树状结构模型的状态机中如何进入状态的技术问题,实现了根据树状结构模型进入状态,树状结构模型的状态机使得状态进入过程清晰、降低了状态机软件系统逻辑实现的复杂度。
[0017]在一个实施例中,所述控制所述状态机根据所述树状结构模型和所述每个状态的行为属性处理所述接收到的事件,还包括:在激活所述多个状态中的简单状态后,执行处于激活状态的简单状态的活动处理;在激活所述多个状态中的复合状态后,从激活的复合状态开始依次向下,执行每一层中态处于激活状态的子状态的活动处理,直到底层的简单状
态。
[0018]在上述方案中,解决了具有树状结构模型的状态机中进入状态后如何执行活动处理的技术问题,树状结构模型的状态机使得进入状态后执行活动处理的过程清晰、降低了状态机软件系统逻辑实现的复杂度。
[0019]第二方面,本申请提供一种状态机控制装置,包括:
[0020]创建模块,用于创建状态机的多个状态,确定每个所述状态的基本属性和行为属性,所述基本属性包括:状态的状态名、状态的父状态、状态的类型、状态的历史状态;所述行为属性包括:状态的入口动作、状态的出口动作、状态的活动处理、状态的事件处理;
[0021]构造模块,用于根据所述多个状态中每个状态的基本属性,构造所述多个状态对应的树状结构模型;相同父状态的状态属于所述树状结构模型的同一级;
[002本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种状态机控制方法,其特征在于,所述方法包括:创建状态机的多个状态,确定每个所述状态的基本属性和行为属性,所述基本属性包括:状态的状态名、状态的父状态、状态的类型、状态的历史状态;所述行为属性包括:状态的入口动作、状态的出口动作、状态的活动处理、状态的事件处理;根据所述多个状态中每个状态的基本属性,构造所述多个状态对应的树状结构模型;相同父状态的状态属于所述树状结构模型的同一级;响应于所述状态机接收到事件,控制所述状态机根据所述树状结构模型和所述每个状态的行为属性处理所述接收到的事件。2.根据权利要求1所述的方法,其特征在于,所述根据所述多个状态中每个状态的父状态,构造所述多个状态对应的树状结构模型,包括:确定所述多个状态中每个状态的父状态;按照父状态和子状态的关系,将所述多个状态中相同父状态的状态确定为所述树状结构模型的同一级;从上至下依次构造所述多个状态对应的树状结构模型。3.根据权利要求1所述的方法,其特征在于,所述控制所述状态机根据所述树状结构模型和所述每个状态的行为属性处理所述接收到的事件,包括:确定所述树状结构模型中从顶层到初始状态的分支中的各个状态,从上至下依次激活分支中的各个状态;所述初始状态属于所述多个状态中的简单状态;将所述接收到的事件发送至激活的简单状态处理,若激活的简单状态未消费所述接收到的事件,则将所述接收到的事件流转到第i状态处理;所述第i状态为所述简单状态的父状态;若所述简单状态的父状态未消费所述接收到的事件,则将所述接收到的事件流转到第i+1状态处理,直到所述接收到的事件被消费;所述第i+1状态为所述第i状态的父状态。4.根据权利要求1所述的方法,其特征在于,所述控制所述状态机根据所述树状结构模型和所述每个状态的行为属性处理所述接收到的事件,包括:响应于当前状态消费了所述接收到的事件,若当前状态为简单状态,则直接退出所述当前状态;响应于当前状态消费了所述接收到的事件,若当前状态为复合状态,则在所述复合状态的子状态中确定处于激活状态的简单状态;从所述处于激活状态的简单状态开始依次向上退出,直到退出所述当前状态。5.根据权利要求1所述的方法,其特征在于,所述控制所述状态机根据所述树状结构模型和所述每个状态的行为属性处理所述接收到的事件,还包括:退出具有深历史状态的复合...

【专利技术属性】
技术研发人员:邵明绪赵鹏洋胡震文
申请(专利权)人:西安蜂语信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1